Просмотр исходного кода

tools: fix sprite visibility flag

Daniele Bartolini 7 лет назад
Родитель
Сommit
f88db29dfc

+ 2 - 1
samples/core/editors/level_editor/level_editor.lua

@@ -372,9 +372,10 @@ function UnitBox:set_light(type, range, intensity, angle, color)
 	RenderWorld.light_set_spot_angle(LevelEditor._rw, self._unit_id, angle)
 end
 
-function UnitBox:set_sprite(layer, depth)
+function UnitBox:set_sprite(layer, depth, visible)
 	RenderWorld.sprite_set_layer(LevelEditor._rw, self._unit_id, layer)
 	RenderWorld.sprite_set_depth(LevelEditor._rw, self._unit_id, depth)
+	RenderWorld.sprite_set_visible(LevelEditor._rw, self._unit_id, visible)
 end
 
 SoundObject = class(SoundObject)

+ 3 - 2
tools/api/engine_api.vala

@@ -283,11 +283,12 @@ namespace Crown
 				);
 		}
 
-		public string set_sprite(Guid id, double layer, double depth)
+		public string set_sprite(Guid id, double layer, double depth, bool visible)
 		{
-			return @"LevelEditor._objects[\"%s\"]:set_sprite(%f, %f)".printf(id.to_string()
+			return @"LevelEditor._objects[\"%s\"]:set_sprite(%f, %f, %s)".printf(id.to_string()
 				, layer
 				, depth
+				, Lua.bool(visible)
 				);
 		}
 

+ 2 - 1
tools/level_editor/level.vala

@@ -315,7 +315,7 @@ namespace Crown
 			unit.set_component_property_bool  (component_id, "data.visible", visible);
 			unit.set_component_property_string(component_id, "type", "sprite_renderer");
 
-			_client.send_script(LevelEditorApi.set_sprite(unit_id, layer, depth));
+			_client.send_script(LevelEditorApi.set_sprite(unit_id, layer, depth, visible));
 		}
 
 		public void set_sound(Guid sound_id, string name, double range, double volume, bool loop)
@@ -668,6 +668,7 @@ namespace Crown
 					_client.send_script(LevelEditorApi.set_sprite(unit_id
 						, unit.get_component_property_double(component_id, "data.layer")
 						, unit.get_component_property_double(component_id, "data.depth")
+						, unit.get_component_property_bool  (component_id, "data.visible")
 						));
 					// FIXME: Hack to force update the properties view
 					selection_changed(_selection);