Fix disk drives + storage blocks
This commit is contained in:
		| @@ -76,10 +76,8 @@ public class BlockStorage extends BlockMachine { | |||||||
|     public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) { |     public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) { | ||||||
|         super.onBlockPlacedBy(world, pos, state, player, stack); |         super.onBlockPlacedBy(world, pos, state, player, stack); | ||||||
|  |  | ||||||
|         if (!world.isRemote) { |         if (!world.isRemote && stack.hasTagCompound() && stack.getTagCompound().hasKey(TileStorage.NBT_STORAGE)) { | ||||||
|             NBTTagCompound tag = stack.getTagCompound(); |             ((TileStorage) world.getTileEntity(pos)).setStorageTag(stack.getTagCompound().getCompoundTag(TileStorage.NBT_STORAGE)); | ||||||
|  |  | ||||||
|             ((TileStorage) world.getTileEntity(pos)).onPlaced((tag != null && tag.hasKey(TileStorage.NBT_STORAGE)) ? tag.getCompoundTag(TileStorage.NBT_STORAGE) : null); |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,11 +9,16 @@ public class DiskStorage extends NBTStorage { | |||||||
|     private TileDiskDrive diskDrive; |     private TileDiskDrive diskDrive; | ||||||
|  |  | ||||||
|     public DiskStorage(ItemStack disk, TileDiskDrive diskDrive) { |     public DiskStorage(ItemStack disk, TileDiskDrive diskDrive) { | ||||||
|         super(disk.getTagCompound(), EnumStorageType.getById(disk.getItemDamage()).getCapacity(), diskDrive.getPriority()); |         super(disk.getTagCompound(), EnumStorageType.getById(disk.getItemDamage()).getCapacity()); | ||||||
|  |  | ||||||
|         this.diskDrive = diskDrive; |         this.diskDrive = diskDrive; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public int getPriority() { | ||||||
|  |         return diskDrive.getPriority(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public boolean canPush(ItemStack stack) { |     public boolean canPush(ItemStack stack) { | ||||||
|         return ModeConfigUtils.doesNotViolateMode(diskDrive.getInventory(), diskDrive.getModeConfig(), diskDrive.getCompare(), stack) && super.canPush(stack); |         return ModeConfigUtils.doesNotViolateMode(diskDrive.getInventory(), diskDrive.getModeConfig(), diskDrive.getCompare(), stack) && super.canPush(stack); | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ import net.minecraft.nbt.NBTTagList; | |||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| public class NBTStorage implements IStorage { | public abstract class NBTStorage implements IStorage { | ||||||
|     public static final String NBT_ITEMS = "Items"; |     public static final String NBT_ITEMS = "Items"; | ||||||
|     public static final String NBT_STORED = "Stored"; |     public static final String NBT_STORED = "Stored"; | ||||||
|  |  | ||||||
| @@ -21,16 +21,14 @@ public class NBTStorage implements IStorage { | |||||||
|  |  | ||||||
|     private NBTTagCompound tag; |     private NBTTagCompound tag; | ||||||
|     private int capacity; |     private int capacity; | ||||||
|     private int priority; |  | ||||||
|  |  | ||||||
|     private boolean dirty; |     private boolean dirty; | ||||||
|  |  | ||||||
|     private Multimap<Item, ItemGroup> groups = ArrayListMultimap.create(); |     private Multimap<Item, ItemGroup> groups = ArrayListMultimap.create(); | ||||||
|  |  | ||||||
|     public NBTStorage(NBTTagCompound tag, int capacity, int priority) { |     public NBTStorage(NBTTagCompound tag, int capacity) { | ||||||
|         this.tag = tag; |         this.tag = tag; | ||||||
|         this.capacity = capacity; |         this.capacity = capacity; | ||||||
|         this.priority = priority; |  | ||||||
|  |  | ||||||
|         readFromNBT(); |         readFromNBT(); | ||||||
|     } |     } | ||||||
| @@ -136,11 +134,6 @@ public class NBTStorage implements IStorage { | |||||||
|         return capacity == -1 || (getStored(tag) + stack.stackSize) <= capacity; |         return capacity == -1 || (getStored(tag) + stack.stackSize) <= capacity; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public int getPriority() { |  | ||||||
|         return priority; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public int getCapacity() { |     public int getCapacity() { | ||||||
|         return capacity; |         return capacity; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ public class StorageBlockStorage extends NBTStorage { | |||||||
|     private TileStorage storage; |     private TileStorage storage; | ||||||
|  |  | ||||||
|     public StorageBlockStorage(TileStorage storage) { |     public StorageBlockStorage(TileStorage storage) { | ||||||
|         super(storage.getStorageTag(), storage.getCapacity(), 0); |         super(storage.getStorageTag(), storage.getCapacity()); | ||||||
|  |  | ||||||
|         this.storage = storage; |         this.storage = storage; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -43,6 +43,10 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void updateMachine() { |     public void updateMachine() { | ||||||
|  |         if (storage == null && storageTag != null) { | ||||||
|  |             storage = new StorageBlockStorage(this); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         if (storage != null && storage.isDirty()) { |         if (storage != null && storage.isDirty()) { | ||||||
|             markDirty(); |             markDirty(); | ||||||
|  |  | ||||||
| @@ -51,14 +55,6 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void onPlaced(NBTTagCompound tag) { |  | ||||||
|         if (tag != null) { |  | ||||||
|             this.storageTag = tag; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         this.storage = new StorageBlockStorage(this); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void provide(List<IStorage> storages) { |     public void provide(List<IStorage> storages) { | ||||||
|         if (storage != null) { |         if (storage != null) { | ||||||
| @@ -80,8 +76,6 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora | |||||||
|             storageTag = nbt.getCompoundTag(NBT_STORAGE); |             storageTag = nbt.getCompoundTag(NBT_STORAGE); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         storage = new StorageBlockStorage(this); |  | ||||||
|  |  | ||||||
|         if (nbt.hasKey(NBT_COMPARE)) { |         if (nbt.hasKey(NBT_COMPARE)) { | ||||||
|             compare = nbt.getInteger(NBT_COMPARE); |             compare = nbt.getInteger(NBT_COMPARE); | ||||||
|         } |         } | ||||||
| @@ -206,6 +200,10 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora | |||||||
|         return storageTag; |         return storageTag; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public void setStorageTag(NBTTagCompound storageTag) { | ||||||
|  |         this.storageTag = storageTag; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getPriority() { |     public int getPriority() { | ||||||
|         return priority; |         return priority; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Raoul Van den Berge
					Raoul Van den Berge