public static void Close(PersistentContainerInterface containerInterface, UniversalCoords coords) { PersistentContainer container = Instance(containerInterface.World, coords); if (container == null) { return; } container.RemoveInterface(containerInterface); Chunk chunk = container.World.GetChunk(coords) as Chunk; if (chunk == null) { return; } PersistentContainer unused; if (container is LargeChestContainer && container.IsUnused()) { chunk.Containers.TryRemove(container.Coords.BlockPackedCoords, out unused); chunk.Containers.TryRemove((container as LargeChestContainer).SecondCoords.BlockPackedCoords, out unused); } else if (container is SmallChestContainer && container.IsUnused()) { chunk.Containers.TryRemove(container.Coords.BlockPackedCoords, out unused); } }
public virtual void RemoveInterface(PersistentContainerInterface containerInterface) { lock (_containerLock) { Save(); Interfaces.Remove(containerInterface); } }
public virtual void AddInterface(PersistentContainerInterface containerInterface) { lock (_containerLock) { if (!Interfaces.Contains(containerInterface)) { containerInterface.Container = this; Interfaces.Add(containerInterface); } } }
public override void AddInterface(PersistentContainerInterface containerInterface) { base.AddInterface(containerInterface); FurnaceInterface fi = containerInterface as FurnaceInterface; if (fi == null) { return; } if (IsBurning) { double fuelTickCost = ((double)(_fuelTicksFull)) / FullFire; short fireLevel = (short)(_fuelTicksLeft / fuelTickCost); fi.SendUpdateProgressBar(FurnaceBar.Progress, _progressTicks); fi.SendUpdateProgressBar(FurnaceBar.Fire, fireLevel); } }
public static void Close(PersistentContainerInterface containerInterface, UniversalCoords coords) { PersistentContainer container = Instance(containerInterface.World, coords); if (container == null) return; container.RemoveInterface(containerInterface); Chunk chunk = container.World.GetChunk(coords); if (chunk == null) return; PersistentContainer unused; if (container is LargeChestContainer && container.IsUnused()) { chunk.Containers.TryRemove(container.Coords.BlockPackedCoords, out unused); chunk.Containers.TryRemove((container as LargeChestContainer).SecondCoords.BlockPackedCoords, out unused); } else if (container is SmallChestContainer && container.IsUnused()) chunk.Containers.TryRemove(container.Coords.BlockPackedCoords, out unused); }
public override void AddInterface(PersistentContainerInterface containerInterface) { base.AddInterface(containerInterface); FurnaceInterface fi = containerInterface as FurnaceInterface; if (fi == null) return; if (IsBurning) { double fuelTickCost = ((double) (_fuelTicksFull))/FullFire; short fireLevel = (short) (_fuelTicksLeft/fuelTickCost); fi.SendUpdateProgressBar(FurnaceBar.Progress, _progressTicks); fi.SendUpdateProgressBar(FurnaceBar.Fire, fireLevel); } }