public override void PlaceBuilding() { UNetBuilding building = currentBuilding as UNetBuilding; if (building != null) { var evnt = building.PackData(entity, true); evnt.SendToServer(); } DestroyCurrentBuilding(); ResetBuildingInstance(); }
/// <summary> /// Called when the CreateNetworkBuilding event is called /// </summary> /// <param name="msg">event data</param> public void CreateNetworkBuildingEvent(NetworkMessage msg) { var evnt = msg.ReadMessage <CreateNetworkedBuilding>(); if (NetworkServer.active) { GameObject prefab = PrefabDB.instance.GetGO(evnt.prefabID); if (prefab != null && evnt.requester != null) { var instance = GameObject.Instantiate(prefab); UNetBuilding building = instance.GetComponent <UNetBuilding>(); building.transform.position = evnt.pos; building.transform.rotation = evnt.rot; if (!building.CheckConditions()) // check conditions serverside { Destroy(instance); return; } entities.Add(building); evnt.id = entities.Count; evnt.health = building.maxHealth; building.LoadData(evnt); building.PackData(evnt.requester, false).Send(); } } else { LoadEntity(evnt); } }