void WaterRemoved(WaterRemovedEvent e) { if (CrawlHere(e.waterPosition)) { foreach (Crawl crawl in crawls) { crawl.waterRemoved(e.waterPosition); } } }
public void subtractWater(Vector2 position, int subtractAmount) { if (!waterPositions[position].subtractWater(subtractAmount)) { waterPositions.Remove(position); texture.SetPixel((int)position.x, (int)position.y, Color.clear); WaterRemovedEvent e = new WaterRemovedEvent(); e.waterPosition = position; e.FireEvent(); } }
/// <summary> /// Do not use, for interfacing with Water Mod /// </summary> private void ModHandler(object data) { if (data == null) { return; } if (data is byte[]) { Waters = MyAPIGateway.Utilities.SerializeFromBinary <List <Water> >((byte[])data); if (Waters == null) { Waters = new List <Water>(); } else { foreach (var water in Waters) { MyEntity entity = MyEntities.GetEntityById(water.planetID); if (entity != null) { water.planet = MyEntities.GetEntityById(water.planetID) as MyPlanet; } } } int count = Waters.Count; RecievedData?.Invoke(); if (count > Waters.Count) { WaterCreatedEvent?.Invoke(); } if (count < Waters.Count) { WaterRemovedEvent?.Invoke(); } } if (!Registered) { Registered = true; OnRegisteredEvent?.Invoke(); } if (data is int && (int)data != ModAPIVersion) { MyLog.Default.WriteLine("Water API V" + ModAPIVersion + " for " + ModName + " is outdated, expected V" + (int)data); MyAPIGateway.Utilities.ShowMessage(ModName, "Water API V" + ModAPIVersion + " is outdated, expected V" + (int)data); } }
void initializedCallbacks() { WaterCreatedEvent.RegisterListener(WaterAdded); WaterRemovedEvent.RegisterListener(WaterRemoved); }