| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2017-11-16 17:06:17 +0100 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2017-11-16 17:06:17 +0100 | 
| commit | efaf3ee3f4b2478079c7b9dde8f9e879956a460f (patch) | |
| tree | 809dba1496ddd1c3058df0722a9fd962fd11f34b | |
| parent | 3cc9f85a8b84f6cb69b828a6510ece7f716a6b28 (diff) | |
Starting changes in the structure.
| -rw-r--r-- | src/battlemap.erl (renamed from src/battlemap_battlemap.erl) | 2 | ||||
| -rw-r--r-- | src/battlemap_character_turn.erl | 37 | ||||
| -rw-r--r-- | src/battlemap_load_state.erl | 36 | ||||
| -rw-r--r-- | src/battlemap_node.erl | 11 | ||||
| -rw-r--r-- | src/battlemap_shim.erl (renamed from src/shim_battlemap_battlemap.erl) | 2 | ||||
| -rw-r--r-- | src/character.erl (renamed from src/battlemap_character.erl) | 2 | ||||
| -rw-r--r-- | src/character_shim.erl (renamed from src/shim_battlemap_character.erl) | 2 | ||||
| -rw-r--r-- | src/database_shim.erl | 26 | ||||
| -rw-r--r-- | src/handler.erl | 12 | ||||
| -rw-r--r-- | src/shim_database.erl | 17 | ||||
| -rw-r--r-- | src/timed_cache.erl (renamed from src/timed_cache_object.erl) | 4 | ||||
| -rw-r--r-- | src/timed_cache_data.hrl | 6 | ||||
| -rw-r--r-- | src/timed_caches_manager.erl | 4 | ||||
| -rw-r--r-- | www/handler/battlemap/character_turn.yaws | 32 | ||||
| -rw-r--r-- | www/handler/battlemap/load_state.yaws | 40 | 
15 files changed, 122 insertions, 111 deletions
| diff --git a/src/battlemap_battlemap.erl b/src/battlemap.erl index 64cf10d..4366852 100644 --- a/src/battlemap_battlemap.erl +++ b/src/battlemap.erl @@ -1,4 +1,4 @@ --module(battlemap_battlemap). +-module(battlemap).  -export([encode_in_json/1]).  encode_in_json ( diff --git a/src/battlemap_character_turn.erl b/src/battlemap_character_turn.erl deleted file mode 100644 index bf70823..0000000 --- a/src/battlemap_character_turn.erl +++ /dev/null @@ -1,37 +0,0 @@ --module(battlemap_character_turn). - --export( -   [ -      handle/1 -   ] -). - -handle (Req) -> -   io:format("~nReceived~p...", [Req]), -   JSON_Req_Map = jiffy:decode(Req, [return_maps]), -   UserToken = maps:get(<<"user_token">>, JSON_Req_Map), -   io:format("~nCharacter Turn for ~p...", [UserToken]), -%%   ok = users_manager:ping(UserToken), -   jiffy:encode( -      { -         [ -            {<<"types">>, [<<"STATUS">>]}, -            { -               <<"data">>, -               [ -                  jiffy:encode -                  ( -                     { -                        [ -                           { -                              <<"status">>, -                              <<"OK">> -                           } -                        ] -                     } -                  ) -               ] -            } -         ] -      } -   ). diff --git a/src/battlemap_load_state.erl b/src/battlemap_load_state.erl deleted file mode 100644 index f311946..0000000 --- a/src/battlemap_load_state.erl +++ /dev/null @@ -1,36 +0,0 @@ --module(battlemap_load_state). - --export( -   [ -      handle/1 -   ] -). - -handle (Req) -> -   JSONReqMap = jiffy:decode(Req, [return_maps]), -   BattlemapID = maps:get(<<"battlemap_id">>, JSONReqMap), -   io:format("~nLoading Battlemap ~p...~n", [BattlemapID]), -   {Battlemap, CharList} = -      timed_cache_object:fetch( -         battlemaps_db, -         BattlemapID -      ), -%%   ok = users_manager:ping(UserToken), -   jiffy:encode( -      [ -         [ -            <<"set_map">>, -            battlemap_battlemap:encode_in_json(Battlemap) -         ] -         | -         lists:map( -            fun (Char) -> -               [ -                  <<"add_char">>, -                  battlemap_character:encode_in_json(Char) -               ] -            end, -            CharList -         ) -      ] -   ). diff --git a/src/battlemap_node.erl b/src/battlemap_node.erl deleted file mode 100644 index cf6b65b..0000000 --- a/src/battlemap_node.erl +++ /dev/null @@ -1,11 +0,0 @@ --module(battlemap_node). --export([start/1]). - -start(_YawsParams) -> -   {ok, Pid} = gen_server:start(timed_caches_manager, [], []), -   gen_server:cast(Pid, {add, battlemaps_db, none}), -%%   timed_caches_manager:add_cache([], battlemaps_db, none), -   receive -      after 5000 -> -         [] = ets:lookup(battlemaps_db, <<"00">>) -   end. diff --git a/src/shim_battlemap_battlemap.erl b/src/battlemap_shim.erl index a6adc83..37a953b 100644 --- a/src/shim_battlemap_battlemap.erl +++ b/src/battlemap_shim.erl @@ -1,4 +1,4 @@ --module(shim_battlemap_battlemap). +-module(battlemap_shim).  -export(     [ diff --git a/src/battlemap_character.erl b/src/character.erl index 0e9d0af..aa0d5f0 100644 --- a/src/battlemap_character.erl +++ b/src/character.erl @@ -1,4 +1,4 @@ --module(battlemap_character). +-module(character).  -export([encode_in_json/1]).  encode_in_json ( diff --git a/src/shim_battlemap_character.erl b/src/character_shim.erl index adea111..7390cc4 100644 --- a/src/shim_battlemap_character.erl +++ b/src/character_shim.erl @@ -1,4 +1,4 @@ --module(shim_battlemap_character). +-module(character_shim).  -export(     [ diff --git a/src/database_shim.erl b/src/database_shim.erl new file mode 100644 index 0000000..3e88c34 --- /dev/null +++ b/src/database_shim.erl @@ -0,0 +1,26 @@ +-module(database_shim). +-export([fetch/2]). + +-include("timed_cache_data.hrl"). + +fetch(battlemap_db, Object_ID) -> +   Width = (rand:uniform(54) + 10), +   Height = (rand:uniform(54) + 10), +   io:format +   ( +      "~nGenerating new Battlemap ~p of size (~p, ~p)...~n", +      [Object_ID, Width, Height] +   ), +   Result = +      #battlemap { +         id = Object_ID, +         width = Width, +         height = Height, +         content = battlemap_shim:generate(Width, Height) +      }, +   {ok, +      { +         character_shim:generate(Width, Height) +      } +   }; +fetch(battlemap_db, Object_ID) -> diff --git a/src/handler.erl b/src/handler.erl new file mode 100644 index 0000000..9270aa4 --- /dev/null +++ b/src/handler.erl @@ -0,0 +1,12 @@ +-module(handler). +-export([start/1]). + +start(_YawsParams) -> +   {ok, Pid} = gen_server:start(timed_caches_manager, [], []), +   gen_server:cast(Pid, {add, battlemap_db, none}), +   gen_server:cast(Pid, {add, battlemap_instance_db, none}), +   gen_server:cast(Pid, {add, character_db, none}), +   gen_server:cast(Pid, {add, character_instance_db, none}), +   gen_server:cast(Pid, {add, character_turn_db, none}), +   gen_server:cast(Pid, {add, player_data_db, none}), +   ok. diff --git a/src/shim_database.erl b/src/shim_database.erl deleted file mode 100644 index f1abd8b..0000000 --- a/src/shim_database.erl +++ /dev/null @@ -1,17 +0,0 @@ --module(shim_database). --export([fetch/2]). - -fetch(battlemaps_db, Object_ID) -> -   Width = (rand:uniform(54) + 10), -   Height = (rand:uniform(54) + 10), -   io:format -   ( -      "~nGenerating new Battlemap ~p of size (~p, ~p)...~n", -      [Object_ID, Width, Height] -   ), -   {ok, -      { -         shim_battlemap_battlemap:generate(Width, Height), -         shim_battlemap_character:generate(Width, Height) -      } -   }. diff --git a/src/timed_cache_object.erl b/src/timed_cache.erl index 341d128..70f9896 100644 --- a/src/timed_cache_object.erl +++ b/src/timed_cache.erl @@ -1,4 +1,4 @@ --module(timed_cache_object). +-module(timed_cache).  -behavior(gen_server).  %%%% gen_server exports @@ -27,7 +27,7 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  add_to_cache (DB, ObjectID) ->     {ok, TimerPID} = gen_server:start(?MODULE, {DB, ObjectID}, []), -   {ok, Data} = shim_database:fetch(DB, ObjectID), +   {ok, Data} = database_shim:fetch(DB, ObjectID),     ets:insert(DB, {ObjectID, TimerPID, Data}),     Data. diff --git a/src/timed_cache_data.hrl b/src/timed_cache_data.hrl new file mode 100644 index 0000000..b0d7ba6 --- /dev/null +++ b/src/timed_cache_data.hrl @@ -0,0 +1,6 @@ +-record(battlemap, {id, width, height, content, instances}). +-record(battlemap_instance, {id, chars, curr_player, rem_chars, last_turn}). +-record(character, {id, name, icon, portrait, mov_pts, atk_rg}). +-record(character_instance, {id, x, y, team}). +-record(character_turn, {id, path, target}). +-record(player, {id, battlemaps, characters}). diff --git a/src/timed_caches_manager.erl b/src/timed_caches_manager.erl index 4c3c267..019aed9 100644 --- a/src/timed_caches_manager.erl +++ b/src/timed_caches_manager.erl @@ -76,7 +76,7 @@ inherit_cache (CacheList, DB, Heir) ->  %%%% gen_server  init (CacheList) ->     io:format("~nStarting Timed Caches Manager..."), -   {ok,CacheList}. +   {ok, CacheList}.  handle_call ({delete, CacheName}, _Caller, State) ->     {noreply, delete_cache(State, CacheName)}; @@ -135,7 +135,7 @@ add_cache (CacheList, DB, Heir) ->           [DB|CacheList]     end. -get_timeout(battlemaps_db) -> +get_timeout(battlemap_db) ->     60000;  get_timeout(_) ->     60000. diff --git a/www/handler/battlemap/character_turn.yaws b/www/handler/battlemap/character_turn.yaws index 8b0a229..c42e26b 100644 --- a/www/handler/battlemap/character_turn.yaws +++ b/www/handler/battlemap/character_turn.yaws @@ -1,8 +1,38 @@  <erl> +handle (Req) -> +   io:format("~nReceived~p...", [Req]), +   JSON_Req_Map = jiffy:decode(Req, [return_maps]), +   UserToken = maps:get(<<"user_token">>, JSON_Req_Map), +   io:format("~nCharacter Turn for ~p...", [UserToken]), +%%   ok = users_manager:ping(UserToken), +   jiffy:encode( +      { +         [ +            {<<"types">>, [<<"STATUS">>]}, +            { +               <<"data">>, +               [ +                  jiffy:encode +                  ( +                     { +                        [ +                           { +                              <<"status">>, +                              <<"OK">> +                           } +                        ] +                     } +                  ) +               ] +            } +         ] +      } +   ). +  out(A) ->     {        content,        "application/json; charset=UTF-8", -      battlemap_character_turn:handle(A#arg.clidata) +      handle(A#arg.clidata)     }.  </erl> diff --git a/www/handler/battlemap/load_state.yaws b/www/handler/battlemap/load_state.yaws index c778b66..fb7cda6 100644 --- a/www/handler/battlemap/load_state.yaws +++ b/www/handler/battlemap/load_state.yaws @@ -1,8 +1,46 @@  <erl> +-record(input, {battlemap_id}). + +parse_input (Req) -> +   JSONReqMap = jiffy:decode(Req, [return_maps]), +   #input { +      battlemap_id = maps:get(<<"battlemap_id">>, JSONReqMap) +   }. + +fetch_battlemap (Input) -> +   {Battlemap, CharList} = +      timed_cache:fetch( +         battlemap_db, +         Input#input.battlemap_id +      ), + +handle (Req) -> +   Input = parse_input(Req), +   io:format("~nLoading Battlemap ~p...~n", [Input#input.battlemap_id]), +%%   ok = users_manager:ping(UserToken), +   jiffy:encode( +      [ +         [ +            <<"set_map">>, +            battlemap:encode_in_json(Battlemap) +         ] +         | +         lists:map( +            fun (Char) -> +               [ +                  <<"add_char">>, +                  character:encode_in_json(Char) +               ] +            end, +            CharList +         ) +      ] +   ). +  out(A) ->     {        content,        "application/json; charset=UTF-8", -      battlemap_load_state:handle(A#arg.clidata) +      handle(A#arg.clidata)     }.  </erl> | 


