diff --git a/modifiers/trail/trail.wren b/modifiers/trail/trail.wren index 7fef811..d74e868 100644 --- a/modifiers/trail/trail.wren +++ b/modifiers/trail/trail.wren @@ -204,16 +204,8 @@ class TrailSystem is ModifierSystem { //...but for now... var data = get(entity) - var inst_data: TrailData = _instance_data[entity] - - World.render_set_remove(_world, inst_data.geometry, entity) - Geometry.destroy(inst_data.geometry) - Render.destroy_index_buffer(inst_data.index_buffer) - Render.destroy_vertex_buffer(inst_data.position_buffer) - Render.destroy_vertex_buffer(inst_data.color_buffer) - Render.destroy_vertex_buffer(inst_data.uv_buffer) + detach(entity, data) attach(entity, data) - System.print("recreated") } destroy() { @@ -309,8 +301,14 @@ class TrailSystem is ModifierSystem { } detach(entity, data: ModifierData) { - //called when detached from an entity, like on destroy - + var inst_data: TrailData = _instance_data[entity] + World.render_set_remove(_world, inst_data.geometry, entity) + Geometry.destroy(inst_data.geometry) + Render.destroy_index_buffer(inst_data.index_buffer) + Render.destroy_vertex_buffer(inst_data.position_buffer) + Render.destroy_vertex_buffer(inst_data.color_buffer) + Render.destroy_vertex_buffer(inst_data.uv_buffer) + _instance_data.remove(entity) } tick(delta) {