[proto] update
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
package ru.m.puzzlez.net;
|
||||
|
||||
import haxe.Unserializer;
|
||||
import com.hurlant.crypto.extra.UUID;
|
||||
import com.hurlant.crypto.prng.Random;
|
||||
import hw.connect.ConnectionFactory;
|
||||
import hw.connect.IConnection;
|
||||
import hw.signal.Signal;
|
||||
import hw.storage.SharedObjectStorage;
|
||||
import ru.m.puzzlez.core.GameEvent;
|
||||
import ru.m.puzzlez.proto.core.GameProto;
|
||||
import ru.m.puzzlez.proto.core.UserProto;
|
||||
import ru.m.puzzlez.proto.pack.LoginRequest;
|
||||
import ru.m.puzzlez.proto.pack.Request;
|
||||
@@ -15,12 +18,21 @@ import ru.m.puzzlez.proto.pack.Response;
|
||||
public var user(default, null):UserProto;
|
||||
public var userSignal(default, null):Signal<UserProto> = new Signal();
|
||||
|
||||
public var gameList(default, null):Array<GameProto>;
|
||||
public var gameListSignal(default, null):Signal<Array<GameProto>> = new Signal();
|
||||
|
||||
public var game(default, null):GameProto;
|
||||
public var gameSignal(default, null):Signal<GameProto> = new Signal();
|
||||
|
||||
public var gameEventSignal(default, null):Signal<GameEvent> = new Signal();
|
||||
|
||||
private var connection:IConnection<Request, Response>;
|
||||
private var storage:SharedObjectStorage;
|
||||
|
||||
private static var USER_KEY = "user";
|
||||
|
||||
public function new() {
|
||||
gameList = [];
|
||||
storage = new SharedObjectStorage("netwok");
|
||||
if (storage.exists(USER_KEY)) {
|
||||
user = storage.read(USER_KEY);
|
||||
@@ -35,7 +47,7 @@ import ru.m.puzzlez.proto.pack.Response;
|
||||
}
|
||||
|
||||
public function login():Void {
|
||||
connection.send(new Request().setLogin(new LoginRequest().setName(user.name).setUuid(user.uuid)));
|
||||
connection.send(new Request().setLogin(new LoginRequest().setUser(user)));
|
||||
}
|
||||
|
||||
private function onConnectionChange(event:ConnectionEvent):Void {
|
||||
@@ -55,6 +67,19 @@ import ru.m.puzzlez.proto.pack.Response;
|
||||
user = packet.login.user;
|
||||
storage.write(USER_KEY, user);
|
||||
userSignal.emit(user);
|
||||
} else if (packet.hasLogout()) {
|
||||
user = null;
|
||||
userSignal.emit(user);
|
||||
} else if (packet.hasGameList()) {
|
||||
gameList = packet.gameList.games;
|
||||
gameListSignal.emit(gameList);
|
||||
} else if (packet.hasGame()) {
|
||||
game = packet.game.game;
|
||||
gameSignal.emit(game);
|
||||
} else if (packet.hasGameEvent()) {
|
||||
for (event in packet.gameEvent.events) {
|
||||
gameEventSignal.emit(Unserializer.run(event.event));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user