public ChargedObject MakeChargedObject(ChargedObjectSettings chargedObjectSettings, bool addToSandboxHistory = false) { createCounter++; GameObject newObject = Instantiate(SandboxManager.GetSandboxPrefabs()[chargedObjectSettings.shape]); newObject.name = "sandbox object " + createCounter; newObject.transform.parent = GetRegionManager().gameObject.transform; ChargedObject newChargedObject = newObject.AddComponent<ChargedObject>(); newChargedObject.UpdateValues(chargedObjectSettings); if (chargedObjectSettings.canMove) { MovingChargedObject mco = newObject.AddComponent<MovingChargedObject>(); mco.UpdateValues(chargedObjectSettings); mco.SetFrozenPosition(GameManager.GetGameManager().GetIsPaused()); } newObject.transform.position = chargedObjectSettings.position; GetRegionManager().AddChargedObject(newChargedObject); if (addToSandboxHistory) AddToHistory(newChargedObject, chargedObjectSettings); if (!GetChargedObjects().ContainsKey(newChargedObject)) GetChargedObjects().Add(newChargedObject, chargedObjectSettings); return newChargedObject; }
public void UpdateValues(ChargedObjectSettings chargedObjectSettings) { this.chargedObjectSettings = chargedObjectSettings; charge = chargedObjectSettings.charge; showCharge = chargedObjectSettings.showCharge; UpdateAppearance(); }
public ChargedObject MakeChargedObject(ChargedObjectSettings chargedObjectSettings, bool addToSandboxHistory = false) { createCounter++; GameObject newObject = Instantiate(SandboxManager.GetSandboxPrefabs()[chargedObjectSettings.shape]); newObject.name = "sandbox object " + createCounter; newObject.transform.parent = GetRegionManager().gameObject.transform; ChargedObject newChargedObject = newObject.AddComponent <ChargedObject>(); newChargedObject.UpdateValues(chargedObjectSettings); if (chargedObjectSettings.canMove) { MovingChargedObject mco = newObject.AddComponent <MovingChargedObject>(); mco.UpdateValues(chargedObjectSettings); mco.SetFrozenPosition(GameManager.GetGameManager().GetIsPaused()); } newObject.transform.position = chargedObjectSettings.position; GetRegionManager().AddChargedObject(newChargedObject); if (addToSandboxHistory) { AddToHistory(newChargedObject, chargedObjectSettings); } if (!GetChargedObjects().ContainsKey(newChargedObject)) { GetChargedObjects().Add(newChargedObject, chargedObjectSettings); } return(newChargedObject); }
public void CreateClick(bool addToSandboxHistory) { SoundManager.PlaySound(GameSounds.click); ChargedObjectSettings chargedObjectSettings = GetCreateObjectUI().GetChargedObjectSettingsFromUI(); if (OverlapsWithCoordHistory(chargedObjectSettings) && GameManager.GetGameManager().GetIsPaused()) { SoundManager.PlaySound(GameSounds.refuse); } else { ChargedObject newChargedObject = MakeChargedObject(chargedObjectSettings, addToSandboxHistory); } }
public void DeleteClick(GameObject clickObject) { ChargedObject co = clickObject.GetComponent <ChargedObject>(); if (co != null) { ChargedObjectSettings cos = co.GetChargedObjectSettings(); if (cos != null && sandboxHistory.Contains(cos)) { RemoveFromHistory(cos); } GetRegionManager().DestroyChargedObject(co); SoundManager.PlaySound(GameSounds.click); } }
private void RemakeCursorGameObject() { shouldRemakeCursor = false; Destroy(cursorGameObject); ChargedObjectSettings chargedObjectSettings = GetChargedObjectSettingsFromUI(); cursorGameObject = Instantiate(SandboxManager.GetSandboxPrefabs()[sandboxShape]); ChargedObject co = cursorGameObject.AddComponent <ChargedObject>(); MovingChargedObject mco = cursorGameObject.AddComponent <MovingChargedObject>(); co.enabled = false; mco.enabled = false; co.UpdateValues(chargedObjectSettings); mco.UpdateValues(chargedObjectSettings); cursorGameObject.transform.position = new Vector3(0, -100000, 0); ParentChildFunctions.SetCollidersOfChildren(cursorGameObject, false, true); }
private void RemoveFromHistory(ChargedObjectSettings cos) { sandboxHistory.Remove(cos); coordinateHistory.Remove(cos.position); }
private bool OverlapsWithCoordHistory(ChargedObjectSettings cos) { return coordinateHistory.ContainsKey(cos.position); }
private void AddToHistory(ChargedObject chargedObject, ChargedObjectSettings chargedObjectSettings) { sandboxHistory.Add(chargedObjectSettings); coordinateHistory.Add(chargedObjectSettings.position, chargedObjectSettings); GetChargedObjects().Add(chargedObject, chargedObjectSettings); }
private bool OverlapsWithCoordHistory(ChargedObjectSettings cos) { return(coordinateHistory.ContainsKey(cos.position)); }
public void UpdateValues(ChargedObjectSettings chargedObjectSettings) { mass = chargedObjectSettings.mass; startVelocity = chargedObjectSettings.startVelocity; UpdateAppearance(); }