public bool TryTakeItem(StorageUserInterface sourceEntity, out ItemBase item, out ushort cubeType, out ushort cubeValue, bool sendImmediateNetworkUpdate) { item = null; cubeType = 0; cubeValue = 0; if (!Enabled) { return(false); } if (Exemplar == null) { return(false); } var exemplarCopy = Exemplar.NewInstance(); exemplarCopy.SetAmount(1); var itemBase = StorageIoService.GetStorageController().GetItems() .Find(x => x.mnItemID == exemplarCopy.mnItemID); if (itemBase != null && itemBase.GetAmount() > 0) { return(true); } else { return(false); } }
public bool TryExtractAny(StorageUserInterface sourceEntity, int amount, out ItemBase item) { ushort num; ushort num2; int num3; return(this.TryExtract(eHopperRequestType.eAny, -1, 0, 0, false, amount, amount, false, false, false, true, false, out item, out num, out num2, out num3)); }
public bool TryInsert(StorageUserInterface sourceEntity, ushort cube, ushort value, int amount) { int num; int num2; this.TryInsert(null, cube, value, amount, false, false, false, out num, out num2); return(num > 0); }
public bool TryInsert(StorageUserInterface sourceEntity, ItemBase item) { int num; int num2; this.TryInsert(item, 0, 0, 0, false, false, false, out num, out num2); return(num > 0); }
public int TryPartialInsert(StorageUserInterface sourceEntity, ushort cube, ushort value, int amount) { int result; int num; this.TryInsert(null, cube, value, amount, true, false, false, out result, out num); return(result); }
public bool TryDeliverItem(StorageUserInterface sourceEntity, ItemBase item, ushort cubeType, ushort cubeValue, bool sendImmediateNetworkUpdate) { int num; int num2; this.TryInsert(item, cubeType, cubeValue, 1, false, false, false, out num, out num2); return(num > 0); }
public bool TryExtractItemsOrCubes(StorageUserInterface sourceEntity, int itemId, ushort cube, ushort value, int amount, out ItemBase item) { ushort num; ushort num2; int num3; return(this.TryExtract(eHopperRequestType.eAny, itemId, cube, value, false, amount, amount, false, false, false, true, false, out item, out num, out num2, out num3)); }
public int TryPartialExtractItemsOrCubes(StorageUserInterface sourceEntity, int itemId, ushort cube, ushort value, int amount, out ItemBase item) { ushort num; ushort num2; int result; this.TryExtract(eHopperRequestType.eAny, itemId, cube, value, false, 1, amount, false, false, false, true, false, out item, out num, out num2, out result); return(result); }
public int TryPartialExtractCubes(StorageUserInterface sourceEntity, ushort cube, ushort value, int amount) { ItemBase itemBase; ushort num; ushort num2; int result; bool flag = this.TryExtract(eHopperRequestType.eAny, -1, cube, value, false, 1, amount, false, false, false, false, false, out itemBase, out num, out num2, out result); return(result); }
public int TryPartialExtractItems(StorageUserInterface sourceEntity, int itemId, int amount) { ItemBase itemBase; ushort num; ushort num2; int result; this.TryExtract(eHopperRequestType.eAny, itemId, 0, 0, false, 1, amount, false, false, true, false, false, out itemBase, out num, out num2, out result); return(result); }
// From ItemSupplierInterface public bool PeekItem(StorageUserInterface storageUserInterface, out ItemBase item, out ushort cubeType, out ushort cubeValue) { cubeType = cubeValue = 0; SegmentEntity sourceEntity = storageUserInterface as SegmentEntity; if (sourceEntity == null || carriedItem == null || !outputLocation.Allow(sourceEntity)) { // ModLoader.log("PeekItem failed in precheck: sourceEntity == {0}, carriedItem=={1}, inputPort.Allow == {2}", sourceEntity, carriedItem, inputLocation.Allow(sourceEntity)); item = null; return(false); } item = carriedItem; return(true); }
public bool TryDeliverItem(StorageUserInterface sourceEntity, ItemBase item, ushort cubeType, ushort cubeValue, bool sendImmediateNetworkUpdate) { if (!isValidLensID(item.mnItemID)) { return(false); //Not a lens! } if (item.GetAmount() <= 0) { return(false); } if (item.mnItemID != mTargetLens.mnItemID) { return(false); //Must be correct type! } if (item.GetAmount() > getStorageAvailable()) { return(false); } AddLenses(item.GetAmount()); MarkDirtyDelayed(); return(true); }
// From ItemConsumerInterface // RECEIVE an item from SourceEntity public bool TryDeliverItem(StorageUserInterface storageUserInterface, ItemBase item, ushort cubeType, ushort cubeValue, bool sendImmediateNetworkUpdate) { SegmentEntity sourceEntity = storageUserInterface as SegmentEntity; if (sourceEntity == null || carriedItem != null || !inputLocation.Allow(sourceEntity)) { // ModLoader.log("TryDeliverItem failed in precheck: sourceEntity == {0}, carriedItem=={1}, inputPort.Allow == {2}", sourceEntity, carriedItem, inputLocation.Allow(sourceEntity)); return(false); } if (item == null) { item = ItemManager.SpawnCubeStack(cubeType, cubeValue, 1); } carriedItem = item; SetAnimationState(AnimateCarryItem()); if (sendImmediateNetworkUpdate) { this.RequestImmediateNetworkUpdate(); } return(true); }
// From ItemSupplierInterface // sourceEntity wants us to DELIVER an item to them public bool TryTakeItem(StorageUserInterface storageUserInterface, out ItemBase item, out ushort cubeType, out ushort cubeValue, bool sendImmediateNetworkUpdate) { cubeValue = cubeType = 0; SegmentEntity sourceEntity = storageUserInterface as SegmentEntity; // check to see if we have carried the item fully! if (sourceEntity == null || carriedItem == null || !outputLocation.Allow(sourceEntity)) { // ModLoader.log("TryTakeItem failed in precheck: sourceEntity == {0}, carriedItem=={1}, inputPort.Allow == {2}", sourceEntity, carriedItem, inputLocation.Allow(sourceEntity)); item = null; return(false); } item = carriedItem; carriedItem = null; if (sendImmediateNetworkUpdate) { this.RequestImmediateNetworkUpdate(); } return(true); }
public int TryPartialInsert(StorageUserInterface sourceEntity, ref ItemBase item, bool alwaysCloneItem, bool updateSourceItem) { int result; int num; this.TryInsert(item, 0, 0, 0, true, false, alwaysCloneItem, out result, out num); if (updateSourceItem && (item is ItemStack || item is ItemCubeStack)) { if (num <= 0) { item = null; } else { ItemManager.SetItemCount(item, num); } } else if (updateSourceItem) { item = null; } return(result); }
public bool TryExtractItems(StorageUserInterface sourceEntity, int itemId, int amount) { return(false); }
public bool TryExtractAny(StorageUserInterface sourceEntity, int amount, out ItemBase item) { item = null; return(false); }
public int TryPartialExtractItems(StorageUserInterface sourceEntity, int itemId, int amount, out ItemBase item) { item = null; return(0); }
public int TryPartialExtractItems(StorageUserInterface sourceEntity, int itemId, int amount) { return(0); }
public bool TryInsert(StorageUserInterface sourceEntity, ItemBase item) { return(false); }
public int TryPartialExtractItemsOrCubes(StorageUserInterface sourceEntity, int itemId, ushort cube, ushort value, int amount) { return(0); }
public bool TryInsert(StorageUserInterface sourceEntity, ushort cube, ushort value, int amount) { return(false); }
public int TryPartialInsert(StorageUserInterface sourceEntity, ref ItemBase item, bool alwaysCloneItem, bool updateSourceItem) { return(0); }
public int TryPartialInsert(StorageUserInterface sourceEntity, ushort cube, ushort value, int amount) { return(0); }
public bool TryDeliverItem(StorageUserInterface sourceEntity, ItemBase item, ushort cubeType, ushort cubeValue, bool sendImmediateNetworkUpdate) { if (!WorldScript.mbIsServer) { return(false); } if (_incomingItem != null || sourceEntity == null || (item == null && cubeType == 0 && cubeValue == 0)) { return(false); } if (item == null) { item = ItemManager.SpawnCubeStack(cubeType, cubeValue, 1); } var storageController = StorageIoService.GetStorageController(); if (storageController == null || !storageController.HasPower()) { return(false); } if (_nextInsertDirection == Direction.LEFT) { _nextInsertDirection = Direction.RIGHT; } else if (_nextInsertDirection == Direction.RIGHT) { _nextInsertDirection = Direction.FRONT; } else if (_nextInsertDirection == Direction.FRONT) { _nextInsertDirection = Direction.LEFT; } SegmentEntity segment = (SegmentEntity)sourceEntity; PositionUtils.GetSegmentPos(MachineSides.Left, mnX, mnY, mnZ, out long x, out long y, out long z); if (_nextInsertDirection == Direction.LEFT && PositionUtils.IsSegmentPositionEqual(segment, x, y, z)) { _incomingItem = item; } PositionUtils.GetSegmentPos(MachineSides.Right, mnX, mnY, mnZ, out x, out y, out z); if (_nextInsertDirection == Direction.RIGHT && PositionUtils.IsSegmentPositionEqual(segment, x, y, z)) { _incomingItem = item; } PositionUtils.GetSegmentPos(MachineSides.Front, mnX, mnY, mnZ, out x, out y, out z); if (_nextInsertDirection == Direction.FRONT && PositionUtils.IsSegmentPositionEqual(segment, x, y, z)) { _incomingItem = item; } MarkDirtyDelayed(); if (_incomingItem == null) { return(false); } if (sendImmediateNetworkUpdate) { RequestImmediateNetworkUpdate(); } return(true); }
public bool TryExtractItemsOrCubes(StorageUserInterface sourceEntity, int itemId, ushort cube, ushort value, int amount) { return(false); }