public void ProcessUpdateEntities(Entity_Model[] updated_entities) { SmartObject obj = new SmartObject(); SmartObject updates = new SmartObject(); for(int i = 0; i < updated_entities.Length; i++) { updates.AddEntity("Entity_" + i, updated_entities[i]); } updates.AddInt("length", updated_entities.Length); obj.AddSmartObject("Updates", updates); Networking.WriteCustom(EventHelper.GetEventId("PROCESS_ENTITES"), socket, EasySerialization.EasySerialize(obj), true, NetworkReceivers.All); }
public static bool Attempt_Rotate_Entity(Entity entity, Vector3 target) { if(Network_Command_Manager.instance.socket.IsServer) { LocalRotateEntity(entity, target); return true; } else { SmartObject obj = new SmartObject(); obj.AddString("type", "ROTATE_ENTITY"); obj.AddEntity("Entity", entity.entity_model); obj.AddVec3("Target", target); Network_Command_Manager.instance.ToNetController<Client_Controller>().SendRequest(obj); return false; } }
public override void Setup(ref NetWorker socket) { base.Setup(ref socket); socket.AddCustomDataReadEvent(EventHelper.GetEventId("SERVER_REQUEST"), ReadRequest); // socket.AddCustomDataReadEvent ("COMBAT_REGISTER", ReadCombatRegister); SmartObject obj = new SmartObject(); SmartObject add = new SmartObject(); Client_Model[] players = Turn_Controller.instance.server_players.players.ToArray(); int entity_count = 0; for(int i = 0; i < players.Length; i++) { Entity_Model_Army army = Entity_Model_Army.GenerateRandomArmy(ref players[i], 2); for(int i2 = 0; i2 < army.entity_army.Length; i2++) { add.AddEntity("Entity_" + entity_count, army.entity_army[i2]); entity_count++; } } Debug_Console.i.add("Host controller setup"); add.AddInt("length", entity_count); obj.AddSmartObject("Additions", add); BMSByte bms_byte = EasySerialization.EasySerialize(obj); StartCoroutine("Delayed", bms_byte); }
// public static void Rotate_Entity(Entity entity, Vector3 target){ // target = target - entity.transform.position; // target = new Vector3 (target.x, 0, target.z); // Quaternion look_rotation = Quaternion.LookRotation (target); // entity.transform.rotation = look_rotation; // } public static void Attempt_Move_Entity(Entity entity, Vector3 target, System.Action<Entity_Model> action = null) { if(Network_Command_Manager.instance.socket.IsServer) { Seeker seeker = entity.GetComponent<Seeker>(); seeker.StartPath(seeker.transform.position, target, delegate (Path path) { Vector3[] vecp = path.vectorPath.ToArray(); if(vecp.Length > 1) { Quaternion rotation; Vector3 destination; float moved; PathFindAlong(entity.entity_model.stats.movement, vecp, out moved, out rotation, out destination); entity.entity_model.stats.movement -= moved; if(entity.entity_model.stats.movement < 0.1f) entity.entity_model.stats.movement = 0; if(moved <= 0) return; entity.transform.rotation = rotation; entity.transform.position = destination; entity.entity_model.pos = new Vector3_Serial(entity.transform.position); entity.transform.rotation = Quaternion.Euler(new Vector3(0, entity.transform.rotation.eulerAngles.y, 0)); entity.entity_model.rot = new Vector3_Serial(entity.transform.rotation.eulerAngles); action(entity.entity_model); } }); } else { SmartObject obj = new SmartObject(); obj.AddString("type", "MOVE_ENTITY"); Debug.Log("sending move request"); Debug.Log(target); obj.AddEntity("Entity", entity.entity_model); obj.AddVec3("Target", target); Network_Command_Manager.instance.ToNetController<Client_Controller>().SendRequest(obj); } }