/// <summary> /// Receive and handle events /// </summary> public void HandleEvents(byte eventCode, object content, int senderid) { byte[] data; if (eventCode == CreateNetworkedBuilding.MSG) { data = (byte[])content; CreateNetworkedBuilding evnt = CreateNetworkedBuilding.Deserialize(data); if (evnt != null) { CreateNetworkBuildingEvent(evnt); } } else if (eventCode == UpdateNetworkedBuilding.MSG) { data = (byte[])content; UpdateNetworkedBuilding evnt = UpdateNetworkedBuilding.Deserialize(data); if (evnt != null) { UpdateNetworkedBuildingEvent(evnt); } } }
protected virtual void OnHealthChanged() { var evnt = new UpdateNetworkedBuilding(); evnt.buildingUID = networkedID; evnt.health = health; evnt.SendToServer(); }
public override void DestroyBuilding(BaseBuilding _building, RaycastHit hit) { PhotonCloudBuilding building = (PhotonCloudBuilding)_building; if (building == null) { base.DestroyBuilding(building, hit); return; } var evnt = new UpdateNetworkedBuilding(); evnt.buildingUID = building.networkedID; evnt.health = 0; evnt.SendToServer(); }
/// <summary> /// Update the entity /// </summary> /// <param name="data">data</param> public static void UpdateEntity(UpdateNetworkedBuilding data) { int id = data.buildingUID; var building = GetEntity(id); if (building != null) { building.AssingNetworkedHealth(data.health); if (PhotonNetwork.isMasterClient) { data = new UpdateNetworkedBuilding(); data.buildingUID = id; data.Send(); } } }
/// <summary> /// Called when the UpdateNetworkedBuildingEvent is called /// </summary> /// <param name="evnt">the event data</param> public void UpdateNetworkedBuildingEvent(UpdateNetworkedBuilding evnt) { UpdateEntity(evnt); }