public static void ReadMemory(BinaryReader reader) { LocalEvents.Clear(); GlobalEvents.Clear(); int version = reader.ReadInt32(); switch (version) { case 1: int keyCount = reader.ReadInt32(); for (var i = 0; i < keyCount; i++) { int key = reader.ReadInt32(); int valueCount = reader.ReadInt32(); var set = new TriggerSet(); for (var a = 0; a <= valueCount; a++) { if (reader.ReadBoolean()) { set.Add(a); } } LocalEvents.Add(key, set); } int eventCount = reader.ReadInt32(); for (var i = 0; i < eventCount; i++) GlobalEvents.Add(reader.ReadInt32()); break; } }
public GameData(SetupRouter sr) { PlayerTeam = new List <PlayerLunen>(); //Debug.Log("Found " + sr.battleSetup.PlayerLunenTeam.Count + " Lunen!"); foreach (GameObject monster in sr.battleSetup.PlayerLunenTeam) { PlayerTeam.Add(GeneratePlayerLunen(monster.GetComponent <Monster>(), sr)); } StorageLunen = sr.storageSystem.StoredLunen; InventoryItems = new List <InventoryItem>(); //Debug.Log("Found " + sr.inventory.listOfItems.Count + " Item" + (sr.inventory.listOfItems.Count == 1 ? "" : "s") + "!"); for (int i = 0; i < sr.inventory.listOfItems.Count; i++) { Inventory.InventoryEntry currentItem = sr.inventory.listOfItems[i]; InventoryItem a = new InventoryItem(); a.itemIndex = sr.database.ItemToIndex(currentItem.item); a.itemAmount = currentItem.amount; InventoryItems.Add(a); } SaveTriggers = new List <TriggerSet>(); for (int i = 0; i < sr.database.GlobalStoryTriggerList.Count; i++) { TriggerSet set = new TriggerSet(); set.setName = sr.database.GlobalStoryTriggerList[i].name; foreach (TriggerPart part in sr.database.GlobalStoryTriggerList[i].triggerParts) { TriggerSave save = new TriggerSave(); save.triggerTITLE = part.title; save.triggerType = part.type; save.triggerBool = part.triggerBool; save.triggerInt = part.triggerInt; save.triggerFloat = part.triggerFloat; save.triggerDouble = part.triggerDouble; save.triggerString = part.triggerString; set.triggerParts.Add(save); } SaveTriggers.Add(set); } GuidList = sr.battleSetup.GuidList; positionX = sr.playerLogic.transform.position.x; positionY = sr.playerLogic.transform.position.y; currentScene = sr.battleSetup.lastOverworld; facingDirection = (int)sr.playerLogic.move.lookDirection; gold = sr.inventory.gold; respawnX = sr.battleSetup.respawnLocation.x; respawnY = sr.battleSetup.respawnLocation.y; respawnScene = sr.battleSetup.respawnScene; respawnDirection = (int)sr.battleSetup.respawnDirection; }
public Firmware(Program program, Action <TriggerSet> configureAction) { if (Instance != null) { throw new InvalidOperationException(); } Instance = this; Program = program; TimingManager = new TimingManager(Program.Runtime); var triggerSet = new TriggerSet(); configureAction(triggerSet); _argumentTriggers = triggerSet.Triggers.OfType <ArgumentTrigger>().ToList(); _triggers = triggerSet.Triggers.Where(x => !(x is ArgumentTrigger)).ToList(); }
public static void SetState(int sceneID, int index, bool state = true) { TriggerSet section; if (!LocalEvents.TryGetValue(sceneID, out section)) { section = new TriggerSet(); LocalEvents.Add(sceneID, section); } if (state) { section.Add(index); } else { section.Remove(index); if (section.Count == 0) { LocalEvents.Remove(sceneID); } } }
public void AddTriggerSet(TriggerSet ts) { // ALL old triggers get cleared triggerIndecies.Clear(); triggerTickNumbers.Clear(); triggerData.Clear(); if (ts.lastTickReceived > lastTickReceived) { for (int i = 0; i < ts.triggerIndecies.Count; i++) { if (ts.triggerTickNumbers [i] > lastTickReceived) { triggerIndecies.Add(ts.triggerIndecies[i]); triggerTickNumbers.Add(ts.triggerTickNumbers[i]); triggerData.Add(ts.triggerData[i]); } } lastTickReceived = ts.lastTickReceived; } }
public void RegisterIn(TriggerSet triggerSet) { triggerSet.Register(this); }
// // // bla bla. // void Configure(TriggerSet triggers) { new AirlockConstruct(Tag <IMyDoor>("[SP-ADI]"), Tag <IMyDoor>("[SP-ADE]"), Tag <IMyAirVent>("[SP-AV]")) .AddArgumentTriggers("SPAirlock") .RegisterIn(triggers); }