diff --git a/src/client/haxe/ru/m/tankz/control/ClientNetworkControl.hx b/src/client/haxe/ru/m/tankz/control/ClientNetworkControl.hx index 02607fe..38e47a2 100644 --- a/src/client/haxe/ru/m/tankz/control/ClientNetworkControl.hx +++ b/src/client/haxe/ru/m/tankz/control/ClientNetworkControl.hx @@ -1,17 +1,14 @@ package ru.m.tankz.control; -import haxework.provider.Provider; import ru.m.tankz.network.NetworkManager; import ru.m.tankz.control.Control; +@:haxework class ClientNetworkControl extends HumanControl { - private var network(get, never):NetworkManager; - - inline private function get_network():NetworkManager { - return Provider.get(NetworkManager); - } + @:provider + private var network:NetworkManager; override public function action(action:TankAction):Void { network.action(action); diff --git a/src/client/haxe/ru/m/tankz/frame/NetworkFrame.hx b/src/client/haxe/ru/m/tankz/frame/NetworkFrame.hx index d9a3527..25ed676 100644 --- a/src/client/haxe/ru/m/tankz/frame/NetworkFrame.hx +++ b/src/client/haxe/ru/m/tankz/frame/NetworkFrame.hx @@ -31,15 +31,12 @@ interface NetworkFrameLayout { var userList(default, null):ListView; } +@:haxework @:template("ru/m/tankz/frame/NetworkFrame.yaml", "ru/m/tankz/Style.yaml") class NetworkFrame extends VGroupView implements ViewBuilder implements NetworkFrameLayout { public static var ID(default, never):String = "network"; - private var network(get, never):NetworkManager; - - private inline function get_network():NetworkManager { - return Provider.get(NetworkManager); - } + @:provide private var network:NetworkManager; public function init():Void { loginButton.onPress = this; diff --git a/src/client/haxe/ru/m/tankz/frame/StartFrame.hx b/src/client/haxe/ru/m/tankz/frame/StartFrame.hx index f1f4000..0fcbea2 100644 --- a/src/client/haxe/ru/m/tankz/frame/StartFrame.hx +++ b/src/client/haxe/ru/m/tankz/frame/StartFrame.hx @@ -22,11 +22,14 @@ interface StartFrameLayout { var network(default, null):ButtonView; } +@:haxework @:template("ru/m/tankz/frame/StartFrame.yaml", "ru/m/tankz/Style.yaml") class StartFrame extends VGroupView implements ViewBuilder implements StartFrameLayout { public static var ID(default, never):String = "start"; + @:provide private var frameSwitcher:IFrameSwitcher; + public function init():Void { classic_1p.onPress = this; classic_2p.onPress = this; @@ -62,18 +65,18 @@ class StartFrame extends VGroupView implements ViewBuilder implements StartFrame case 'dota_2p_vs': startGame(DotaGame.TYPE, DotaGame.PLAYER2_VS); case 'network': - Provider.get(IFrameSwitcher).change(NetworkFrame.ID); + frameSwitcher.change(NetworkFrame.ID); } } private function startGame(type:GameType, presetId:PresetId):Void { Provider.set(GameSave, new GameSave({type: type, presetId: presetId})); - Provider.get(IFrameSwitcher).change(LevelFrame.ID); + frameSwitcher.change(LevelFrame.ID); } private function loadGame(type:GameType):Void { var save:GameSave = Provider.get(SaveStorage).read(type); Provider.set(GameSave, save); - Provider.get(IFrameSwitcher).change(GameFrame.ID); + frameSwitcher.change(GameFrame.ID); } } diff --git a/src/client/haxe/ru/m/tankz/network/NetworkManager.hx b/src/client/haxe/ru/m/tankz/network/NetworkManager.hx index 5e270be..3e293fb 100644 --- a/src/client/haxe/ru/m/tankz/network/NetworkManager.hx +++ b/src/client/haxe/ru/m/tankz/network/NetworkManager.hx @@ -7,7 +7,6 @@ import ru.m.tankz.control.Control; import ru.m.tankz.proto.pack.JoinGameRequest; import ru.m.tankz.proto.pack.LeaveGameRequest; import ru.m.tankz.proto.pack.CreateGameRequest; -import haxework.provider.Provider; import ru.m.connect.IConnection; import ru.m.signal.Signal; import ru.m.tankz.proto.core.Game; @@ -20,6 +19,7 @@ import ru.m.tankz.storage.UserStorage; typedef ClientConnection = IConnection; +@:haxework class NetworkManager { public var state(default, null):String; @@ -29,16 +29,8 @@ class NetworkManager { public var gameUpdateSignal:Signal>; public var user(default, null):User; - private var connection(get, never):ClientConnection; - private var storage(get, never):UserStorage; - - inline private function get_connection():ClientConnection { - return Provider.get(IConnection); - } - - inline private function get_storage():UserStorage { - return Provider.get(UserStorage); - } + @:provide private var connection:ClientConnection; + @:provide private var storage:UserStorage; public function new() { stateSignal = new Signal();