示例#1
0
 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);
            }
        }
示例#4
0
 void initializedCallbacks()
 {
     WaterCreatedEvent.RegisterListener(WaterAdded);
     WaterRemovedEvent.RegisterListener(WaterRemoved);
 }