This repository was archived by the owner on Sep 14, 2019. It is now read-only.
File tree Expand file tree Collapse file tree 8 files changed +217
-59
lines changed
sfml/shiva/sfml/resources Expand file tree Collapse file tree 8 files changed +217
-59
lines changed Original file line number Diff line number Diff line change 66-- To change this template use File | Settings | File Templates.
77--
88
9+ local entities = {}
10+
911function update ()
1012 -- print("nb entities" .. shiva.entity_registry:nb_entities())
1113end
2022
2123function leave ()
2224 print (" leave game scene" )
25+ for key , value in pairs (entities ) do
26+ shiva .entity_registry :destroy (value )
27+ end
28+ shiva .resource_registry :unload_all_resources (" game_scene" )
29+ end
30+
31+ function on_after_load_resources (evt )
32+ local id , sprite = shiva .entity_registry :create_game_object_with_sprite ()
33+ sprite :set_texture (shiva .resource_registry :get_texture (" game_scene/toto" ), false )
34+ entities [# entities + 1 ] = id
35+ shiva .entity_registry :add_layer_1_component (id )
2336end
2437
2538function enter ()
2639 print (" enter game scene" )
2740 shiva .resource_registry :load_all_resources (" game_scene" )
2841 print (" should be here" )
29-
30- -- local id, sprite = shiva.entity_registry:create_game_object_with_sprite()
31- -- sprite:set_texture(shiva.resource_registry:get_texture("game_scene/toto"), false)
32- -- shiva.entity_registry:add_layer_1_component(id)
3342end
3443
3544return {
3645 on_key_released = on_key_released ,
3746 on_key_pressed = on_key_pressed ,
47+ on_after_load_resources = on_after_load_resources ,
3848 leave = leave ,
3949 enter = enter ,
4050 update = update ,
Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ set(MODULE_PUBLIC_HEADERS
88 "${MODULE_PATH} /start_game.hpp"
99 "${MODULE_PATH} /key_pressed.hpp"
1010 "${MODULE_PATH} /after_load_systems_plugins.hpp"
11+ "${MODULE_PATH} /after_load_resources.hpp"
1112 "${MODULE_PATH} /all.hpp"
1213 )
1314
Original file line number Diff line number Diff line change 1+ //
2+ // Created by roman Sztergbaum on 21/07/2018.
3+ //
4+
5+ #pragma once
6+
7+ #include < shiva/reflection/reflection.hpp>
8+
9+ namespace shiva ::event
10+ {
11+ struct after_load_resources
12+ {
13+ reflect_class (after_load_resources)
14+
15+ static constexpr auto reflected_functions () noexcept
16+ {
17+ return meta::makeMap ();
18+ }
19+
20+ static constexpr auto reflected_members () noexcept
21+ {
22+ return meta::makeMap ();
23+ }
24+ };
25+ }
Original file line number Diff line number Diff line change 1111#include < shiva/event/start_game.hpp>
1212#include < shiva/event/key_released.hpp>
1313#include < shiva/event/key_pressed.hpp>
14+ #include < shiva/event/after_load_resources.hpp>
1415
1516#include < shiva/meta/list.hpp>
1617
18+
1719namespace shiva ::event
1820{
1921 template <typename T>
@@ -32,6 +34,7 @@ namespace shiva::event
3234 quit_game,
3335 start_game,
3436 key_pressed,
35- key_released>;
37+ key_released,
38+ after_load_resources>;
3639}
3740
Original file line number Diff line number Diff line change 5151
5252function __destructor__ ()
5353 print (" scene manager destructor" )
54+ if current_scene .leave ~= nil then
55+ current_scene .leave ()
56+ else
57+ print (" current scene doesn't have leave callback" )
58+ end
5459end
5560
5661function internal_update ()
@@ -75,6 +80,14 @@ function internal_key_released(evt)
7580 end
7681end
7782
83+ function internal_after_load_resources (evt )
84+ if current_scene .on_after_load_resources ~= nil then
85+ current_scene .on_after_load_resources (evt )
86+ else
87+ print (" current scene doesn't have on_after_load_resources callback" )
88+ end
89+ end
90+
7891function internal_change_scene (scene_name )
7992 if scenes_table [scene_name ] ~= nil then
8093 current_scene .leave ()
@@ -88,6 +101,7 @@ scenes_system_table = {
88101 update = internal_update ,
89102 on_key_pressed = internal_key_pressed ,
90103 on_key_released = internal_key_released ,
104+ on_after_load_resources = internal_after_load_resources ,
91105 on_construct = __constructor__ ,
92106 on_destruct = __destructor__ ,
93107 current_system_type = system_type .logic_update
You can’t perform that action at this time.
0 commit comments