[client] add position to IGamePanel

This commit is contained in:
2019-05-13 19:32:52 +03:00
parent 13240677b0
commit cbb28f4158
6 changed files with 17 additions and 13 deletions

View File

@@ -2,6 +2,7 @@ package ru.m.tankz.view.game;
import haxework.view.LabelView; import haxework.view.LabelView;
import haxework.view.VGroupView; import haxework.view.VGroupView;
import ru.m.geom.Direction;
import ru.m.tankz.game.GameEvent; import ru.m.tankz.game.GameEvent;
import ru.m.tankz.game.GameState; import ru.m.tankz.game.GameState;
import ru.m.tankz.preset.ClassicGame; import ru.m.tankz.preset.ClassicGame;
@@ -9,6 +10,7 @@ import ru.m.tankz.Type.PlayerId;
import ru.m.tankz.view.common.LifeView; import ru.m.tankz.view.common.LifeView;
@:template class ClassicGamePanel extends VGroupView implements IGamePanel { @:template class ClassicGamePanel extends VGroupView implements IGamePanel {
public var position(default, null):Direction = Direction.RIGHT;
@:view var bot:LifeView; @:view var bot:LifeView;
@:view var player1:LifeView; @:view var player1:LifeView;

View File

@@ -3,11 +3,13 @@ package ru.m.tankz.view.game;
import haxework.view.DataView; import haxework.view.DataView;
import haxework.view.LabelView; import haxework.view.LabelView;
import haxework.view.VGroupView; import haxework.view.VGroupView;
import ru.m.geom.Direction;
import ru.m.tankz.game.GameEvent; import ru.m.tankz.game.GameEvent;
import ru.m.tankz.game.GameState; import ru.m.tankz.game.GameState;
import ru.m.tankz.view.common.LifeView; import ru.m.tankz.view.common.LifeView;
@:template class DeathGamePanel extends VGroupView implements IGamePanel { @:template class DeathGamePanel extends VGroupView implements IGamePanel {
public var position(default, null):Direction = Direction.RIGHT;
@:view var level:LabelView; @:view var level:LabelView;
@:view var players:DataView<PlayerState, LifeView>; @:view var players:DataView<PlayerState, LifeView>;

View File

@@ -2,6 +2,7 @@ package ru.m.tankz.view.game;
import haxework.view.HGroupView; import haxework.view.HGroupView;
import haxework.view.LabelView; import haxework.view.LabelView;
import ru.m.geom.Direction;
import ru.m.tankz.game.GameEvent; import ru.m.tankz.game.GameEvent;
import ru.m.tankz.game.GameState; import ru.m.tankz.game.GameState;
import ru.m.tankz.preset.DotaGame; import ru.m.tankz.preset.DotaGame;
@@ -9,6 +10,7 @@ import ru.m.tankz.Type.TeamId;
import ru.m.tankz.view.common.LifeView; import ru.m.tankz.view.common.LifeView;
@:template class DotaGamePanel extends HGroupView implements IGamePanel { @:template class DotaGamePanel extends HGroupView implements IGamePanel {
public var position(default, null):Direction = Direction.TOP;
@:view var radiant:LifeView; @:view var radiant:LifeView;
@:view var dire:LifeView; @:view var dire:LifeView;

View File

@@ -2,6 +2,7 @@ package ru.m.tankz.view.game;
import haxework.view.IGroupView; import haxework.view.IGroupView;
import haxework.view.VGroupView; import haxework.view.VGroupView;
import ru.m.geom.Direction;
import ru.m.tankz.preset.ClassicGame; import ru.m.tankz.preset.ClassicGame;
import ru.m.tankz.preset.DeathGame; import ru.m.tankz.preset.DeathGame;
import ru.m.tankz.preset.DotaGame; import ru.m.tankz.preset.DotaGame;
@@ -26,7 +27,7 @@ import ru.m.tankz.Type;
panel.remove(); panel.remove();
} }
panel = buildPanel(type); panel = buildPanel(type);
panelContainer(type).addView(panel); getContainer(panel.position).addView(panel);
} }
return type; return type;
} }
@@ -40,12 +41,13 @@ import ru.m.tankz.Type;
} }
} }
private function panelContainer(type:GameType):IGroupView { private function getContainer(position:Direction):IGroupView {
return switch type { return switch position.toString() {
case ClassicGame.TYPE: right; case "RIGHT": right;
case DotaGame.TYPE: top; case "LEFT": left;
case DeathGame.TYPE: right; case "TOP": top;
case _: throw 'Unsupported type: ${type}'; case "BOTTOM": bottom;
case _: throw 'Unsupported position: ${position}';
} }
} }
} }

View File

@@ -1,8 +1,9 @@
package ru.m.tankz.view.game; package ru.m.tankz.view.game;
import haxework.view.IView; import haxework.view.IView;
import ru.m.geom.Direction;
import ru.m.tankz.game.IGame; import ru.m.tankz.game.IGame;
interface IGamePanel extends IView<Dynamic> extends GameListener { interface IGamePanel extends IView<Dynamic> extends GameListener {
public var position(default, null):Direction;
} }

View File

@@ -2,7 +2,6 @@ package ru.m.tankz.network;
import ru.m.tankz.game.Game; import ru.m.tankz.game.Game;
import ru.m.tankz.proto.core.GameProto; import ru.m.tankz.proto.core.GameProto;
import ru.m.tankz.proto.game.GameChangeProto;
class NetworkGame extends Game { class NetworkGame extends Game {
@@ -13,10 +12,6 @@ class NetworkGame extends Game {
// ToDo: // ToDo:
} }
public function update(changes:Array<GameChangeProto>):Void {
}
public function export():GameProto { public function export():GameProto {
return new GameProto(); return new GameProto();
} }