Remove deprecated sprite_number property from Sprite and Entity, closes #305
sprite_number was a legacy alias for sprite_index. All code should use sprite_index directly. Removed from getsetters, setProperty/getProperty/ hasProperty in UISprite and UIEntity, animation property handling, and type stubs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
4a3854dac1
commit
c15d836e79
9 changed files with 20 additions and 26 deletions
|
|
@ -154,13 +154,13 @@ void Animation::startEntity(std::shared_ptr<UIEntity> target) {
|
|||
}
|
||||
else if constexpr (std::is_same_v<T, int>) {
|
||||
// For entities, we might need to handle sprite_index differently
|
||||
if (targetProperty == "sprite_index" || targetProperty == "sprite_number") {
|
||||
if (targetProperty == "sprite_index") {
|
||||
startValue = target->sprite.getSpriteIndex();
|
||||
}
|
||||
}
|
||||
else if constexpr (std::is_same_v<T, std::vector<int>>) {
|
||||
// For sprite animation frame lists, get current sprite index
|
||||
if (targetProperty == "sprite_index" || targetProperty == "sprite_number") {
|
||||
if (targetProperty == "sprite_index") {
|
||||
startValue = target->sprite.getSpriteIndex();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
std::string targetProperty; // Property name to animate (e.g., "x", "color.r", "sprite_number")
|
||||
std::string targetProperty; // Property name to animate (e.g., "x", "color.r", "sprite_index")
|
||||
AnimationValue startValue; // Starting value (captured when animation starts)
|
||||
AnimationValue targetValue; // Target value to animate to
|
||||
float duration; // Animation duration in seconds
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ namespace mcrfpydef {
|
|||
" property: Property name to animate. Valid properties depend on target type:\n"
|
||||
" - Position/Size: 'x', 'y', 'w', 'h', 'pos', 'size'\n"
|
||||
" - Appearance: 'fill_color', 'outline_color', 'outline', 'opacity'\n"
|
||||
" - Sprite: 'sprite_index', 'sprite_number', 'scale'\n"
|
||||
" - Sprite: 'sprite_index', 'scale'\n"
|
||||
" - Grid: 'center', 'zoom'\n"
|
||||
" - Caption: 'text'\n"
|
||||
" - Sub-properties: 'fill_color.r', 'fill_color.g', 'fill_color.b', 'fill_color.a'\n"
|
||||
|
|
|
|||
|
|
@ -1578,7 +1578,6 @@ PyGetSetDef UIEntity::getsetters[] = {
|
|||
"Get: Returns the Grid or None. "
|
||||
"Set: Assign a Grid to move entity, or None to remove from grid.", NULL},
|
||||
{"sprite_index", (getter)UIEntity::get_spritenumber, (setter)UIEntity::set_spritenumber, "Sprite index on the texture on the display", NULL},
|
||||
{"sprite_number", (getter)UIEntity::get_spritenumber, (setter)UIEntity::set_spritenumber, "Sprite index (DEPRECATED: use sprite_index instead)", NULL},
|
||||
{"visible", (getter)UIEntity_get_visible, (setter)UIEntity_set_visible, "Visibility flag", NULL},
|
||||
{"opacity", (getter)UIEntity_get_opacity, (setter)UIEntity_set_opacity, "Opacity (0.0 = transparent, 1.0 = opaque)", NULL},
|
||||
{"name", (getter)UIEntity_get_name, (setter)UIEntity_set_name, "Name for finding elements", NULL},
|
||||
|
|
@ -1675,7 +1674,7 @@ bool UIEntity::setProperty(const std::string& name, float value) {
|
|||
}
|
||||
|
||||
bool UIEntity::setProperty(const std::string& name, int value) {
|
||||
if (name == "sprite_index" || name == "sprite_number") {
|
||||
if (name == "sprite_index") {
|
||||
sprite.setSpriteIndex(value);
|
||||
if (grid) grid->markDirty(); // #144 - Content change
|
||||
return true;
|
||||
|
|
@ -1718,7 +1717,7 @@ bool UIEntity::hasProperty(const std::string& name) const {
|
|||
return true;
|
||||
}
|
||||
// Int properties
|
||||
if (name == "sprite_index" || name == "sprite_number") {
|
||||
if (name == "sprite_index") {
|
||||
return true;
|
||||
}
|
||||
// #106: Shader uniform properties - delegate to sprite
|
||||
|
|
|
|||
|
|
@ -406,7 +406,6 @@ PyGetSetDef UISprite::getsetters[] = {
|
|||
{"scale_x", (getter)UISprite::get_float_member, (setter)UISprite::set_float_member, "Horizontal scale factor", (void*)3},
|
||||
{"scale_y", (getter)UISprite::get_float_member, (setter)UISprite::set_float_member, "Vertical scale factor", (void*)4},
|
||||
{"sprite_index", (getter)UISprite::get_int_member, (setter)UISprite::set_int_member, "Which sprite on the texture is shown", NULL},
|
||||
{"sprite_number", (getter)UISprite::get_int_member, (setter)UISprite::set_int_member, "Sprite index (DEPRECATED: use sprite_index instead)", NULL},
|
||||
{"texture", (getter)UISprite::get_texture, (setter)UISprite::set_texture, "Texture object", NULL},
|
||||
{"on_click", (getter)UIDrawable::get_click, (setter)UIDrawable::set_click,
|
||||
MCRF_PROPERTY(on_click,
|
||||
|
|
@ -683,7 +682,7 @@ bool UISprite::setProperty(const std::string& name, float value) {
|
|||
}
|
||||
|
||||
bool UISprite::setProperty(const std::string& name, int value) {
|
||||
if (name == "sprite_index" || name == "sprite_number") {
|
||||
if (name == "sprite_index") {
|
||||
setSpriteIndex(value);
|
||||
markDirty(); // #144 - Content change
|
||||
return true;
|
||||
|
|
@ -745,7 +744,7 @@ bool UISprite::getProperty(const std::string& name, float& value) const {
|
|||
}
|
||||
|
||||
bool UISprite::getProperty(const std::string& name, int& value) const {
|
||||
if (name == "sprite_index" || name == "sprite_number") {
|
||||
if (name == "sprite_index") {
|
||||
value = sprite_index;
|
||||
return true;
|
||||
}
|
||||
|
|
@ -765,7 +764,7 @@ bool UISprite::hasProperty(const std::string& name) const {
|
|||
return true;
|
||||
}
|
||||
// Int properties
|
||||
if (name == "sprite_index" || name == "sprite_number") {
|
||||
if (name == "sprite_index") {
|
||||
return true;
|
||||
}
|
||||
// Vector2f properties
|
||||
|
|
|
|||
|
|
@ -417,7 +417,6 @@ class Sprite(Drawable):
|
|||
|
||||
texture: Texture
|
||||
sprite_index: int
|
||||
sprite_number: int # Deprecated alias for sprite_index
|
||||
scale: float
|
||||
w: float # Read-only, computed from texture
|
||||
h: float # Read-only, computed from texture
|
||||
|
|
@ -865,7 +864,6 @@ class Entity(Drawable):
|
|||
grid_y: float
|
||||
texture: Texture
|
||||
sprite_index: int
|
||||
sprite_number: int # Deprecated alias for sprite_index
|
||||
grid: Optional[Grid]
|
||||
|
||||
def at(self, grid_x: float, grid_y: float) -> None:
|
||||
|
|
|
|||
|
|
@ -594,7 +594,6 @@ class Sprite(Drawable):
|
|||
|
||||
texture: Texture
|
||||
sprite_index: int
|
||||
sprite_number: int # Deprecated alias for sprite_index
|
||||
scale: float
|
||||
w: float # Read-only, computed from texture
|
||||
h: float # Read-only, computed from texture
|
||||
|
|
@ -1042,7 +1041,6 @@ class Entity(Drawable):
|
|||
grid_y: float
|
||||
texture: Texture
|
||||
sprite_index: int
|
||||
sprite_number: int # Deprecated alias for sprite_index
|
||||
grid: Optional[Grid]
|
||||
|
||||
def at(self, grid_x: float, grid_y: float) -> None:
|
||||
|
|
|
|||
|
|
@ -35,11 +35,11 @@ def test_Entity():
|
|||
try:
|
||||
print(f" Entity1 pos: {entity1.pos}")
|
||||
print(f" Entity1 draw_pos: {entity1.draw_pos}")
|
||||
print(f" Entity1 sprite_number: {entity1.sprite_number}")
|
||||
|
||||
print(f" Entity1 sprite_index: {entity1.sprite_index}")
|
||||
|
||||
# Modify properties
|
||||
entity1.pos = mcrfpy.Vector(3, 3)
|
||||
entity1.sprite_number = 5
|
||||
entity1.sprite_index = 5
|
||||
print(" Entity properties modified")
|
||||
except Exception as e:
|
||||
print(f"X Entity property access failed: {e}")
|
||||
|
|
|
|||
|
|
@ -38,21 +38,21 @@ except AttributeError:
|
|||
except Exception as e:
|
||||
print(f"✗ Unexpected error setting texture: {e}")
|
||||
|
||||
# Test sprite_number property
|
||||
# Test sprite_index property
|
||||
try:
|
||||
print(f"Sprite2 sprite_number: {sprite2.sprite_number}")
|
||||
sprite2.sprite_number = 10
|
||||
print(f"✓ Changed sprite_number to: {sprite2.sprite_number}")
|
||||
print(f"Sprite2 sprite_index: {sprite2.sprite_index}")
|
||||
sprite2.sprite_index = 10
|
||||
print(f"sprite_index set to: {sprite2.sprite_index}")
|
||||
except Exception as e:
|
||||
print(f"✗ sprite_number property failed: {e}")
|
||||
print(f"sprite_index property failed: {e}")
|
||||
|
||||
# Test sprite index validation (Issue #33)
|
||||
try:
|
||||
# Try to set invalid sprite index
|
||||
sprite2.sprite_number = 9999
|
||||
print("✗ Should validate sprite index against texture range (Issue #33)")
|
||||
sprite2.sprite_index = 9999
|
||||
print("Should validate sprite index against texture range (Issue #33)")
|
||||
except Exception as e:
|
||||
print(f"✓ Sprite index validation works: {e}")
|
||||
print(f"Sprite index validation works: {e}")
|
||||
|
||||
# Create grid of sprites to show different indices
|
||||
y_offset = 100
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue