diff --git a/src/api/java/appeng/api/implementations/items/IStorageCell.java b/src/api/java/appeng/api/implementations/items/IStorageCell.java index 79763e2a7..ce8c1d3b6 100644 --- a/src/api/java/appeng/api/implementations/items/IStorageCell.java +++ b/src/api/java/appeng/api/implementations/items/IStorageCell.java @@ -27,8 +27,8 @@ import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; -import appeng.api.storage.ICellWorkbenchItem; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellWorkbenchItem; import appeng.api.storage.data.IAEStack; /** diff --git a/src/api/java/appeng/api/implementations/tiles/IChestOrDrive.java b/src/api/java/appeng/api/implementations/tiles/IChestOrDrive.java index 342fd5972..d9555c1c4 100644 --- a/src/api/java/appeng/api/implementations/tiles/IChestOrDrive.java +++ b/src/api/java/appeng/api/implementations/tiles/IChestOrDrive.java @@ -28,7 +28,8 @@ import javax.annotation.Nullable; import net.minecraft.item.Item; import appeng.api.networking.IGridHost; -import appeng.api.storage.ICellContainer; +import appeng.api.storage.cells.CellState; +import appeng.api.storage.cells.ICellContainer; import appeng.api.util.IOrientable; public interface IChestOrDrive extends ICellContainer, IGridHost, IOrientable { @@ -39,19 +40,11 @@ public interface IChestOrDrive extends ICellContainer, IGridHost, IOrientable { int getCellCount(); /** - * 0 - cell is missing. - * - * 1 - green, - * - * 2 - orange, - * - * 3 - red - * * @param slot slot index * * @return status of the slot, one of the above indices. */ - int getCellStatus(int slot); + CellState getCellStatus(int slot); /** * @return if the device is online you should check this before providing any diff --git a/src/api/java/appeng/api/networking/storage/IStorageGrid.java b/src/api/java/appeng/api/networking/storage/IStorageGrid.java index 7ad4376db..7392982ed 100644 --- a/src/api/java/appeng/api/networking/storage/IStorageGrid.java +++ b/src/api/java/appeng/api/networking/storage/IStorageGrid.java @@ -26,10 +26,10 @@ package appeng.api.networking.storage; import appeng.api.networking.IGridCache; import appeng.api.networking.IGridHost; import appeng.api.networking.security.IActionSource; -import appeng.api.storage.ICellContainer; -import appeng.api.storage.ICellProvider; import appeng.api.storage.IStorageChannel; import appeng.api.storage.IStorageMonitorable; +import appeng.api.storage.cells.ICellContainer; +import appeng.api.storage.cells.ICellProvider; import appeng.api.storage.data.IAEStack; /** diff --git a/src/api/java/appeng/api/storage/ICellRegistry.java b/src/api/java/appeng/api/storage/ICellRegistry.java index 2137579b1..c7a16ca9e 100644 --- a/src/api/java/appeng/api/storage/ICellRegistry.java +++ b/src/api/java/appeng/api/storage/ICellRegistry.java @@ -29,6 +29,10 @@ import javax.annotation.Nullable; import net.minecraft.item.ItemStack; import appeng.api.IAppEngApi; +import appeng.api.storage.cells.ICellGuiHandler; +import appeng.api.storage.cells.ICellHandler; +import appeng.api.storage.cells.ICellInventoryHandler; +import appeng.api.storage.cells.ISaveProvider; import appeng.api.storage.data.IAEStack; /** diff --git a/src/api/java/appeng/api/storage/IMEInventoryHandler.java b/src/api/java/appeng/api/storage/IMEInventoryHandler.java index b34e7d8b1..5b2c08f33 100644 --- a/src/api/java/appeng/api/storage/IMEInventoryHandler.java +++ b/src/api/java/appeng/api/storage/IMEInventoryHandler.java @@ -24,6 +24,7 @@ package appeng.api.storage; import appeng.api.config.AccessRestriction; +import appeng.api.storage.cells.ICellContainer; import appeng.api.storage.data.IAEStack; /** diff --git a/src/api/java/appeng/api/storage/cells/CellState.java b/src/api/java/appeng/api/storage/cells/CellState.java new file mode 100644 index 000000000..c8dfe2299 --- /dev/null +++ b/src/api/java/appeng/api/storage/cells/CellState.java @@ -0,0 +1,54 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2020 AlgorithmX2 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +package appeng.api.storage.cells; + +/** + * @author yueh + */ +public enum CellState { + /** + * No cell at all + */ + ABSENT, + + /** + * A cell without anything stored + */ + EMPTY, + + /** + * Stored something, but neither types nor totally full + */ + NOT_EMPTY, + + /** + * Available types exhausted + */ + TYPES_FULL, + + /** + * Full cell, technically could have free types + */ + FULL, +} \ No newline at end of file diff --git a/src/api/java/appeng/api/storage/ICellContainer.java b/src/api/java/appeng/api/storage/cells/ICellContainer.java similarity index 97% rename from src/api/java/appeng/api/storage/ICellContainer.java rename to src/api/java/appeng/api/storage/cells/ICellContainer.java index db0c10d16..05cef94a3 100644 --- a/src/api/java/appeng/api/storage/ICellContainer.java +++ b/src/api/java/appeng/api/storage/cells/ICellContainer.java @@ -21,7 +21,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package appeng.api.storage; +package appeng.api.storage.cells; import appeng.api.networking.security.IActionHost; diff --git a/src/api/java/appeng/api/storage/ICellGuiHandler.java b/src/api/java/appeng/api/storage/cells/ICellGuiHandler.java similarity index 92% rename from src/api/java/appeng/api/storage/ICellGuiHandler.java rename to src/api/java/appeng/api/storage/cells/ICellGuiHandler.java index 43052d545..aac512571 100644 --- a/src/api/java/appeng/api/storage/ICellGuiHandler.java +++ b/src/api/java/appeng/api/storage/cells/ICellGuiHandler.java @@ -1,10 +1,12 @@ -package appeng.api.storage; +package appeng.api.storage.cells; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import appeng.api.implementations.tiles.IChestOrDrive; +import appeng.api.storage.IMEInventoryHandler; +import appeng.api.storage.IStorageChannel; import appeng.api.storage.data.IAEStack; public interface ICellGuiHandler { diff --git a/src/api/java/appeng/api/storage/ICellHandler.java b/src/api/java/appeng/api/storage/cells/ICellHandler.java similarity index 88% rename from src/api/java/appeng/api/storage/ICellHandler.java rename to src/api/java/appeng/api/storage/cells/ICellHandler.java index 25788c672..e123ed77b 100644 --- a/src/api/java/appeng/api/storage/ICellHandler.java +++ b/src/api/java/appeng/api/storage/cells/ICellHandler.java @@ -21,10 +21,12 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package appeng.api.storage; +package appeng.api.storage.cells; import net.minecraft.item.ItemStack; +import appeng.api.storage.ICellRegistry; +import appeng.api.storage.IStorageChannel; import appeng.api.storage.data.IAEStack; /** @@ -72,17 +74,17 @@ public interface ICellHandler { * * @return get the status of the cell based on its contents. */ - default > int getStatusForCell(ItemStack is, ICellInventoryHandler handler) { + default > CellState getStatusForCell(ItemStack is, ICellInventoryHandler handler) { if (handler.getCellInv() != null) { - int val = handler.getCellInv().getStatusForCell(); + CellState val = handler.getCellInv().getStatusForCell(); - if (val == 1 && handler.isPreformatted()) { - val = 2; + if (val == CellState.EMPTY && handler.isPreformatted()) { + val = CellState.TYPES_FULL; } return val; } - return 0; + return CellState.ABSENT; } /** diff --git a/src/api/java/appeng/api/storage/ICellInventory.java b/src/api/java/appeng/api/storage/cells/ICellInventory.java similarity index 90% rename from src/api/java/appeng/api/storage/ICellInventory.java rename to src/api/java/appeng/api/storage/cells/ICellInventory.java index 52d9010ab..846f3a6e7 100644 --- a/src/api/java/appeng/api/storage/ICellInventory.java +++ b/src/api/java/appeng/api/storage/cells/ICellInventory.java @@ -21,12 +21,13 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package appeng.api.storage; +package appeng.api.storage.cells; import net.minecraft.item.ItemStack; import net.minecraftforge.items.IItemHandler; import appeng.api.config.FuzzyMode; +import appeng.api.storage.IMEInventory; import appeng.api.storage.data.IAEStack; public interface ICellInventory> extends IMEInventory { @@ -112,17 +113,9 @@ public interface ICellInventory> extends IMEInventory { int getUnusedItemCount(); /** - * 0 - cell is missing. - * - * 1 - green, ( usually means available room for types or items. ) - * - * 2 - orange, ( usually means available room for items, but not types. ) - * - * 3 - red, ( usually means the cell is 100% full ) - * * @return get the status of the cell based on its contents. */ - int getStatusForCell(); + CellState getStatusForCell(); /** * Tells the cell to persist to NBT diff --git a/src/api/java/appeng/api/storage/ICellInventoryHandler.java b/src/api/java/appeng/api/storage/cells/ICellInventoryHandler.java similarity index 95% rename from src/api/java/appeng/api/storage/ICellInventoryHandler.java rename to src/api/java/appeng/api/storage/cells/ICellInventoryHandler.java index 35d613faa..30255e6eb 100644 --- a/src/api/java/appeng/api/storage/ICellInventoryHandler.java +++ b/src/api/java/appeng/api/storage/cells/ICellInventoryHandler.java @@ -21,11 +21,12 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package appeng.api.storage; +package appeng.api.storage.cells; import javax.annotation.Nullable; import appeng.api.config.IncludeExclude; +import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.data.IAEStack; public interface ICellInventoryHandler> extends IMEInventoryHandler { diff --git a/src/api/java/appeng/api/storage/ICellProvider.java b/src/api/java/appeng/api/storage/cells/ICellProvider.java similarity index 94% rename from src/api/java/appeng/api/storage/ICellProvider.java rename to src/api/java/appeng/api/storage/cells/ICellProvider.java index 2414354ad..cd7fb83bc 100644 --- a/src/api/java/appeng/api/storage/ICellProvider.java +++ b/src/api/java/appeng/api/storage/cells/ICellProvider.java @@ -21,10 +21,13 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package appeng.api.storage; +package appeng.api.storage.cells; import java.util.List; +import appeng.api.storage.IMEInventoryHandler; +import appeng.api.storage.IStorageChannel; + /** * Allows you to provide cells via non IGridHosts directly to the storage * system, drives, and similar features should go though {@link ICellContainer} diff --git a/src/api/java/appeng/api/storage/ICellWorkbenchItem.java b/src/api/java/appeng/api/storage/cells/ICellWorkbenchItem.java similarity index 98% rename from src/api/java/appeng/api/storage/ICellWorkbenchItem.java rename to src/api/java/appeng/api/storage/cells/ICellWorkbenchItem.java index a630584de..68bd04076 100644 --- a/src/api/java/appeng/api/storage/ICellWorkbenchItem.java +++ b/src/api/java/appeng/api/storage/cells/ICellWorkbenchItem.java @@ -21,7 +21,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package appeng.api.storage; +package appeng.api.storage.cells; import net.minecraft.item.ItemStack; import net.minecraftforge.items.IItemHandler; diff --git a/src/api/java/appeng/api/storage/ISaveProvider.java b/src/api/java/appeng/api/storage/cells/ISaveProvider.java similarity index 97% rename from src/api/java/appeng/api/storage/ISaveProvider.java rename to src/api/java/appeng/api/storage/cells/ISaveProvider.java index 6609fef45..52d7b4366 100644 --- a/src/api/java/appeng/api/storage/ISaveProvider.java +++ b/src/api/java/appeng/api/storage/cells/ISaveProvider.java @@ -21,7 +21,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package appeng.api.storage; +package appeng.api.storage.cells; import javax.annotation.Nullable; diff --git a/src/api/java/appeng/api/util/IClientHelper.java b/src/api/java/appeng/api/util/IClientHelper.java index b2f9cf584..00d51ae46 100644 --- a/src/api/java/appeng/api/util/IClientHelper.java +++ b/src/api/java/appeng/api/util/IClientHelper.java @@ -1,3 +1,25 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2020 AlgorithmX2 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ package appeng.api.util; @@ -5,7 +27,7 @@ import java.util.List; import net.minecraft.util.text.ITextComponent; -import appeng.api.storage.ICellInventoryHandler; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.api.storage.data.IAEStack; public interface IClientHelper { diff --git a/src/main/java/appeng/block/storage/DriveSlotState.java b/src/main/java/appeng/block/storage/DriveSlotState.java index e68b48d74..4cd8306ba 100644 --- a/src/main/java/appeng/block/storage/DriveSlotState.java +++ b/src/main/java/appeng/block/storage/DriveSlotState.java @@ -20,6 +20,8 @@ package appeng.block.storage; import net.minecraft.util.IStringSerializable; +import appeng.api.storage.cells.CellState; + /** * Describes the different states a single slot of a BlockDrive can be in in * terms of rendering. @@ -52,16 +54,17 @@ public enum DriveSlotState implements IStringSerializable { return this.name; } - public static DriveSlotState fromCellStatus(int cellStatus) { + public static DriveSlotState fromCellStatus(CellState cellStatus) { switch (cellStatus) { default: - case 0: + case ABSENT: return DriveSlotState.EMPTY; - case 1: + case EMPTY: + case NOT_EMPTY: return DriveSlotState.ONLINE; - case 2: + case TYPES_FULL: return DriveSlotState.TYPES_FULL; - case 3: + case FULL: return DriveSlotState.FULL; } } diff --git a/src/main/java/appeng/block/storage/DriveSlotsState.java b/src/main/java/appeng/block/storage/DriveSlotsState.java index 0d9b415a0..46c8ff291 100644 --- a/src/main/java/appeng/block/storage/DriveSlotsState.java +++ b/src/main/java/appeng/block/storage/DriveSlotsState.java @@ -23,6 +23,7 @@ import com.google.common.base.Preconditions; import net.minecraft.item.Item; import appeng.api.implementations.tiles.IChestOrDrive; +import appeng.api.storage.cells.CellState; /** * Contains the full information about what the state of the slots in a @@ -69,7 +70,7 @@ public class DriveSlotsState { cells[i] = chestOrDrive.getCellItem(i); if (!chestOrDrive.isPowered()) { - if (chestOrDrive.getCellStatus(i) != 0) { + if (chestOrDrive.getCellStatus(i) != CellState.EMPTY) { states[i] = DriveSlotState.OFFLINE; } else { states[i] = DriveSlotState.EMPTY; diff --git a/src/main/java/appeng/container/implementations/CellWorkbenchContainer.java b/src/main/java/appeng/container/implementations/CellWorkbenchContainer.java index cc52dcf36..44c318444 100644 --- a/src/main/java/appeng/container/implementations/CellWorkbenchContainer.java +++ b/src/main/java/appeng/container/implementations/CellWorkbenchContainer.java @@ -36,9 +36,9 @@ import appeng.api.config.CopyMode; import appeng.api.config.FuzzyMode; import appeng.api.config.Settings; import appeng.api.implementations.items.IStorageCell; -import appeng.api.storage.ICellWorkbenchItem; import appeng.api.storage.IMEInventory; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellWorkbenchItem; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; diff --git a/src/main/java/appeng/container/slot/RestrictedInputSlot.java b/src/main/java/appeng/container/slot/RestrictedInputSlot.java index e217bcd95..c76e30392 100644 --- a/src/main/java/appeng/container/slot/RestrictedInputSlot.java +++ b/src/main/java/appeng/container/slot/RestrictedInputSlot.java @@ -44,7 +44,7 @@ import appeng.api.implementations.items.ISpatialStorageCell; import appeng.api.implementations.items.IStorageComponent; import appeng.api.implementations.items.IUpgradeModule; import appeng.api.networking.crafting.ICraftingPatternDetails; -import appeng.api.storage.ICellWorkbenchItem; +import appeng.api.storage.cells.ICellWorkbenchItem; import appeng.items.misc.EncodedPatternItem; import appeng.recipes.handlers.GrinderRecipes; import appeng.tile.misc.InscriberRecipes; diff --git a/src/main/java/appeng/core/Api.java b/src/main/java/appeng/core/Api.java index e94881606..fa4240502 100644 --- a/src/main/java/appeng/core/Api.java +++ b/src/main/java/appeng/core/Api.java @@ -84,5 +84,4 @@ public final class Api implements IAppEngApi { public IClientHelper client() { return this.client; } - } diff --git a/src/main/java/appeng/core/api/ApiClientHelper.java b/src/main/java/appeng/core/api/ApiClientHelper.java index ca885686e..235962e29 100644 --- a/src/main/java/appeng/core/api/ApiClientHelper.java +++ b/src/main/java/appeng/core/api/ApiClientHelper.java @@ -1,3 +1,20 @@ +/* + * This file is part of Applied Energistics 2. + * Copyright (c) 2013 - 2020, AlgorithmX2, All rights reserved. + * + * Applied Energistics 2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Applied Energistics 2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Applied Energistics 2. If not, see . + */ package appeng.core.api; @@ -7,8 +24,8 @@ import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import appeng.api.config.IncludeExclude; -import appeng.api.storage.ICellInventory; -import appeng.api.storage.ICellInventoryHandler; +import appeng.api.storage.cells.ICellInventory; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.api.storage.data.IAEStack; import appeng.api.util.IClientHelper; import appeng.core.localization.GuiText; @@ -48,4 +65,4 @@ public class ApiClientHelper implements IClientHelper { } -} +} \ No newline at end of file diff --git a/src/main/java/appeng/core/features/registries/cell/BasicCellHandler.java b/src/main/java/appeng/core/features/registries/cell/BasicCellHandler.java index 338eeb874..4833e269f 100644 --- a/src/main/java/appeng/core/features/registries/cell/BasicCellHandler.java +++ b/src/main/java/appeng/core/features/registries/cell/BasicCellHandler.java @@ -20,11 +20,11 @@ package appeng.core.features.registries.cell; import net.minecraft.item.ItemStack; -import appeng.api.storage.ICellHandler; -import appeng.api.storage.ICellInventory; -import appeng.api.storage.ICellInventoryHandler; -import appeng.api.storage.ISaveProvider; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellHandler; +import appeng.api.storage.cells.ICellInventory; +import appeng.api.storage.cells.ICellInventoryHandler; +import appeng.api.storage.cells.ISaveProvider; import appeng.api.storage.data.IAEStack; import appeng.me.storage.BasicCellInventory; import appeng.me.storage.BasicCellInventoryHandler; diff --git a/src/main/java/appeng/core/features/registries/cell/BasicItemCellGuiHandler.java b/src/main/java/appeng/core/features/registries/cell/BasicItemCellGuiHandler.java index 19ac7564e..94210396a 100644 --- a/src/main/java/appeng/core/features/registries/cell/BasicItemCellGuiHandler.java +++ b/src/main/java/appeng/core/features/registries/cell/BasicItemCellGuiHandler.java @@ -7,10 +7,10 @@ import net.minecraft.tileentity.TileEntity; import appeng.api.AEApi; import appeng.api.implementations.tiles.IChestOrDrive; -import appeng.api.storage.ICellGuiHandler; -import appeng.api.storage.ICellHandler; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellGuiHandler; +import appeng.api.storage.cells.ICellHandler; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEStack; import appeng.container.ContainerLocator; diff --git a/src/main/java/appeng/core/features/registries/cell/CellRegistry.java b/src/main/java/appeng/core/features/registries/cell/CellRegistry.java index 93f13b489..830d6b451 100644 --- a/src/main/java/appeng/core/features/registries/cell/CellRegistry.java +++ b/src/main/java/appeng/core/features/registries/cell/CellRegistry.java @@ -26,12 +26,12 @@ import com.google.common.base.Verify; import net.minecraft.item.ItemStack; -import appeng.api.storage.ICellGuiHandler; -import appeng.api.storage.ICellHandler; -import appeng.api.storage.ICellInventoryHandler; import appeng.api.storage.ICellRegistry; -import appeng.api.storage.ISaveProvider; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellGuiHandler; +import appeng.api.storage.cells.ICellHandler; +import appeng.api.storage.cells.ICellInventoryHandler; +import appeng.api.storage.cells.ISaveProvider; import appeng.api.storage.data.IAEStack; public class CellRegistry implements ICellRegistry { diff --git a/src/main/java/appeng/core/features/registries/cell/CreativeCellHandler.java b/src/main/java/appeng/core/features/registries/cell/CreativeCellHandler.java index 7909358df..4afa69047 100644 --- a/src/main/java/appeng/core/features/registries/cell/CreativeCellHandler.java +++ b/src/main/java/appeng/core/features/registries/cell/CreativeCellHandler.java @@ -21,10 +21,11 @@ package appeng.core.features.registries.cell; import net.minecraft.item.ItemStack; import appeng.api.AEApi; -import appeng.api.storage.ICellHandler; -import appeng.api.storage.ICellInventoryHandler; -import appeng.api.storage.ISaveProvider; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.CellState; +import appeng.api.storage.cells.ICellHandler; +import appeng.api.storage.cells.ICellInventoryHandler; +import appeng.api.storage.cells.ISaveProvider; import appeng.api.storage.channels.IItemStorageChannel; import appeng.items.storage.CreativeStorageCellItem; import appeng.me.storage.CreativeCellInventory; @@ -47,12 +48,13 @@ public final class CreativeCellHandler implements ICellHandler { } @Override - public int getStatusForCell(final ItemStack is, final ICellInventoryHandler handler) { - return 2; + public CellState getStatusForCell(final ItemStack is, final ICellInventoryHandler handler) { + return CellState.TYPES_FULL; } @Override public double cellIdleDrain(final ItemStack is, final ICellInventoryHandler handler) { return 0; } + } diff --git a/src/main/java/appeng/fluids/registries/BasicFluidCellGuiHandler.java b/src/main/java/appeng/fluids/registries/BasicFluidCellGuiHandler.java index 7408ebd23..0e1a6b25b 100644 --- a/src/main/java/appeng/fluids/registries/BasicFluidCellGuiHandler.java +++ b/src/main/java/appeng/fluids/registries/BasicFluidCellGuiHandler.java @@ -24,10 +24,10 @@ import net.minecraft.tileentity.TileEntity; import appeng.api.AEApi; import appeng.api.implementations.tiles.IChestOrDrive; -import appeng.api.storage.ICellGuiHandler; -import appeng.api.storage.ICellHandler; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellGuiHandler; +import appeng.api.storage.cells.ICellHandler; import appeng.api.storage.channels.IFluidStorageChannel; import appeng.api.storage.data.IAEStack; import appeng.container.ContainerLocator; diff --git a/src/main/java/appeng/items/storage/CreativeStorageCellItem.java b/src/main/java/appeng/items/storage/CreativeStorageCellItem.java index 27b97d300..c14d74bad 100644 --- a/src/main/java/appeng/items/storage/CreativeStorageCellItem.java +++ b/src/main/java/appeng/items/storage/CreativeStorageCellItem.java @@ -30,9 +30,9 @@ import net.minecraftforge.items.IItemHandler; import appeng.api.AEApi; import appeng.api.config.FuzzyMode; -import appeng.api.storage.ICellInventoryHandler; -import appeng.api.storage.ICellWorkbenchItem; import appeng.api.storage.IMEInventoryHandler; +import appeng.api.storage.cells.ICellInventoryHandler; +import appeng.api.storage.cells.ICellWorkbenchItem; import appeng.api.storage.channels.IItemStorageChannel; import appeng.items.AEBaseItem; import appeng.items.contents.CellConfig; diff --git a/src/main/java/appeng/items/storage/ViewCellItem.java b/src/main/java/appeng/items/storage/ViewCellItem.java index 4a1166251..2439b87ca 100644 --- a/src/main/java/appeng/items/storage/ViewCellItem.java +++ b/src/main/java/appeng/items/storage/ViewCellItem.java @@ -25,7 +25,7 @@ import appeng.api.AEApi; import appeng.api.config.FuzzyMode; import appeng.api.config.Upgrades; import appeng.api.implementations.items.IUpgradeModule; -import appeng.api.storage.ICellWorkbenchItem; +import appeng.api.storage.cells.ICellWorkbenchItem; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; diff --git a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java index e49e4bb24..915ae12ec 100644 --- a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java +++ b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java @@ -55,9 +55,9 @@ import appeng.api.config.FuzzyMode; import appeng.api.implementations.items.IItemGroup; import appeng.api.implementations.items.IStorageCell; import appeng.api.implementations.tiles.IColorableTile; -import appeng.api.storage.ICellInventoryHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; diff --git a/src/main/java/appeng/items/tools/powered/MatterCannonItem.java b/src/main/java/appeng/items/tools/powered/MatterCannonItem.java index 5c38b0ecf..187cb4bb6 100644 --- a/src/main/java/appeng/items/tools/powered/MatterCannonItem.java +++ b/src/main/java/appeng/items/tools/powered/MatterCannonItem.java @@ -57,8 +57,8 @@ import appeng.api.config.FuzzyMode; import appeng.api.config.Upgrades; import appeng.api.features.AEFeature; import appeng.api.implementations.items.IStorageCell; -import appeng.api.storage.ICellInventoryHandler; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; diff --git a/src/main/java/appeng/items/tools/powered/PortableCellItem.java b/src/main/java/appeng/items/tools/powered/PortableCellItem.java index 4cfd5c78b..305e8d1b6 100644 --- a/src/main/java/appeng/items/tools/powered/PortableCellItem.java +++ b/src/main/java/appeng/items/tools/powered/PortableCellItem.java @@ -41,8 +41,8 @@ import appeng.api.implementations.guiobjects.IGuiItem; import appeng.api.implementations.guiobjects.IGuiItemObject; import appeng.api.implementations.items.IItemGroup; import appeng.api.implementations.items.IStorageCell; -import appeng.api.storage.ICellInventoryHandler; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.container.ContainerLocator; diff --git a/src/main/java/appeng/me/cache/CraftingGridCache.java b/src/main/java/appeng/me/cache/CraftingGridCache.java index d73d4da90..cd347b3bd 100644 --- a/src/main/java/appeng/me/cache/CraftingGridCache.java +++ b/src/main/java/appeng/me/cache/CraftingGridCache.java @@ -69,9 +69,9 @@ import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.events.MENetworkPostCacheConstruction; import appeng.api.networking.security.IActionSource; import appeng.api.networking.storage.IStorageGrid; -import appeng.api.storage.ICellProvider; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellProvider; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEStack; diff --git a/src/main/java/appeng/me/cache/GridStorageCache.java b/src/main/java/appeng/me/cache/GridStorageCache.java index 1bbf898b1..e143a0248 100644 --- a/src/main/java/appeng/me/cache/GridStorageCache.java +++ b/src/main/java/appeng/me/cache/GridStorageCache.java @@ -41,11 +41,11 @@ import appeng.api.networking.security.ISecurityGrid; import appeng.api.networking.storage.IStackWatcher; import appeng.api.networking.storage.IStackWatcherHost; import appeng.api.networking.storage.IStorageGrid; -import appeng.api.storage.ICellContainer; -import appeng.api.storage.ICellProvider; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.IMEMonitor; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellContainer; +import appeng.api.storage.cells.ICellProvider; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; diff --git a/src/main/java/appeng/me/storage/AbstractCellInventory.java b/src/main/java/appeng/me/storage/AbstractCellInventory.java index 0c6277212..694d404f2 100644 --- a/src/main/java/appeng/me/storage/AbstractCellInventory.java +++ b/src/main/java/appeng/me/storage/AbstractCellInventory.java @@ -24,8 +24,9 @@ import net.minecraftforge.items.IItemHandler; import appeng.api.config.FuzzyMode; import appeng.api.implementations.items.IStorageCell; -import appeng.api.storage.ICellInventory; -import appeng.api.storage.ISaveProvider; +import appeng.api.storage.cells.CellState; +import appeng.api.storage.cells.ICellInventory; +import appeng.api.storage.cells.ISaveProvider; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; @@ -289,13 +290,17 @@ public abstract class AbstractCellInventory> implements IC } @Override - public int getStatusForCell() { + public CellState getStatusForCell() { + if (this.getStoredItemTypes() == 0) { + return CellState.EMPTY; + } if (this.canHoldNewItem()) { - return 1; + return CellState.NOT_EMPTY; } if (this.getRemainingItemCount() > 0) { - return 2; + return CellState.TYPES_FULL; } - return 3; + return CellState.FULL; } + } diff --git a/src/main/java/appeng/me/storage/BasicCellInventory.java b/src/main/java/appeng/me/storage/BasicCellInventory.java index 71a8da628..c8edc7308 100644 --- a/src/main/java/appeng/me/storage/BasicCellInventory.java +++ b/src/main/java/appeng/me/storage/BasicCellInventory.java @@ -9,9 +9,9 @@ import appeng.api.config.Actionable; import appeng.api.exceptions.AppEngException; import appeng.api.implementations.items.IStorageCell; import appeng.api.networking.security.IActionSource; -import appeng.api.storage.ICellInventory; -import appeng.api.storage.ISaveProvider; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellInventory; +import appeng.api.storage.cells.ISaveProvider; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEStack; import appeng.core.AEConfig; diff --git a/src/main/java/appeng/me/storage/BasicCellInventoryHandler.java b/src/main/java/appeng/me/storage/BasicCellInventoryHandler.java index 9b4cc8c04..a769908e5 100644 --- a/src/main/java/appeng/me/storage/BasicCellInventoryHandler.java +++ b/src/main/java/appeng/me/storage/BasicCellInventoryHandler.java @@ -26,10 +26,10 @@ import appeng.api.config.FuzzyMode; import appeng.api.config.IncludeExclude; import appeng.api.config.Upgrades; import appeng.api.implementations.items.IUpgradeModule; -import appeng.api.storage.ICellInventory; -import appeng.api.storage.ICellInventoryHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellInventory; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; import appeng.util.prioritylist.FuzzyPriorityList; diff --git a/src/main/java/appeng/me/storage/CreativeCellInventory.java b/src/main/java/appeng/me/storage/CreativeCellInventory.java index 69b0ade62..741e24366 100644 --- a/src/main/java/appeng/me/storage/CreativeCellInventory.java +++ b/src/main/java/appeng/me/storage/CreativeCellInventory.java @@ -24,9 +24,9 @@ import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; import appeng.api.networking.security.IActionSource; -import appeng.api.storage.ICellInventoryHandler; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; diff --git a/src/main/java/appeng/me/storage/DriveWatcher.java b/src/main/java/appeng/me/storage/DriveWatcher.java index e6e2274c3..535c59283 100644 --- a/src/main/java/appeng/me/storage/DriveWatcher.java +++ b/src/main/java/appeng/me/storage/DriveWatcher.java @@ -23,13 +23,14 @@ import net.minecraft.item.ItemStack; import appeng.api.config.Actionable; import appeng.api.implementations.tiles.IChestOrDrive; import appeng.api.networking.security.IActionSource; -import appeng.api.storage.ICellHandler; -import appeng.api.storage.ICellInventoryHandler; +import appeng.api.storage.cells.CellState; +import appeng.api.storage.cells.ICellHandler; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.api.storage.data.IAEStack; public class DriveWatcher> extends MEInventoryHandler { - private int oldStatus = 0; + private CellState oldStatus = CellState.EMPTY; private final ItemStack is; private final ICellHandler handler; private final IChestOrDrive cord; @@ -42,7 +43,7 @@ public class DriveWatcher> extends MEInventoryHandler { this.cord = cod; } - public int getStatus() { + public CellState getStatus() { return this.handler.getStatusForCell(this.is, (ICellInventoryHandler) this.getInternal()); } @@ -53,7 +54,7 @@ public class DriveWatcher> extends MEInventoryHandler { final T a = super.injectItems(input, type, src); if (type == Actionable.MODULATE && (a == null || a.getStackSize() != size)) { - final int newStatus = this.getStatus(); + final CellState newStatus = this.getStatus(); if (newStatus != this.oldStatus) { this.cord.blinkCell(this.getSlot()); @@ -69,7 +70,7 @@ public class DriveWatcher> extends MEInventoryHandler { final T a = super.extractItems(request, type, src); if (type == Actionable.MODULATE && a != null) { - final int newStatus = this.getStatus(); + final CellState newStatus = this.getStatus(); if (newStatus != this.oldStatus) { this.cord.blinkCell(this.getSlot()); diff --git a/src/main/java/appeng/parts/automation/AbstractFormationPlanePart.java b/src/main/java/appeng/parts/automation/AbstractFormationPlanePart.java index c18e0f46a..ef60254f3 100644 --- a/src/main/java/appeng/parts/automation/AbstractFormationPlanePart.java +++ b/src/main/java/appeng/parts/automation/AbstractFormationPlanePart.java @@ -14,9 +14,9 @@ import appeng.api.networking.security.IActionSource; import appeng.api.parts.IPart; import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartHost; -import appeng.api.storage.ICellContainer; -import appeng.api.storage.ICellInventory; import appeng.api.storage.IMEInventory; +import appeng.api.storage.cells.ICellContainer; +import appeng.api.storage.cells.ICellInventory; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; import appeng.api.util.AECableType; diff --git a/src/main/java/appeng/parts/misc/SharedStorageBusPart.java b/src/main/java/appeng/parts/misc/SharedStorageBusPart.java index 6ab641705..84db2810e 100644 --- a/src/main/java/appeng/parts/misc/SharedStorageBusPart.java +++ b/src/main/java/appeng/parts/misc/SharedStorageBusPart.java @@ -34,10 +34,10 @@ import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.events.MENetworkPowerStatusChange; import appeng.api.networking.ticking.IGridTickable; import appeng.api.parts.IPartCollisionHelper; -import appeng.api.storage.ICellContainer; -import appeng.api.storage.ICellInventory; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.ICellContainer; +import appeng.api.storage.cells.ICellInventory; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.util.AECableType; import appeng.api.util.IConfigManager; @@ -168,4 +168,4 @@ public abstract class SharedStorageBusPart extends UpgradeablePart public float getCableConnectionLength(AECableType cable) { return 4; } -} +} \ No newline at end of file diff --git a/src/main/java/appeng/parts/misc/StorageBusPart.java b/src/main/java/appeng/parts/misc/StorageBusPart.java index ad4562abe..b2dbe491a 100644 --- a/src/main/java/appeng/parts/misc/StorageBusPart.java +++ b/src/main/java/appeng/parts/misc/StorageBusPart.java @@ -58,14 +58,14 @@ import appeng.api.networking.ticking.TickingRequest; import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartHost; import appeng.api.parts.IPartModel; -import appeng.api.storage.ICellContainer; -import appeng.api.storage.ICellInventory; import appeng.api.storage.IMEInventory; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.IMEMonitorHandlerReceiver; import appeng.api.storage.IStorageChannel; import appeng.api.storage.IStorageMonitorable; import appeng.api.storage.IStorageMonitorableAccessor; +import appeng.api.storage.cells.ICellContainer; +import appeng.api.storage.cells.ICellInventory; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; diff --git a/src/main/java/appeng/tile/inventory/AppEngCellInventory.java b/src/main/java/appeng/tile/inventory/AppEngCellInventory.java index c0945b031..9a1048765 100644 --- a/src/main/java/appeng/tile/inventory/AppEngCellInventory.java +++ b/src/main/java/appeng/tile/inventory/AppEngCellInventory.java @@ -4,8 +4,8 @@ package appeng.tile.inventory; import net.minecraft.item.ItemStack; import net.minecraftforge.items.IItemHandlerModifiable; -import appeng.api.storage.ICellInventory; -import appeng.api.storage.ICellInventoryHandler; +import appeng.api.storage.cells.ICellInventory; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.util.inv.IAEAppEngInventory; import appeng.util.inv.filter.IAEItemFilter; diff --git a/src/main/java/appeng/tile/misc/CellWorkbenchTileEntity.java b/src/main/java/appeng/tile/misc/CellWorkbenchTileEntity.java index 7985a0951..8129c832e 100644 --- a/src/main/java/appeng/tile/misc/CellWorkbenchTileEntity.java +++ b/src/main/java/appeng/tile/misc/CellWorkbenchTileEntity.java @@ -31,7 +31,7 @@ import appeng.api.config.CopyMode; import appeng.api.config.Settings; import appeng.api.config.Upgrades; import appeng.api.implementations.IUpgradeableHost; -import appeng.api.storage.ICellWorkbenchItem; +import appeng.api.storage.cells.ICellWorkbenchItem; import appeng.api.util.IConfigManager; import appeng.tile.AEBaseTileEntity; import appeng.tile.inventory.AppEngInternalAEInventory; diff --git a/src/main/java/appeng/tile/storage/ChestTileEntity.java b/src/main/java/appeng/tile/storage/ChestTileEntity.java index 98c5cd1a8..57db14c31 100644 --- a/src/main/java/appeng/tile/storage/ChestTileEntity.java +++ b/src/main/java/appeng/tile/storage/ChestTileEntity.java @@ -69,10 +69,6 @@ import appeng.api.networking.security.IActionSource; import appeng.api.networking.security.ISecurityGrid; import appeng.api.networking.storage.IBaseMonitor; import appeng.api.networking.storage.IStorageGrid; -import appeng.api.storage.ICellGuiHandler; -import appeng.api.storage.ICellHandler; -import appeng.api.storage.ICellInventory; -import appeng.api.storage.ICellInventoryHandler; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.IMEMonitor; import appeng.api.storage.IMEMonitorHandlerReceiver; @@ -80,6 +76,11 @@ import appeng.api.storage.IStorageChannel; import appeng.api.storage.IStorageMonitorable; import appeng.api.storage.IStorageMonitorableAccessor; import appeng.api.storage.ITerminalHost; +import appeng.api.storage.cells.CellState; +import appeng.api.storage.cells.ICellGuiHandler; +import appeng.api.storage.cells.ICellHandler; +import appeng.api.storage.cells.ICellInventory; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.api.storage.channels.IFluidStorageChannel; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEFluidStack; @@ -162,7 +163,7 @@ public class ChestTileEntity extends AENetworkPowerTileEntity final int oldState = this.state; for (int x = 0; x < this.getCellCount(); x++) { - this.state |= (this.getCellStatus(x) << (3 * x)); + this.state |= (this.getCellStatus(x).ordinal() << (3 * x)); } if (this.isPowered()) { @@ -242,9 +243,9 @@ public class ChestTileEntity extends AENetworkPowerTileEntity } @Override - public int getCellStatus(final int slot) { + public CellState getCellStatus(final int slot) { if (isRemote()) { - return (this.state >> (slot * 3)) & 3; + return CellState.values()[(this.state >> (slot * 3)) & 3]; } this.updateHandler(); @@ -256,7 +257,7 @@ public class ChestTileEntity extends AENetworkPowerTileEntity return ch.getStatusForCell(cell, this.cellHandler.getInternalHandler()); } - return 0; + return CellState.ABSENT; } @Nullable @@ -354,7 +355,7 @@ public class ChestTileEntity extends AENetworkPowerTileEntity } for (int x = 0; x < this.getCellCount(); x++) { - this.state |= (this.getCellStatus(x) << (3 * x)); + this.state |= (this.getCellStatus(x).ordinal() << (3 * x)); } if (this.isPowered()) { diff --git a/src/main/java/appeng/tile/storage/DriveTileEntity.java b/src/main/java/appeng/tile/storage/DriveTileEntity.java index 809545b7e..c4dd5cfd6 100644 --- a/src/main/java/appeng/tile/storage/DriveTileEntity.java +++ b/src/main/java/appeng/tile/storage/DriveTileEntity.java @@ -49,11 +49,12 @@ import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.events.MENetworkPowerStatusChange; import appeng.api.networking.security.IActionSource; import appeng.api.networking.storage.IStorageGrid; -import appeng.api.storage.ICellHandler; -import appeng.api.storage.ICellInventory; -import appeng.api.storage.ICellInventoryHandler; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.IStorageChannel; +import appeng.api.storage.cells.CellState; +import appeng.api.storage.cells.ICellHandler; +import appeng.api.storage.cells.ICellInventory; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEStack; import appeng.api.util.AECableType; @@ -119,7 +120,7 @@ public class DriveTileEntity extends AENetworkInvTileEntity implements IChestOrD newState |= BIT_POWER_MASK; } for (int x = 0; x < this.getCellCount(); x++) { - newState |= (this.getCellStatus(x) << (3 * x)); + newState |= (this.getCellStatus(x).ordinal() << (3 * x)); } data.writeInt(newState); @@ -213,14 +214,14 @@ public class DriveTileEntity extends AENetworkInvTileEntity implements IChestOrD } @Override - public int getCellStatus(final int slot) { + public CellState getCellStatus(final int slot) { if (Platform.isClient()) { - return (this.state >> (slot * 3)) & 3; + return CellState.values()[(this.state >> (slot * 3)) & 3]; } final DriveWatcher handler = this.invBySlot[slot]; if (handler == null) { - return 0; + return CellState.ABSENT; } return handler.getStatus(); @@ -277,7 +278,7 @@ public class DriveTileEntity extends AENetworkInvTileEntity implements IChestOrD } for (int x = 0; x < this.getCellCount(); x++) { - newState |= (this.getCellStatus(x) << (3 * x)); + newState |= (this.getCellStatus(x).ordinal() << (3 * x)); } if (newState != this.state) { @@ -446,4 +447,5 @@ public class DriveTileEntity extends AENetworkInvTileEntity implements IChestOrD public ContainerType getContainerType() { return DriveContainer.TYPE; } + }