Prechádzať zdrojové kódy

tools: add the ability to change sprite material

Daniele Bartolini 6 rokov pred
rodič
commit
c4579e9f95

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

@@ -368,7 +368,8 @@ 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, visible)
+function UnitBox:set_sprite(material, layer, depth, visible)
+	RenderWorld.sprite_set_material(LevelEditor._rw, self._unit_id, material)
 	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)

+ 3 - 2
tools/api/engine_api.vala

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

+ 2 - 1
tools/level_editor/level.vala

@@ -311,7 +311,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, visible));
+			_client.send_script(LevelEditorApi.set_sprite(unit_id, material, layer, depth, visible));
 		}
 
 		public void set_sound(Guid sound_id, string name, double range, double volume, bool loop)
@@ -662,6 +662,7 @@ namespace Crown
 					unit.has_component("sprite_renderer", ref component_id);
 
 					_client.send_script(LevelEditorApi.set_sprite(unit_id
+						, unit.get_component_property_string(component_id, "data.material")
 						, 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")