private void OnTriggerEnter2D(Collider2D collision) { if (collision.TryGetComponent(out IShipModule module)) { if (CurrentModule != null) { Debug.LogWarning("Overridding active module!"); } CurrentModule = module; } }
public void Use(IShipModule currentModule, Vector3 _) { if (currentModule != null) { Debug.Log($"Using {Name} => [{currentModule.Name}]"); } else { Debug.Log($"Using {Name} => [null]"); } }
private void OnTriggerExit2D(Collider2D collision) { if (collision.TryGetComponent(out IShipModule module)) { if (module != CurrentModule) { Debug.LogWarning("Trying to remove module that is not current!"); return; } CurrentModule = null; } }
public void Remove(IShipModule module) { Modules.Remove(module); }
public void Add(IShipModule module) { Modules.Add(module); }
public abstract void Use(IShipModule currentModule);
public void Use(IShipModule currentModule, Vector3 _) { spawnedPrefab.Use(currentModule); }
public void Use(IShipModule currentModule, Vector3 _) => currentModule?.UseItem(this);
public override void Use(IShipModule _) { Shoot(); }