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> |