public void GenerateNewMap(GenerationMessage message) { Console._instance.AddLog("Generate map."); GameObject map = Instantiate(ResourcesManager._instance.maps_dic[message.mapId], Vector3.zero, Quaternion.identity, null); Dictionary <ModelConfiguration.Type, List <string> > models_received = new Dictionary <ModelConfiguration.Type, List <string> >(); List <Spawner> spawner = new List <Spawner>(); foreach (GenerationMessage.ModelGroup model in message.modelGroups) { models_received.Add(model.type, model.modelIds); } ReplaceAssets(models_received, map.transform, spawner, message.fearIntensity); if (spawner.Count != 0) { spawner.OrderBy(x => Guid.NewGuid()).FirstOrDefault(); float limit = spawner.Count * message.fearIntensity; limit = Mathf.Clamp(limit, 1.0f, spawner.Count); for (int i = 0; i < limit; i++) { spawner[i].Activate(message.fearIntensity); } } RoomManager._instance.MapIsReady(map); SamTags.FetchFromRoom(map, out List <SamTags> tags); TriggerManager._instance.UpdateRoomConfig(tags, message.fear, message.fearIntensity); }
void Update() { generation_client.Update(); if (!is_connected) { Init(); return; } if (queue_data.Count > 0) { response = queue_data.Dequeue(); if (response != null) { switch (response.type) { case GenerationMessage.Type.RoomConfiguration: Orchestration._instance.GenerateNewMap(response); SendScreenShot(); break; case GenerationMessage.Type.FearLevel: TriggerManager._instance.UpdateFear(response.fearIntensity); break; case GenerationMessage.Type.Quit: Console._instance.AddLog("Endding game."); LoadWaitScene(); break; case GenerationMessage.Type.Start: Console._instance.AddLog("Starting game."); LoadGameScene(); RoomManager._instance.RequestRoom(); break; case GenerationMessage.Type.Terminate: Console._instance.AddLog("Exit."); Application.Quit(); break; default: print("Unknown data."); break; } } } }
private void Init() { if (queue_data.Count < 1) { return; } response = queue_data.Dequeue(); if (response.type == GenerationMessage.Type.Initialize) { Console._instance.AddLog("Connected to generation."); is_connected = true; StartEnvironnement(); } if (response.type == GenerationMessage.Type.Terminate) { Console._instance.AddLog("Exit on error."); Application.Quit(); } }
public abstract void ExecuteEvent(GenerationMessage message);
public override void ExecuteEvent(GenerationMessage data) { start_event = true; }