diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RS.java b/src/main/java/com/raoulvdberge/refinedstorage/RS.java index d33baa26b..bdcdf3301 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RS.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RS.java @@ -1,15 +1,20 @@ package com.raoulvdberge.refinedstorage; +import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType; import com.raoulvdberge.refinedstorage.apiimpl.storage.ItemStorageType; +import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskFactoryFluid; +import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskFactoryItem; import com.raoulvdberge.refinedstorage.item.*; import com.raoulvdberge.refinedstorage.item.group.MainItemGroup; +import com.raoulvdberge.refinedstorage.network.NetworkHandler; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @Mod(RS.ID) @@ -19,12 +24,22 @@ public final class RS { public static RS INSTANCE; public RSConfig config; + public static final NetworkHandler NETWORK_HANDLER = new NetworkHandler(); public static final ItemGroup MAIN_GROUP = new MainItemGroup(); public RS() { + FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onCommonSetup); FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(Item.class, this::onRegisterItems); } + @SubscribeEvent + public void onCommonSetup(FMLCommonSetupEvent e) { + NETWORK_HANDLER.register(); + + API.instance().getStorageDiskRegistry().add(StorageDiskFactoryItem.ID, new StorageDiskFactoryItem()); + API.instance().getStorageDiskRegistry().add(StorageDiskFactoryFluid.ID, new StorageDiskFactoryFluid()); + } + @SubscribeEvent public void onRegisterBlocks(RegistryEvent.Register e) { @@ -51,11 +66,19 @@ public final class RS { e.getRegistry().register(new ItemCuttingTool()); for (ItemStorageType type : ItemStorageType.values()) { - e.getRegistry().register(new ItemStoragePart(type)); + if (type != ItemStorageType.CREATIVE) { + e.getRegistry().register(new ItemStoragePart(type)); + } + + e.getRegistry().register(new ItemStorageDisk(type)); } for (FluidStorageType type : FluidStorageType.values()) { - e.getRegistry().register(new ItemFluidStoragePart(type)); + if (type != FluidStorageType.CREATIVE) { + e.getRegistry().register(new ItemFluidStoragePart(type)); + } + + e.getRegistry().register(new ItemFluidStorageDisk(type)); } e.getRegistry().register(new ItemStorageHousing()); @@ -67,8 +90,6 @@ public final class RS { config = new RSConfig(null, e.getSuggestedConfigurationFile()); PROXY.preInit(e); - - NetworkHooks.openGui(); } @EventHandler diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java b/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java index 6f1b64d7d..1306410eb 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java @@ -4,30 +4,38 @@ import com.raoulvdberge.refinedstorage.item.*; import net.minecraftforge.registries.ObjectHolder; public final class RSItems { - public static final ItemStorageDisk STORAGE_DISK = new ItemStorageDisk(); public static final ItemWirelessGrid WIRELESS_GRID = new ItemWirelessGrid(); public static final ItemWirelessFluidGrid WIRELESS_FLUID_GRID = new ItemWirelessFluidGrid(); public static final ItemWirelessCraftingMonitor WIRELESS_CRAFTING_MONITOR = new ItemWirelessCraftingMonitor(); + @ObjectHolder(RS.ID + ":quartz_enriched_iron") public static final ItemQuartzEnrichedIron QUARTZ_ENRICHED_IRON = null; + @ObjectHolder(RS.ID + ":construction_core") public static final ItemCore CONSTRUCTION_CORE = null; @ObjectHolder(RS.ID + ":destruction_core") public static final ItemCore DESTRUCTION_CORE = null; + @ObjectHolder(RS.ID + ":silicon") public static final ItemSilicon SILICON = null; + + @ObjectHolder(RS.ID + ":processor_binding") + public static final ItemProcessorBinding PROCESSOR_BINDING = null; + @ObjectHolder(RS.ID + ":raw_basic_processor") public static final ItemProcessor RAW_BASIC_PROCESSOR = null; @ObjectHolder(RS.ID + ":raw_improved_processor") public static final ItemProcessor RAW_IMPROVED_PROCESSOR = null; @ObjectHolder(RS.ID + ":raw_advanced_processor") public static final ItemProcessor RAW_ADVANCED_PROCESSOR = null; + @ObjectHolder(RS.ID + ":basic_processor") public static final ItemProcessor BASIC_PROCESSOR = null; @ObjectHolder(RS.ID + ":improved_processor") public static final ItemProcessor IMPROVED_PROCESSOR = null; @ObjectHolder(RS.ID + ":advanced_processor") public static final ItemProcessor ADVANCED_PROCESSOR = null; + @ObjectHolder(RS.ID + ":1k_storage_part") public static final ItemStoragePart ONE_K_STORAGE_PART = null; @ObjectHolder(RS.ID + ":4k_storage_part") @@ -36,13 +44,28 @@ public final class RSItems { public static final ItemStoragePart SIXTEEN_K_STORAGE_PART = null; @ObjectHolder(RS.ID + ":64k_storage_part") public static final ItemStoragePart SIXTY_FOUR_K_STORAGE_PART = null; + + @ObjectHolder(RS.ID + ":1k_storage_disk") + public static final ItemStorageDisk ONE_K_STORAGE_DISK = null; + @ObjectHolder(RS.ID + ":4k_storage_disk") + public static final ItemStorageDisk FOUR_K_STORAGE_DISK = null; + @ObjectHolder(RS.ID + ":16k_storage_disk") + public static final ItemStorageDisk SIXTEEN_K_STORAGE_DISK = null; + @ObjectHolder(RS.ID + ":64k_storage_disk") + public static final ItemStorageDisk SIXTY_FOUR_K_STORAGE_DISK = null; + @ObjectHolder(RS.ID + ":creative_storage_disk") + public static final ItemStorageDisk CREATIVE_STORAGE_DISK = null; + public static final ItemPattern PATTERN = new ItemPattern(); public static final ItemUpgrade UPGRADE = new ItemUpgrade(); - public static final ItemStorageHousing STORAGE_HOUSING = new ItemStorageHousing(); public static final ItemFilter FILTER = new ItemFilter(); + @ObjectHolder(RS.ID + ":network_card") public static final ItemNetworkCard NETWORK_CARD = null; - public static final ItemFluidStorageDisk FLUID_STORAGE_DISK = new ItemFluidStorageDisk(); + + @ObjectHolder(RS.ID + ":security_card") + public static final ItemSecurityCard SECURITY_CARD = null; + @ObjectHolder(RS.ID + ":64k_fluid_storage_part") public static final ItemFluidStoragePart SIXTY_FOUR_K_FLUID_STORAGE_PART = null; @ObjectHolder(RS.ID + ":256k_fluid_storage_part") @@ -51,13 +74,25 @@ public final class RSItems { public static final ItemFluidStoragePart THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_PART = null; @ObjectHolder(RS.ID + ":4096k_fluid_storage_part") public static final ItemFluidStoragePart FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_PART = null; - @ObjectHolder(RS.ID + ":security_card") - public static final ItemSecurityCard SECURITY_CARD = null; + + @ObjectHolder(RS.ID + ":64k_fluid_storage_disk") + public static final ItemFluidStorageDisk SIXTY_FOUR_K_FLUID_STORAGE_DISK = null; + @ObjectHolder(RS.ID + ":256k_fluid_storage_disk") + public static final ItemFluidStorageDisk TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_DISK = null; + @ObjectHolder(RS.ID + ":1024k_fluid_storage_disk") + public static final ItemFluidStorageDisk THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_DISK = null; + @ObjectHolder(RS.ID + ":4096k_fluid_storage_disk") + public static final ItemFluidStorageDisk FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_DISK = null; + @ObjectHolder(RS.ID + ":creative_fluid_storage_disk") + public static final ItemFluidStorageDisk CREATIVE_FLUID_STORAGE_DISK = null; + + @ObjectHolder(RS.ID + ":storage_housing") + public static final ItemStorageHousing STORAGE_HOUSING = null; + @ObjectHolder(RS.ID + ":cutting_tool") public static final ItemCuttingTool CUTTING_TOOL = null; + public static final ItemCover COVER = new ItemCover(); public static final ItemHollowCover HOLLOW_COVER = new ItemHollowCover(); public static final ItemWrench WRENCH = new ItemWrench(); - @ObjectHolder(RS.ID + ":processor_binding") - public static final ItemProcessorBinding PROCESSOR_BINDING = null; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java b/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java index 55543a09d..4c2a311a2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java @@ -27,6 +27,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -129,11 +130,11 @@ public interface IRSAPI { IStorageDiskRegistry getStorageDiskRegistry(); /** - * @param world the world + * @param anyWorld any world associated with the server * @return the storage disk manager */ @Nonnull - IStorageDiskManager getStorageDiskManager(World world); + IStorageDiskManager getStorageDiskManager(ServerWorld anyWorld); /** * @return the storage disk sync manager @@ -161,7 +162,7 @@ public interface IRSAPI { * @return a storage disk */ @Nonnull - IStorageDisk createDefaultItemDisk(World world, int capacity); + IStorageDisk createDefaultItemDisk(ServerWorld world, int capacity); /** * @param world the world @@ -169,7 +170,7 @@ public interface IRSAPI { * @return a fluid storage disk */ @Nonnull - IStorageDisk createDefaultFluidDisk(World world, int capacity); + IStorageDisk createDefaultFluidDisk(ServerWorld world, int capacity); /** * Creates crafting request info for an item. diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDisk.java b/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDisk.java index 106948f5f..7fdc75691 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDisk.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDisk.java @@ -2,6 +2,7 @@ package com.raoulvdberge.refinedstorage.api.storage.disk; import com.raoulvdberge.refinedstorage.api.storage.IStorage; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ResourceLocation; import javax.annotation.Nullable; @@ -33,5 +34,5 @@ public interface IStorageDisk extends IStorage { /** * @return the factory id as registered in {@link IStorageDiskRegistry} */ - String getId(); + ResourceLocation getFactoryId(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDiskFactory.java b/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDiskFactory.java index d97cb6b15..31bde21e5 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDiskFactory.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDiskFactory.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.api.storage.disk; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; /** * Creates a storage disk from NBT or on-demand. @@ -16,7 +16,7 @@ public interface IStorageDiskFactory { * @param tag the tag * @return the storage disk */ - IStorageDisk createFromNbt(World world, CompoundNBT tag); + IStorageDisk createFromNbt(ServerWorld world, CompoundNBT tag); /** * Creates a storage disk on-demand. @@ -25,5 +25,5 @@ public interface IStorageDiskFactory { * @param capacity the capacity * @return the storage disk */ - IStorageDisk create(World world, int capacity); + IStorageDisk create(ServerWorld world, int capacity); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDiskRegistry.java b/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDiskRegistry.java index c07a092f3..6c2fbde50 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDiskRegistry.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/storage/disk/IStorageDiskRegistry.java @@ -1,5 +1,7 @@ package com.raoulvdberge.refinedstorage.api.storage.disk; +import net.minecraft.util.ResourceLocation; + import javax.annotation.Nullable; /** @@ -12,7 +14,7 @@ public interface IStorageDiskRegistry { * @param id the id of this factory * @param factory the factory */ - void add(String id, IStorageDiskFactory factory); + void add(ResourceLocation id, IStorageDiskFactory factory); /** * Gets a factory. @@ -21,5 +23,5 @@ public interface IStorageDiskRegistry { * @return the factory, or null if no factory was found */ @Nullable - IStorageDiskFactory get(String id); + IStorageDiskFactory get(ResourceLocation id); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java index 1a5328338..8eddcc7c0 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java @@ -1,7 +1,6 @@ package com.raoulvdberge.refinedstorage.apiimpl; import com.raoulvdberge.refinedstorage.api.IRSAPI; -import com.raoulvdberge.refinedstorage.api.RSAPIInject; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternRenderHandler; import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElementList; import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElementRegistry; @@ -22,7 +21,10 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskManager; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskRegistry; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSync; import com.raoulvdberge.refinedstorage.api.storage.externalstorage.IExternalStorageProvider; -import com.raoulvdberge.refinedstorage.api.util.*; +import com.raoulvdberge.refinedstorage.api.util.Action; +import com.raoulvdberge.refinedstorage.api.util.IComparer; +import com.raoulvdberge.refinedstorage.api.util.IQuantityFormatter; +import com.raoulvdberge.refinedstorage.api.util.IStackList; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingRequestInfo; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementList; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementRegistry; @@ -34,20 +36,24 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.grid.GridManager; import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterChannel; import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRegistry; import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.*; -import com.raoulvdberge.refinedstorage.apiimpl.util.*; +import com.raoulvdberge.refinedstorage.apiimpl.util.Comparer; +import com.raoulvdberge.refinedstorage.apiimpl.util.QuantityFormatter; +import com.raoulvdberge.refinedstorage.apiimpl.util.StackListFluid; +import com.raoulvdberge.refinedstorage.apiimpl.util.StackListItem; import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.INBT; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.INBT; import net.minecraft.nbt.ListNBT; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraft.world.dimension.DimensionType; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; -import java.lang.reflect.Field; import java.util.*; public class API implements IRSAPI { @@ -190,23 +196,10 @@ public class API implements IRSAPI { @Nonnull @Override - public IStorageDiskManager getStorageDiskManager(World world) { - if (world.isRemote) { - throw new IllegalArgumentException("Attempting to access storage disk manager on the client"); - } - /* TODO: Saving! - MapStorage storage = world.getMapStorage(); - StorageDiskManager instance = (StorageDiskManager) storage.getOrLoadData(StorageDiskManager.class, StorageDiskManager.NAME); + public IStorageDiskManager getStorageDiskManager(ServerWorld anyWorld) { + ServerWorld world = anyWorld.getServer().getWorld(DimensionType.OVERWORLD); - if (instance == null) { - instance = new StorageDiskManager(StorageDiskManager.NAME); - - storage.setData(StorageDiskManager.NAME, instance); - } else { - instance.tryReadDisks(world); - } */ - - return new StorageDiskManager("ABC"); + return world.getSavedData().getOrCreate(() -> new StorageDiskManager(StorageDiskManager.NAME, world), StorageDiskManager.NAME); } @Nonnull @@ -229,13 +222,13 @@ public class API implements IRSAPI { @Override @Nonnull - public IStorageDisk createDefaultItemDisk(World world, int capacity) { + public IStorageDisk createDefaultItemDisk(ServerWorld world, int capacity) { return new StorageDiskItem(world, capacity); } @Override @Nonnull - public IStorageDisk createDefaultFluidDisk(World world, int capacity) { + public IStorageDisk createDefaultFluidDisk(ServerWorld world, int capacity) { return new StorageDiskFluid(world, capacity); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java index 7167da8b6..65e99901a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java @@ -101,8 +101,8 @@ public class CraftingTask implements ICraftingTask { this.quantity = quantity; this.pattern = pattern; - this.internalStorage = new StorageDiskItem(network.world(), -1); - this.internalFluidStorage = new StorageDiskFluid(network.world(), -1); + this.internalStorage = new StorageDiskItem(null, -1); + this.internalFluidStorage = new StorageDiskFluid(null, -1); } public CraftingTask(INetwork network, CompoundNBT tag) throws CraftingTaskReadException { @@ -122,8 +122,8 @@ public class CraftingTask implements ICraftingTask { StorageDiskFactoryItem factoryItem = new StorageDiskFactoryItem(); StorageDiskFactoryFluid factoryFluid = new StorageDiskFactoryFluid(); - this.internalStorage = factoryItem.createFromNbt(network.world(), tag.getCompound(NBT_INTERNAL_STORAGE)); - this.internalFluidStorage = factoryFluid.createFromNbt(network.world(), tag.getCompound(NBT_INTERNAL_FLUID_STORAGE)); + this.internalStorage = factoryItem.createFromNbt(null, tag.getCompound(NBT_INTERNAL_STORAGE)); + this.internalFluidStorage = factoryFluid.createFromNbt(null, tag.getCompound(NBT_INTERNAL_FLUID_STORAGE)); this.toExtractInitial = readItemStackList(tag.getList(NBT_TO_EXTRACT_INITIAL, Constants.NBT.TAG_COMPOUND)); this.toExtractInitialFluids = readFluidStackList(tag.getList(NBT_TO_EXTRACT_INITIAL_FLUIDS, Constants.NBT.TAG_COMPOUND)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/NetworkNodeDiskDrive.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/NetworkNodeDiskDrive.java index e62fb5e22..1579ff88a 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/NetworkNodeDiskDrive.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/NetworkNodeDiskDrive.java @@ -26,6 +26,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.common.thread.EffectiveSide; @@ -58,7 +59,7 @@ public class NetworkNodeDiskDrive extends NetworkNode implements IGuiStorage, IS if (EffectiveSide.get() == LogicalSide.SERVER) { // TODO : correct? StackUtils.createStorages( - world, + (ServerWorld) world, getStackInSlot(slot), slot, itemDisks, diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/StorageDiskFluidDriveWrapper.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/StorageDiskFluidDriveWrapper.java index 5bae07ceb..8c7ba7db2 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/StorageDiskFluidDriveWrapper.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/StorageDiskFluidDriveWrapper.java @@ -9,6 +9,7 @@ import com.raoulvdberge.refinedstorage.render.constants.ConstantsDisk; import com.raoulvdberge.refinedstorage.tile.config.IFilterable; import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -95,7 +96,7 @@ public class StorageDiskFluidDriveWrapper implements IStorageDisk { } @Override - public String getId() { - return parent.getId(); + public ResourceLocation getFactoryId() { + return parent.getFactoryId(); } } \ No newline at end of file diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/StorageDiskItemDriveWrapper.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/StorageDiskItemDriveWrapper.java index 8ee1e839a..b6c4576d0 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/StorageDiskItemDriveWrapper.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/StorageDiskItemDriveWrapper.java @@ -9,6 +9,7 @@ import com.raoulvdberge.refinedstorage.render.constants.ConstantsDisk; import com.raoulvdberge.refinedstorage.tile.config.IFilterable; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; @@ -95,7 +96,7 @@ public class StorageDiskItemDriveWrapper implements IStorageDisk { } @Override - public String getId() { - return parent.getId(); + public ResourceLocation getFactoryId() { + return parent.getFactoryId(); } } \ No newline at end of file diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/NetworkNodeDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/NetworkNodeDiskManipulator.java index d2a9ea8f0..8d6d725a6 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/NetworkNodeDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/NetworkNodeDiskManipulator.java @@ -23,6 +23,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.LogicalSide; @@ -74,7 +75,7 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab if (EffectiveSide.get() == LogicalSide.SERVER) { // TODO: correct? StackUtils.createStorages( - world, + (ServerWorld) world, getStackInSlot(slot), slot, itemDisks, @@ -95,7 +96,7 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab if (EffectiveSide.get() == LogicalSide.SERVER) { // TODO: correct? StackUtils.createStorages( - world, + (ServerWorld) world, getStackInSlot(slot), 3 + slot, itemDisks, diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/StorageDiskFluidManipulatorWrapper.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/StorageDiskFluidManipulatorWrapper.java index c38e6c39a..b1cb0ed10 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/StorageDiskFluidManipulatorWrapper.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskmanipulator/StorageDiskFluidManipulatorWrapper.java @@ -10,6 +10,7 @@ import com.raoulvdberge.refinedstorage.tile.config.IFilterable; import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.WorldUtils; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -55,8 +56,8 @@ public class StorageDiskFluidManipulatorWrapper implements IStorageDisk } @Override - public String getId() { - return parent.getId(); + public ResourceLocation getFactoryId() { + return parent.getFactoryId(); } } \ No newline at end of file diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/StorageDiskItemStorageWrapper.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/StorageDiskItemStorageWrapper.java index 9a670875d..881df4f2c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/StorageDiskItemStorageWrapper.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/StorageDiskItemStorageWrapper.java @@ -8,6 +8,7 @@ import com.raoulvdberge.refinedstorage.api.util.Action; import com.raoulvdberge.refinedstorage.tile.config.IFilterable; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; @@ -81,7 +82,7 @@ public class StorageDiskItemStorageWrapper implements IStorageDisk { } @Override - public String getId() { - return parent.getId(); + public ResourceLocation getFactoryId() { + return parent.getFactoryId(); } } \ No newline at end of file diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/FluidStorageType.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/FluidStorageType.java index 3c5072515..7ca719aed 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/FluidStorageType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/FluidStorageType.java @@ -4,7 +4,8 @@ public enum FluidStorageType { SIXTY_FOUR_K("64k", 64_000), TWO_HUNDRED_FIFTY_SIX_K("256k", 256_000), THOUSAND_TWENTY_FOUR_K("1024k", 1024_000), - FOUR_THOUSAND_NINETY_SIX_K("4096k", 4096_000); + FOUR_THOUSAND_NINETY_SIX_K("4096k", 4096_000), + CREATIVE("creative", -1); private String name; private int capacity; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/ItemStorageType.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/ItemStorageType.java index 7322dcfad..1f7b40d48 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/ItemStorageType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/ItemStorageType.java @@ -4,7 +4,8 @@ public enum ItemStorageType { ONE_K("1k", 1000), FOUR_K("4k", 4000), SIXTEEN_K("16k", 16_000), - SIXTY_FOUR_K("64k", 64_000); + SIXTY_FOUR_K("64k", 64_000), + CREATIVE("creative", -1); private String name; private int capacity; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFactoryFluid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFactoryFluid.java index 671c6d73c..8977eacbf 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFactoryFluid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFactoryFluid.java @@ -1,18 +1,20 @@ package com.raoulvdberge.refinedstorage.apiimpl.storage.disk; +import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskFactory; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; -import net.minecraft.world.World; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.common.util.Constants; import net.minecraftforge.fluids.FluidStack; public class StorageDiskFactoryFluid implements IStorageDiskFactory { - public static final String ID = "normal_fluid"; + public static final ResourceLocation ID = new ResourceLocation(RS.ID, "fluid"); @Override - public IStorageDisk createFromNbt(World world, CompoundNBT tag) { + public IStorageDisk createFromNbt(ServerWorld world, CompoundNBT tag) { StorageDiskFluid disk = new StorageDiskFluid(world, tag.getInt(StorageDiskFluid.NBT_CAPACITY)); ListNBT list = tag.getList(StorageDiskFluid.NBT_FLUIDS, Constants.NBT.TAG_COMPOUND); @@ -29,7 +31,7 @@ public class StorageDiskFactoryFluid implements IStorageDiskFactory } @Override - public IStorageDisk create(World world, int capacity) { + public IStorageDisk create(ServerWorld world, int capacity) { return new StorageDiskFluid(world, capacity); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFactoryItem.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFactoryItem.java index 4385c42a0..ed5c0d8f9 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFactoryItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFactoryItem.java @@ -1,19 +1,21 @@ package com.raoulvdberge.refinedstorage.apiimpl.storage.disk; +import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskFactory; import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; -import net.minecraft.world.World; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.common.util.Constants; public class StorageDiskFactoryItem implements IStorageDiskFactory { - public static final String ID = "normal_item"; + public static final ResourceLocation ID = new ResourceLocation(RS.ID, "item"); @Override - public IStorageDisk createFromNbt(World world, CompoundNBT tag) { + public IStorageDisk createFromNbt(ServerWorld world, CompoundNBT tag) { StorageDiskItem disk = new StorageDiskItem(world, tag.getInt(StorageDiskItem.NBT_CAPACITY)); ListNBT list = tag.getList(StorageDiskItem.NBT_ITEMS, Constants.NBT.TAG_COMPOUND); @@ -30,7 +32,7 @@ public class StorageDiskFactoryItem implements IStorageDiskFactory { } @Override - public IStorageDisk create(World world, int capacity) { + public IStorageDisk create(ServerWorld world, int capacity) { return new StorageDiskItem(world, capacity); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFluid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFluid.java index 16c629f63..a86705f88 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFluid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFluid.java @@ -12,7 +12,8 @@ import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.fluid.Fluid; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; -import net.minecraft.world.World; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -25,7 +26,7 @@ public class StorageDiskFluid implements IStorageDisk { static final String NBT_FLUIDS = "Fluids"; static final int VERSION = 1; - private World world; + private ServerWorld world; private int capacity; private Multimap stacks = ArrayListMultimap.create(); @@ -33,7 +34,7 @@ public class StorageDiskFluid implements IStorageDisk { private IStorageDiskListener listener; private IStorageDiskContainerContext context; - public StorageDiskFluid(World world, int capacity) { + public StorageDiskFluid(ServerWorld world, int capacity) { if (world == null) { throw new IllegalArgumentException("World cannot be null"); } @@ -182,7 +183,7 @@ public class StorageDiskFluid implements IStorageDisk { } @Override - public String getId() { + public ResourceLocation getFactoryId() { return StorageDiskFactoryFluid.ID; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFluidPortable.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFluidPortable.java index c6e18f862..874c5de01 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFluidPortable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskFluidPortable.java @@ -7,6 +7,7 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskListener; import com.raoulvdberge.refinedstorage.api.util.Action; import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nonnull; @@ -93,7 +94,7 @@ public class StorageDiskFluidPortable implements IStorageDisk { } @Override - public String getId() { - return parent.getId(); + public ResourceLocation getFactoryId() { + return parent.getFactoryId(); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskItem.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskItem.java index 276b12550..4d0baac31 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskItem.java @@ -13,7 +13,8 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; -import net.minecraft.world.World; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; @@ -26,7 +27,7 @@ public class StorageDiskItem implements IStorageDisk { static final String NBT_ITEMS = "Items"; static final int VERSION = 1; - private World world; + private ServerWorld world; private int capacity; private Multimap stacks = ArrayListMultimap.create(); @@ -34,7 +35,7 @@ public class StorageDiskItem implements IStorageDisk { private IStorageDiskListener listener; private IStorageDiskContainerContext context; - public StorageDiskItem(World world, int capacity) { + public StorageDiskItem(ServerWorld world, int capacity) { if (world == null) { throw new IllegalArgumentException("World cannot be null"); } @@ -61,7 +62,7 @@ public class StorageDiskItem implements IStorageDisk { } @Override - public String getId() { + public ResourceLocation getFactoryId() { return StorageDiskFactoryItem.ID; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskItemPortable.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskItemPortable.java index 07197b390..161fa7cb1 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskItemPortable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskItemPortable.java @@ -8,6 +8,7 @@ import com.raoulvdberge.refinedstorage.api.util.Action; import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ResourceLocation; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -93,7 +94,7 @@ public class StorageDiskItemPortable implements IStorageDisk { } @Override - public String getId() { - return parent.getId(); + public ResourceLocation getFactoryId() { + return parent.getFactoryId(); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskManager.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskManager.java index f14b25be4..682412b1f 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskManager.java @@ -8,14 +8,15 @@ import com.raoulvdberge.refinedstorage.apiimpl.API; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; -import net.minecraft.world.World; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.server.ServerWorld; import net.minecraft.world.storage.WorldSavedData; import net.minecraftforge.common.util.Constants; import javax.annotation.Nullable; +import java.util.HashMap; import java.util.Map; import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; public class StorageDiskManager extends WorldSavedData implements IStorageDiskManager { public static final String NAME = "refinedstorage_disks"; @@ -25,13 +26,13 @@ public class StorageDiskManager extends WorldSavedData implements IStorageDiskMa private static final String NBT_DISK_TYPE = "Type"; private static final String NBT_DISK_DATA = "Data"; - private boolean canReadDisks; - private ListNBT disksTag; + private final Map disks = new HashMap<>(); + private final ServerWorld world; - private ConcurrentHashMap disks = new ConcurrentHashMap<>(); - - public StorageDiskManager(String name) { + public StorageDiskManager(String name, ServerWorld world) { super(name); + + this.world = world; } @Override @@ -95,14 +96,7 @@ public class StorageDiskManager extends WorldSavedData implements IStorageDiskMa @Override public void read(CompoundNBT tag) { if (tag.contains(NBT_DISKS)) { - this.disksTag = tag.getList(NBT_DISKS, Constants.NBT.TAG_COMPOUND); - this.canReadDisks = true; - } - } - - public void tryReadDisks(World world) { - if (this.canReadDisks) { - this.canReadDisks = false; + ListNBT disksTag = tag.getList(NBT_DISKS, Constants.NBT.TAG_COMPOUND); for (int i = 0; i < disksTag.size(); ++i) { CompoundNBT diskTag = disksTag.getCompound(i); @@ -111,7 +105,7 @@ public class StorageDiskManager extends WorldSavedData implements IStorageDiskMa CompoundNBT data = diskTag.getCompound(NBT_DISK_DATA); String type = diskTag.getString(NBT_DISK_TYPE); - IStorageDiskFactory factory = API.instance().getStorageDiskRegistry().get(type); + IStorageDiskFactory factory = API.instance().getStorageDiskRegistry().get(new ResourceLocation(type)); if (factory != null) { disks.put(id, factory.createFromNbt(world, data)); } @@ -128,7 +122,7 @@ public class StorageDiskManager extends WorldSavedData implements IStorageDiskMa diskTag.putUniqueId(NBT_DISK_ID, entry.getKey()); diskTag.put(NBT_DISK_DATA, entry.getValue().writeToNbt()); - diskTag.putString(NBT_DISK_TYPE, entry.getValue().getId()); + diskTag.putString(NBT_DISK_TYPE, entry.getValue().getFactoryId().toString()); disks.add(diskTag); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskRegistry.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskRegistry.java index 90bb4d250..cb434d469 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskRegistry.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskRegistry.java @@ -2,22 +2,23 @@ package com.raoulvdberge.refinedstorage.apiimpl.storage.disk; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskFactory; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskRegistry; +import net.minecraft.util.ResourceLocation; import javax.annotation.Nullable; import java.util.HashMap; import java.util.Map; public class StorageDiskRegistry implements IStorageDiskRegistry { - private Map factories = new HashMap<>(); + private Map factories = new HashMap<>(); @Override - public void add(String id, IStorageDiskFactory factory) { + public void add(ResourceLocation id, IStorageDiskFactory factory) { factories.put(id, factory); } @Override @Nullable - public IStorageDiskFactory get(String id) { + public IStorageDiskFactory get(ResourceLocation id) { return factories.get(id); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskSync.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskSync.java index abc64b977..8b3c8c9b8 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskSync.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/storage/disk/StorageDiskSync.java @@ -1,7 +1,9 @@ package com.raoulvdberge.refinedstorage.apiimpl.storage.disk; +import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSync; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData; +import com.raoulvdberge.refinedstorage.network.MessageStorageDiskSizeRequest; import javax.annotation.Nullable; import java.util.HashMap; @@ -29,7 +31,7 @@ public class StorageDiskSync implements IStorageDiskSync { long lastSync = syncTime.getOrDefault(id, 0L); if (System.currentTimeMillis() - lastSync > THROTTLE_MS) { - // TODO: Networking: RS.INSTANCE.network.sendToServer(new MessageStorageDiskSizeRequest(id)); + RS.NETWORK_HANDLER.sendToServer(new MessageStorageDiskSizeRequest(id)); syncTime.put(id, System.currentTimeMillis()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java index 79aea3dc0..95b2a9c58 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java @@ -77,8 +77,8 @@ public class GuiStorage extends GuiBase { public void drawForeground(int mouseX, int mouseY) { drawString(7, 7, t(gui.getGuiTitle())); drawString(7, 42, gui.getCapacity() == -1 ? - t("misc.refinedstorage:storage.stored_minimal", API.instance().getQuantityFormatter().formatWithUnits(gui.getStored())) : - t("misc.refinedstorage:storage.stored_capacity_minimal", API.instance().getQuantityFormatter().formatWithUnits(gui.getStored()), API.instance().getQuantityFormatter().formatWithUnits(gui.getCapacity())) + t("misc.refinedstorage.storage.stored_minimal", API.instance().getQuantityFormatter().formatWithUnits(gui.getStored())) : + t("misc.refinedstorage.storage.stored_capacity_minimal", API.instance().getQuantityFormatter().formatWithUnits(gui.getStored()), API.instance().getQuantityFormatter().formatWithUnits(gui.getCapacity())) ); if (texture.contains("disk_drive")) { // HACK! @@ -95,9 +95,9 @@ public class GuiStorage extends GuiBase { } drawTooltip(mouseX, mouseY, (gui.getCapacity() == -1 ? - t("misc.refinedstorage:storage.stored_minimal", API.instance().getQuantityFormatter().format(gui.getStored())) : - t("misc.refinedstorage:storage.stored_capacity_minimal", API.instance().getQuantityFormatter().format(gui.getStored()), API.instance().getQuantityFormatter().format(gui.getCapacity())) - ) + "\n" + TextFormatting.GRAY + t("misc.refinedstorage:storage.full", full)); + t("misc.refinedstorage.storage.stored_minimal", API.instance().getQuantityFormatter().format(gui.getStored())) : + t("misc.refinedstorage.storage.stored_capacity_minimal", API.instance().getQuantityFormatter().format(gui.getStored()), API.instance().getQuantityFormatter().format(gui.getCapacity())) + ) + "\n" + TextFormatting.GRAY + t("misc.refinedstorage.storage.full", full)); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java index a131cc19b..f36614961 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java @@ -1,84 +1,60 @@ package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RS; +import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.api.storage.StorageType; +import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskProvider; -import com.raoulvdberge.refinedstorage.item.info.ItemInfo; +import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData; +import com.raoulvdberge.refinedstorage.apiimpl.API; +import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.inventory.InventoryHelper; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ActionResult; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Hand; +import net.minecraft.util.text.*; +import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; +import javax.annotation.Nullable; +import java.util.List; import java.util.UUID; public class ItemFluidStorageDisk extends ItemBase implements IStorageDiskProvider { private static final String NBT_ID = "Id"; - public static final int TYPE_64K = 0; - public static final int TYPE_256K = 1; - public static final int TYPE_1024K = 2; - public static final int TYPE_4096K = 3; - public static final int TYPE_CREATIVE = 4; + private final FluidStorageType type; - public ItemFluidStorageDisk() { - super(new ItemInfo(RS.ID, "fluid_storage_disk")); + public ItemFluidStorageDisk(FluidStorageType type) { + super(new Item.Properties().group(RS.MAIN_GROUP).maxStackSize(1)); - //setMaxStackSize(1); - //setHasSubtypes(true); - //setMaxDamage(0); - } + this.type = type; - /* TODO - @Override - @SideOnly(Side.CLIENT) - public void registerModels(IModelRegistration modelRegistration) { - modelRegistration.setModelVariants( - this, - new ResourceLocation(RS.ID, "64k_fluid_storage_disk"), - new ResourceLocation(RS.ID, "256k_fluid_storage_disk"), - new ResourceLocation(RS.ID, "1024k_fluid_storage_disk"), - new ResourceLocation(RS.ID, "4096k_fluid_storage_disk"), - new ResourceLocation(RS.ID, "creative_fluid_storage_disk") - ); - - modelRegistration.setModel(this, TYPE_64K, new ModelResourceLocation(RS.ID + ":64k_fluid_storage_disk", "inventory")); - modelRegistration.setModel(this, TYPE_256K, new ModelResourceLocation(RS.ID + ":256k_fluid_storage_disk", "inventory")); - modelRegistration.setModel(this, TYPE_1024K, new ModelResourceLocation(RS.ID + ":1024k_fluid_storage_disk", "inventory")); - modelRegistration.setModel(this, TYPE_4096K, new ModelResourceLocation(RS.ID + ":4096k_fluid_storage_disk", "inventory")); - modelRegistration.setModel(this, TYPE_CREATIVE, new ModelResourceLocation(RS.ID + ":creative_fluid_storage_disk", "inventory")); + this.setRegistryName(RS.ID, type.getName() + "_fluid_storage_disk"); } @Override - public void getSubItems(CreativeTabs tab, NonNullList items) { - if (!isInCreativeTab(tab)) { - return; - } + public void inventoryTick(ItemStack stack, World world, Entity entity, int slot, boolean selected) { + super.inventoryTick(stack, world, entity, slot, selected); - for (int i = 0; i < 5; ++i) { - items.add(new ItemStack(this, 1, i)); + if (!world.isRemote && !stack.hasTag()) { + UUID id = UUID.randomUUID(); + + API.instance().getStorageDiskManager((ServerWorld) world).set(id, API.instance().createDefaultFluidDisk((ServerWorld) world, getCapacity(stack))); + API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); + + setId(stack, id); } } @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean selected) { - super.onUpdate(stack, world, entity, slot, selected); - - if (!world.isRemote) { - if (!isValid(stack)) { - API.instance().getOneSixMigrationHelper().migrateDisk(world, stack); - } - - if (!stack.hasTagCompound()) { - UUID id = UUID.randomUUID(); - - API.instance().getStorageDiskManager(world).set(id, API.instance().createDefaultFluidDisk(world, getCapacity(stack))); - API.instance().getStorageDiskManager(world).markForSaving(); - - setId(stack, id); - } - } - } - - @Override - public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { super.addInformation(stack, world, tooltip, flag); if (isValid(stack)) { @@ -89,46 +65,46 @@ public class ItemFluidStorageDisk extends ItemBase implements IStorageDiskProvid IStorageDiskSyncData data = API.instance().getStorageDiskSync().getData(id); if (data != null) { if (data.getCapacity() == -1) { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored", API.instance().getQuantityFormatter().format(data.getStored()))); + tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())).setStyle(new Style().setColor(TextFormatting.GRAY))); } else { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity()))); + tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())).setStyle(new Style().setColor(TextFormatting.GRAY))); } } if (flag.isAdvanced()) { - tooltip.add(id.toString()); + tooltip.add(new StringTextComponent(id.toString()).setStyle(new Style().setColor(TextFormatting.GRAY))); } } } @Override - public ActionResult onItemRightClick(World world, PlayerEntity player, EnumHand hand) { + public ActionResult onItemRightClick(World world, PlayerEntity player, Hand hand) { ItemStack diskStack = player.getHeldItem(hand); - if (!world.isRemote && player.isSneaking() && diskStack.getMetadata() != TYPE_CREATIVE) { - IStorageDisk disk = API.instance().getStorageDiskManager(world).getByStack(diskStack); + if (!world.isRemote && player.isSneaking() && type != FluidStorageType.CREATIVE) { + IStorageDisk disk = API.instance().getStorageDiskManager((ServerWorld) world).getByStack(diskStack); if (disk != null && disk.getStored() == 0) { - ItemStack storagePart = new ItemStack(RSItems.FLUID_STORAGE_PART, diskStack.getCount(), diskStack.getMetadata()); + ItemStack storagePart = new ItemStack(ItemFluidStoragePart.getByType(type), diskStack.getCount()); if (!player.inventory.addItemStackToInventory(storagePart.copy())) { InventoryHelper.spawnItemStack(world, player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ(), storagePart); } - API.instance().getStorageDiskManager(world).remove(getId(diskStack)); - API.instance().getStorageDiskManager(world).markForSaving(); + API.instance().getStorageDiskManager((ServerWorld) world).remove(getId(diskStack)); + API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); - return new ActionResult<>(EnumActionResult.SUCCESS, new ItemStack(RSItems.STORAGE_HOUSING)); + return new ActionResult<>(ActionResultType.SUCCESS, new ItemStack(RSItems.STORAGE_HOUSING)); } } - return new ActionResult<>(EnumActionResult.PASS, diskStack); + return new ActionResult<>(ActionResultType.PASS, diskStack); } @Override public int getEntityLifespan(ItemStack stack, World world) { return Integer.MAX_VALUE; - }*/ + } @Override public UUID getId(ItemStack disk) { @@ -148,8 +124,7 @@ public class ItemFluidStorageDisk extends ItemBase implements IStorageDiskProvid @Override public int getCapacity(ItemStack disk) { - return 123; - // TODO return FluidStorageType.getById(disk.getItemDamage()).getCapacity(); + return type.getCapacity(); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStoragePart.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStoragePart.java index 625bbf407..211795575 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStoragePart.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStoragePart.java @@ -1,6 +1,7 @@ package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RS; +import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType; import net.minecraft.item.Item; @@ -10,4 +11,19 @@ public class ItemFluidStoragePart extends Item { this.setRegistryName(RS.ID, type.getName() + "_fluid_storage_part"); } + + public static ItemFluidStoragePart getByType(FluidStorageType type) { + switch (type) { + case SIXTY_FOUR_K: + return RSItems.SIXTY_FOUR_K_FLUID_STORAGE_PART; + case TWO_HUNDRED_FIFTY_SIX_K: + return RSItems.TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_PART; + case THOUSAND_TWENTY_FOUR_K: + return RSItems.THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_PART; + case FOUR_THOUSAND_NINETY_SIX_K: + return RSItems.FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_PART; + default: + throw new IllegalArgumentException("Cannot get fluid storage part of " + type); + } + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java index eb77b106b..f4cb50932 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java @@ -1,84 +1,60 @@ package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RS; +import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.api.storage.StorageType; +import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskProvider; -import com.raoulvdberge.refinedstorage.item.info.ItemInfo; +import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData; +import com.raoulvdberge.refinedstorage.apiimpl.API; +import com.raoulvdberge.refinedstorage.apiimpl.storage.ItemStorageType; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.inventory.InventoryHelper; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ActionResult; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Hand; +import net.minecraft.util.text.*; +import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; +import javax.annotation.Nullable; +import java.util.List; import java.util.UUID; -public class ItemStorageDisk extends ItemBase implements IStorageDiskProvider { +public class ItemStorageDisk extends Item implements IStorageDiskProvider { private static final String NBT_ID = "Id"; - public static final int TYPE_1K = 0; - public static final int TYPE_4K = 1; - public static final int TYPE_16K = 2; - public static final int TYPE_64K = 3; - public static final int TYPE_CREATIVE = 4; + private final ItemStorageType type; - public ItemStorageDisk() { - super(new ItemInfo(RS.ID, "storage_disk")); + public ItemStorageDisk(ItemStorageType type) { + super(new Item.Properties().group(RS.MAIN_GROUP).maxStackSize(1)); - //setMaxStackSize(1); - //setHasSubtypes(true); - //setMaxDamage(0); - } + this.type = type; -/* TODO - @Override - @SideOnly(Side.CLIENT) - public void registerModels(IModelRegistration modelRegistration) { - modelRegistration.setModelVariants( - this, - new ResourceLocation(RS.ID, "1k_storage_disk"), - new ResourceLocation(RS.ID, "4k_storage_disk"), - new ResourceLocation(RS.ID, "16k_storage_disk"), - new ResourceLocation(RS.ID, "64k_storage_disk"), - new ResourceLocation(RS.ID, "creative_storage_disk") - ); - - modelRegistration.setModel(this, TYPE_1K, new ModelResourceLocation(RS.ID + ":1k_storage_disk", "inventory")); - modelRegistration.setModel(this, TYPE_4K, new ModelResourceLocation(RS.ID + ":4k_storage_disk", "inventory")); - modelRegistration.setModel(this, TYPE_16K, new ModelResourceLocation(RS.ID + ":16k_storage_disk", "inventory")); - modelRegistration.setModel(this, TYPE_64K, new ModelResourceLocation(RS.ID + ":64k_storage_disk", "inventory")); - modelRegistration.setModel(this, TYPE_CREATIVE, new ModelResourceLocation(RS.ID + ":creative_storage_disk", "inventory")); + this.setRegistryName(RS.ID, type.getName() + "_storage_disk"); } @Override - public void getSubItems(CreativeTabs tab, NonNullList items) { - if (!isInCreativeTab(tab)) { - return; - } + public void inventoryTick(ItemStack stack, World world, Entity entity, int slot, boolean selected) { + super.inventoryTick(stack, world, entity, slot, selected); - for (int i = 0; i < 5; ++i) { - items.add(new ItemStack(this, 1, i)); + if (!world.isRemote && !stack.hasTag()) { + UUID id = UUID.randomUUID(); + + API.instance().getStorageDiskManager((ServerWorld) world).set(id, API.instance().createDefaultItemDisk((ServerWorld) world, getCapacity(stack))); + API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); + + setId(stack, id); } } @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean selected) { - super.onUpdate(stack, world, entity, slot, selected); - - if (!world.isRemote) { - if (!isValid(stack)) { - API.instance().getOneSixMigrationHelper().migrateDisk(world, stack); - } - - if (!stack.hasTagCompound()) { - UUID id = UUID.randomUUID(); - - API.instance().getStorageDiskManager(world).set(id, API.instance().createDefaultItemDisk(world, getCapacity(stack))); - API.instance().getStorageDiskManager(world).markForSaving(); - - setId(stack, id); - } - } - } - - @Override - public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { super.addInformation(stack, world, tooltip, flag); if (isValid(stack)) { @@ -89,46 +65,46 @@ public class ItemStorageDisk extends ItemBase implements IStorageDiskProvider { IStorageDiskSyncData data = API.instance().getStorageDiskSync().getData(id); if (data != null) { if (data.getCapacity() == -1) { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored", API.instance().getQuantityFormatter().format(data.getStored()))); + tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored())).setStyle(new Style().setColor(TextFormatting.GRAY))); } else { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity()))); + tooltip.add(new TranslationTextComponent("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity())).setStyle(new Style().setColor(TextFormatting.GRAY))); } } if (flag.isAdvanced()) { - tooltip.add(id.toString()); + tooltip.add(new StringTextComponent(id.toString()).setStyle(new Style().setColor(TextFormatting.GRAY))); } } } @Override - public ActionResult onItemRightClick(World world, PlayerEntity player, EnumHand hand) { + public ActionResult onItemRightClick(World world, PlayerEntity player, Hand hand) { ItemStack diskStack = player.getHeldItem(hand); - if (!world.isRemote && player.isSneaking() && diskStack.getMetadata() != TYPE_CREATIVE) { - IStorageDisk disk = API.instance().getStorageDiskManager(world).getByStack(diskStack); + if (!world.isRemote && player.isSneaking() && type != ItemStorageType.CREATIVE) { + IStorageDisk disk = API.instance().getStorageDiskManager((ServerWorld) world).getByStack(diskStack); if (disk != null && disk.getStored() == 0) { - ItemStack storagePart = new ItemStack(RSItems.STORAGE_PART, diskStack.getCount(), diskStack.getMetadata()); + ItemStack storagePart = new ItemStack(ItemStoragePart.getByType(type), diskStack.getCount()); if (!player.inventory.addItemStackToInventory(storagePart.copy())) { InventoryHelper.spawnItemStack(world, player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ(), storagePart); } - API.instance().getStorageDiskManager(world).remove(getId(diskStack)); - API.instance().getStorageDiskManager(world).markForSaving(); + API.instance().getStorageDiskManager((ServerWorld) world).remove(getId(diskStack)); + API.instance().getStorageDiskManager((ServerWorld) world).markForSaving(); - return new ActionResult<>(EnumActionResult.SUCCESS, new ItemStack(RSItems.STORAGE_HOUSING)); + return new ActionResult<>(ActionResultType.SUCCESS, new ItemStack(RSItems.STORAGE_HOUSING)); } } - return new ActionResult<>(EnumActionResult.PASS, diskStack); + return new ActionResult<>(ActionResultType.PASS, diskStack); } @Override public int getEntityLifespan(ItemStack stack, World world) { return Integer.MAX_VALUE; - }*/ + } @Override public UUID getId(ItemStack disk) { @@ -148,8 +124,7 @@ public class ItemStorageDisk extends ItemBase implements IStorageDiskProvider { @Override public int getCapacity(ItemStack disk) { - return 123; - // TODO return ItemStorageType.getById(disk.getItemDamage()).getCapacity(); + return type.getCapacity(); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStoragePart.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStoragePart.java index 2d3c1653d..bf7869dbf 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStoragePart.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStoragePart.java @@ -1,6 +1,7 @@ package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RS; +import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.apiimpl.storage.ItemStorageType; import net.minecraft.item.Item; @@ -10,4 +11,19 @@ public class ItemStoragePart extends ItemBase { this.setRegistryName(RS.ID, type.getName() + "_storage_part"); } + + public static ItemStoragePart getByType(ItemStorageType type) { + switch (type) { + case ONE_K: + return RSItems.ONE_K_STORAGE_PART; + case FOUR_K: + return RSItems.FOUR_K_STORAGE_PART; + case SIXTEEN_K: + return RSItems.SIXTEEN_K_STORAGE_PART; + case SIXTY_FOUR_K: + return RSItems.SIXTY_FOUR_K_STORAGE_PART; + default: + throw new IllegalArgumentException("Cannot get storage part of " + type); + } + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/itemblock/ItemBlockFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/item/itemblock/ItemBlockFluidStorage.java index fb8b4e73b..ef139871d 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/itemblock/ItemBlockFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/itemblock/ItemBlockFluidStorage.java @@ -21,9 +21,9 @@ public class ItemBlockFluidStorage extends ItemBlockBase { IStorageDiskSyncData data = API.instance().getStorageDiskSync().getData(id); if (data != null) { if (data.getCapacity() == -1) { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored", API.instance().getQuantityFormatter().format(data.getStored()))); + tooltip.add(I18n.format("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored()))); } else { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity()))); + tooltip.add(I18n.format("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity()))); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/itemblock/ItemBlockStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/item/itemblock/ItemBlockStorage.java index a04bb2560..82f00c936 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/itemblock/ItemBlockStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/itemblock/ItemBlockStorage.java @@ -21,9 +21,9 @@ public class ItemBlockStorage extends ItemBlockBase { IStorageDiskSyncData data = API.instance().getStorageDiskSync().getData(id); if (data != null) { if (data.getCapacity() == -1) { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored", API.instance().getQuantityFormatter().format(data.getStored()))); + tooltip.add(I18n.format("misc.refinedstorage.storage.stored", API.instance().getQuantityFormatter().format(data.getStored()))); } else { - tooltip.add(I18n.format("misc.refinedstorage:storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity()))); + tooltip.add(I18n.format("misc.refinedstorage.storage.stored_capacity", API.instance().getQuantityFormatter().format(data.getStored()), API.instance().getQuantityFormatter().format(data.getCapacity()))); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeRequest.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeRequest.java new file mode 100644 index 000000000..8990ed1eb --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeRequest.java @@ -0,0 +1,37 @@ +package com.raoulvdberge.refinedstorage.network; + +import com.raoulvdberge.refinedstorage.RS; +import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk; +import com.raoulvdberge.refinedstorage.apiimpl.API; +import net.minecraft.network.PacketBuffer; +import net.minecraftforge.fml.network.NetworkEvent; + +import java.util.UUID; +import java.util.function.Supplier; + +public class MessageStorageDiskSizeRequest { + private UUID id; + + public MessageStorageDiskSizeRequest(UUID id) { + this.id = id; + } + + public static MessageStorageDiskSizeRequest decode(PacketBuffer buf) { + return new MessageStorageDiskSizeRequest(buf.readUniqueId()); + } + + public static void encode(MessageStorageDiskSizeRequest message, PacketBuffer buf) { + buf.writeUniqueId(message.id); + } + + public static void handle(MessageStorageDiskSizeRequest message, Supplier ctx) { + ctx.get().enqueueWork(() -> { + IStorageDisk disk = API.instance().getStorageDiskManager(ctx.get().getSender().getServerWorld()).get(message.id); + + if (disk != null) { + RS.NETWORK_HANDLER.sendTo(ctx.get().getSender(), new MessageStorageDiskSizeResponse(message.id, disk.getStored(), disk.getCapacity())); + } + }); + ctx.get().setPacketHandled(true); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeRequest.java.off b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeRequest.java.off deleted file mode 100644 index ec917f642..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeRequest.java.off +++ /dev/null @@ -1,41 +0,0 @@ -package com.raoulvdberge.refinedstorage.network; - -import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk; -import com.raoulvdberge.refinedstorage.apiimpl.API; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; - -import java.util.UUID; - -public class MessageStorageDiskSizeRequest extends MessageHandlerPlayerToServer implements IMessage { - private UUID id; - - public MessageStorageDiskSizeRequest() { - } - - public MessageStorageDiskSizeRequest(UUID id) { - this.id = id; - } - - @Override - protected void handle(MessageStorageDiskSizeRequest message, ServerPlayerEntity player) { - IStorageDisk disk = API.instance().getStorageDiskManager(player.getEntityWorld()).get(message.id); - - if (disk != null) { - RS.INSTANCE.network.sendTo(new MessageStorageDiskSizeResponse(message.id, disk.getStored(), disk.getCapacity()), player); - } - } - - @Override - public void fromBytes(ByteBuf buf) { - id = UUID.fromString(ByteBufUtils.readUTF8String(buf)); - } - - @Override - public void toBytes(ByteBuf buf) { - ByteBufUtils.writeUTF8String(buf, id.toString()); - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeResponse.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeResponse.java new file mode 100644 index 000000000..031c05291 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeResponse.java @@ -0,0 +1,37 @@ +package com.raoulvdberge.refinedstorage.network; + +import com.raoulvdberge.refinedstorage.apiimpl.API; +import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskSync; +import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskSyncData; +import net.minecraft.network.PacketBuffer; +import net.minecraftforge.fml.network.NetworkEvent; + +import java.util.UUID; +import java.util.function.Supplier; + +public class MessageStorageDiskSizeResponse { + private UUID id; + private int stored; + private int capacity; + + public MessageStorageDiskSizeResponse(UUID id, int stored, int capacity) { + this.id = id; + this.stored = stored; + this.capacity = capacity; + } + + public static void encode(MessageStorageDiskSizeResponse message, PacketBuffer buf) { + buf.writeUniqueId(message.id); + buf.writeInt(message.stored); + buf.writeInt(message.capacity); + } + + public static MessageStorageDiskSizeResponse decode(PacketBuffer buf) { + return new MessageStorageDiskSizeResponse(buf.readUniqueId(), buf.readInt(), buf.readInt()); + } + + public static void handle(MessageStorageDiskSizeResponse message, Supplier ctx) { + ctx.get().enqueueWork(() -> ((StorageDiskSync) API.instance().getStorageDiskSync()).setData(message.id, new StorageDiskSyncData(message.stored, message.capacity))); + ctx.get().setPacketHandled(true); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeResponse.java.off b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeResponse.java.off deleted file mode 100644 index 7e9fc9255..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageStorageDiskSizeResponse.java.off +++ /dev/null @@ -1,48 +0,0 @@ -package com.raoulvdberge.refinedstorage.network; - -import com.raoulvdberge.refinedstorage.apiimpl.API; -import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskSync; -import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskSyncData; -import io.netty.buffer.ByteBuf; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; -import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; - -import java.util.UUID; - -public class MessageStorageDiskSizeResponse implements IMessage, IMessageHandler { - private UUID id; - private int stored; - private int capacity; - - public MessageStorageDiskSizeResponse() { - } - - public MessageStorageDiskSizeResponse(UUID id, int stored, int capacity) { - this.id = id; - this.stored = stored; - this.capacity = capacity; - } - - @Override - public void fromBytes(ByteBuf buf) { - id = UUID.fromString(ByteBufUtils.readUTF8String(buf)); - stored = buf.readInt(); - capacity = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - ByteBufUtils.writeUTF8String(buf, id.toString()); - buf.writeInt(stored); - buf.writeInt(capacity); - } - - @Override - public IMessage onMessage(MessageStorageDiskSizeResponse message, MessageContext ctx) { - ((StorageDiskSync) API.instance().getStorageDiskSync()).setData(message.id, new StorageDiskSyncData(message.stored, message.capacity)); - - return null; - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/NetworkHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/network/NetworkHandler.java new file mode 100644 index 000000000..2650b979d --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/NetworkHandler.java @@ -0,0 +1,36 @@ +package com.raoulvdberge.refinedstorage.network; + +import com.raoulvdberge.refinedstorage.RS; +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.FakePlayer; +import net.minecraftforge.fml.network.NetworkDirection; +import net.minecraftforge.fml.network.NetworkRegistry; +import net.minecraftforge.fml.network.simple.SimpleChannel; + +public class NetworkHandler { + private final String protocolVersion = Integer.toString(1); + private final SimpleChannel handler = NetworkRegistry.ChannelBuilder + .named(new ResourceLocation(RS.ID, "main_channel")) + .clientAcceptedVersions(protocolVersion::equals) + .serverAcceptedVersions(protocolVersion::equals) + .networkProtocolVersion(() -> protocolVersion) + .simpleChannel(); + + public void register() { + int id = 0; + + handler.registerMessage(id++, MessageStorageDiskSizeRequest.class, MessageStorageDiskSizeRequest::encode, MessageStorageDiskSizeRequest::decode, MessageStorageDiskSizeRequest::handle); + handler.registerMessage(id++, MessageStorageDiskSizeResponse.class, MessageStorageDiskSizeResponse::encode, MessageStorageDiskSizeResponse::decode, MessageStorageDiskSizeResponse::handle); + } + + public void sendToServer(Object message) { + handler.sendToServer(message); + } + + public void sendTo(ServerPlayerEntity player, Object message) { + if (!(player instanceof FakePlayer)) { + handler.sendTo(message, player.connection.netManager, NetworkDirection.PLAY_TO_CLIENT); + } + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java index 24ae44849..2db92e539 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java @@ -66,111 +66,13 @@ public class ProxyCommon { API.instance().getReaderWriterHandlerRegistry().add(ReaderWriterHandlerRedstone.ID, tag -> new ReaderWriterHandlerRedstone()); API.instance().getReaderWriterHandlerRegistry().add(ReaderWriterHandlerForgeEnergy.ID, ReaderWriterHandlerForgeEnergy::new); - API.instance().getStorageDiskRegistry().add(StorageDiskFactoryItem.ID, new StorageDiskFactoryItem()); - API.instance().getStorageDiskRegistry().add(StorageDiskFactoryFluid.ID, new StorageDiskFactoryFluid()); - API.instance().addExternalStorageProvider(StorageType.ITEM, new ExternalStorageProviderItem()); API.instance().addExternalStorageProvider(StorageType.FLUID, new ExternalStorageProviderFluid()); - int id = 0; - - RS.INSTANCE.network.registerMessage(MessageTileDataParameter.class, MessageTileDataParameter.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageTileDataParameterUpdate.class, MessageTileDataParameterUpdate.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageGridItemInsertHeld.class, MessageGridItemInsertHeld.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageGridItemPull.class, MessageGridItemPull.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageGridClear.class, MessageGridClear.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageGridTransfer.class, MessageGridTransfer.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageGridSettingsUpdate.class, MessageGridSettingsUpdate.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageGridCraftingStart.class, MessageGridCraftingStart.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageGridPatternCreate.class, MessageGridPatternCreate.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageCraftingMonitorCancel.class, MessageCraftingMonitorCancel.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageCraftingMonitorElements.class, MessageCraftingMonitorElements.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageGridItemUpdate.class, MessageGridItemUpdate.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageGridItemDelta.class, MessageGridItemDelta.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageGridFluidUpdate.class, MessageGridFluidUpdate.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageGridFluidDelta.class, MessageGridFluidDelta.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageGridFluidPull.class, MessageGridFluidPull.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageGridFluidInsertHeld.class, MessageGridFluidInsertHeld.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageFilterUpdate.class, MessageFilterUpdate.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageGridCraftingPreview.class, MessageGridCraftingPreview.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageGridCraftingPreviewResponse.class, MessageGridCraftingPreviewResponse.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageGridCraftingStartResponse.class, MessageGridCraftingStartResponse.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageGridProcessingTransfer.class, MessageGridProcessingTransfer.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageReaderWriterUpdate.class, MessageReaderWriterUpdate.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageReaderWriterChannelAdd.class, MessageReaderWriterChannelAdd.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageReaderWriterChannelRemove.class, MessageReaderWriterChannelRemove.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageSecurityManagerUpdate.class, MessageSecurityManagerUpdate.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageWirelessFluidGridSettingsUpdate.class, MessageWirelessFluidGridSettingsUpdate.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageCrafterManagerSlotSizes.class, MessageCrafterManagerSlotSizes.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageCrafterManagerRequestSlotData.class, MessageCrafterManagerRequestSlotData.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageWirelessCraftingMonitorSettings.class, MessageWirelessCraftingMonitorSettings.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageStorageDiskSizeRequest.class, MessageStorageDiskSizeRequest.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageStorageDiskSizeResponse.class, MessageStorageDiskSizeResponse.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageConfigSync.class, MessageConfigSync.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageSlotFilterFluidSetAmount.class, MessageSlotFilterFluidSetAmount.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageSlotFilterSet.class, MessageSlotFilterSet.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageSlotFilterSetFluid.class, MessageSlotFilterSetFluid.class, id++, Side.SERVER); - RS.INSTANCE.network.registerMessage(MessageSlotFilterFluidUpdate.class, MessageSlotFilterFluidUpdate.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageGridOpen.class, MessageGridOpen.class, id++, Side.CLIENT); - RS.INSTANCE.network.registerMessage(MessageNetworkItemOpen.class, MessageNetworkItemOpen.class, id++, Side.SERVER); - NetworkRegistry.INSTANCE.registerGuiHandler(RS.INSTANCE, new GuiHandler()); MinecraftForge.EVENT_BUS.register(new NetworkNodeListener()); - registerBlock(RSBlocks.CONTROLLER); - registerBlock(RSBlocks.GRID); - registerBlock(RSBlocks.PORTABLE_GRID); - registerBlock(RSBlocks.CRAFTING_MONITOR); - registerBlock(RSBlocks.STORAGE_MONITOR); - registerBlock(RSBlocks.SECURITY_MANAGER); - registerBlock(RSBlocks.CRAFTER); - registerBlock(RSBlocks.DISK_DRIVE); - registerBlock(RSBlocks.STORAGE); - registerBlock(RSBlocks.FLUID_STORAGE); - registerBlock(RSBlocks.CABLE); - registerBlock(RSBlocks.IMPORTER); - registerBlock(RSBlocks.EXPORTER); - registerBlock(RSBlocks.EXTERNAL_STORAGE); - registerBlock(RSBlocks.CONSTRUCTOR); - registerBlock(RSBlocks.DESTRUCTOR); - registerBlock(RSBlocks.READER); - registerBlock(RSBlocks.WRITER); - registerBlock(RSBlocks.DETECTOR); - registerBlock(RSBlocks.RELAY); - registerBlock(RSBlocks.INTERFACE); - registerBlock(RSBlocks.FLUID_INTERFACE); - registerBlock(RSBlocks.WIRELESS_TRANSMITTER); - registerBlock(RSBlocks.MACHINE_CASING); - registerBlock(RSBlocks.QUARTZ_ENRICHED_IRON); - registerBlock(RSBlocks.NETWORK_TRANSMITTER); - registerBlock(RSBlocks.NETWORK_RECEIVER); - registerBlock(RSBlocks.DISK_MANIPULATOR); - registerBlock(RSBlocks.CRAFTER_MANAGER); - - registerItem(RSItems.QUARTZ_ENRICHED_IRON); - registerItem(RSItems.PROCESSOR_BINDING); - registerItem(RSItems.CUTTING_TOOL); - registerItem(RSItems.STORAGE_DISK); - registerItem(RSItems.FLUID_STORAGE_DISK); - registerItem(RSItems.STORAGE_HOUSING); - registerItem(RSItems.PATTERN); - registerItem(RSItems.STORAGE_PART); - registerItem(RSItems.FLUID_STORAGE_PART); - registerItem(RSItems.WIRELESS_GRID); - registerItem(RSItems.WIRELESS_FLUID_GRID); - registerItem(RSItems.WIRELESS_CRAFTING_MONITOR); - registerItem(RSItems.PROCESSOR); - registerItem(RSItems.CORE); - registerItem(RSItems.SILICON); - registerItem(RSItems.UPGRADE); - registerItem(RSItems.FILTER); - registerItem(RSItems.NETWORK_CARD); - registerItem(RSItems.SECURITY_CARD); - registerItem(RSItems.COVER); - registerItem(RSItems.HOLLOW_COVER); - registerItem(RSItems.WRENCH); - IntegrationInventorySorter.register(); } @@ -184,26 +86,6 @@ public class ProxyCommon { } } - public void postInit(FMLPostInitializationEvent e) { - // NO OP - } - - @SubscribeEvent - public void registerBlocks(RegistryEvent.Register e) { - blocksToRegister.forEach(e.getRegistry()::register); - - if (IntegrationFunkyLocomotion.isLoaded()) { - MoveFactoryRegisterer.register(blocksToRegister); - } - } - - @SubscribeEvent - public void registerItems(RegistryEvent.Register e) { - itemsToRegister.forEach(e.getRegistry()::register); - - OreDictionary.registerOre("itemSilicon", RSItems.SILICON); - } - @SubscribeEvent public void registerRecipes(RegistryEvent.Register e) { e.getRegistry().register(new RecipeCover().setRegistryName(new ResourceLocation(RS.ID, "cover"))); @@ -233,65 +115,5 @@ public class ProxyCommon { if (e.getWorld().isRemote && RS.INSTANCE.config.getOriginalClientVersion() != null) { RS.INSTANCE.config = RS.INSTANCE.config.getOriginalClientVersion(); } - } - - @SubscribeEvent - public void fixItemMappings(RegistryEvent.MissingMappings e) { - OneSixMigrationHelper.removalHook(); - - for (RegistryEvent.MissingMappings.Mapping missing : e.getMappings()) { - if (missing.key.getNamespace().equals(RS.ID) && missing.key.getPath().equals("solderer")) { - missing.ignore(); - } - } - } - - @SubscribeEvent - public void fixBlockMappings(RegistryEvent.MissingMappings e) { - OneSixMigrationHelper.removalHook(); - - for (RegistryEvent.MissingMappings.Mapping missing : e.getMappings()) { - if (missing.key.getNamespace().equals(RS.ID) && missing.key.getPath().equals("solderer")) { - missing.ignore(); - } - } - } - - private void registerBlock(BlockBase block) { - blocksToRegister.add(block); - - registerItem(block.createItem()); - - if (block.getInfo().hasTileEntity()) { - registerTile(block.getInfo()); - } - } - - private void registerItem(Item item) { - itemsToRegister.add(item); - } - - private void registerTile(IBlockInfo info) { - Class clazz = info.createTileEntity().getClass(); - - GameRegistry.registerTileEntity(clazz, info.getId()); - - try { - TileBase tileInstance = clazz.newInstance(); - - if (tileInstance instanceof TileNode) { - API.instance().getNetworkNodeRegistry().add(((TileNode) tileInstance).getNodeId(), (tag, world, pos) -> { - NetworkNode node = ((TileNode) tileInstance).createNode(world, pos); - - node.read(tag); - - return node; - }); - } - - tileInstance.getDataManager().getParameters().forEach(TileDataManager::registerParameter); - } catch (InstantiationException | IllegalAccessException e) { - e.printStackTrace(); - } }*/ } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java index b4f2bd071..22f2f2c89 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java @@ -33,6 +33,7 @@ import net.minecraft.inventory.CraftResultInventory; import net.minecraft.inventory.CraftingInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.common.util.Constants; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; @@ -95,7 +96,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer storage = null; cache = null; } else { - IStorageDisk disk = API.instance().getStorageDiskManager(player.getEntityWorld()).getByStack(getDisk().getStackInSlot(0)); + IStorageDisk disk = API.instance().getStorageDiskManager((ServerWorld) player.world).getByStack(getDisk().getStackInSlot(0)); if (disk != null) { StorageType type = ((IStorageDiskProvider) getDisk().getStackInSlot(0).getItem()).getType(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java index 43a30d4fb..2d712df8f 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java @@ -48,6 +48,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; import net.minecraft.network.datasync.DataSerializers; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.LazyOptional; @@ -172,7 +173,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, this.storage = null; this.cache = null; } else { - IStorageDisk disk = API.instance().getStorageDiskManager(world).getByStack(getDisk().getStackInSlot(0)); + IStorageDisk disk = API.instance().getStorageDiskManager((ServerWorld) world).getByStack(getDisk().getStackInSlot(0)); if (disk != null) { StorageType type = ((IStorageDiskProvider) getDisk().getStackInSlot(0).getItem()).getType(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/util/StackUtils.java b/src/main/java/com/raoulvdberge/refinedstorage/util/StackUtils.java index d82776ae1..21d3381ff 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/util/StackUtils.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/util/StackUtils.java @@ -11,7 +11,7 @@ import net.minecraft.item.Items; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; import net.minecraft.network.PacketBuffer; -import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.common.util.Constants; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; @@ -94,7 +94,7 @@ public final class StackUtils { } @SuppressWarnings("unchecked") - public static void createStorages(World world, ItemStack diskStack, int slot, IStorageDisk[] itemDisks, IStorageDisk[] fluidDisks, Function, IStorageDisk> itemDiskWrapper, Function, IStorageDisk> fluidDiskWrapper) { + public static void createStorages(ServerWorld world, ItemStack diskStack, int slot, IStorageDisk[] itemDisks, IStorageDisk[] fluidDisks, Function, IStorageDisk> itemDiskWrapper, Function, IStorageDisk> fluidDiskWrapper) { if (diskStack.isEmpty()) { itemDisks[slot] = null; fluidDisks[slot] = null; diff --git a/src/main/resources/assets/refinedstorage/lang/en_us.json b/src/main/resources/assets/refinedstorage/lang/en_us.json index 98cb2f412..4b9b1709e 100644 --- a/src/main/resources/assets/refinedstorage/lang/en_us.json +++ b/src/main/resources/assets/refinedstorage/lang/en_us.json @@ -88,11 +88,11 @@ "misc.refinedstorage:energy_stored": "%d / %d FE", "misc.refinedstorage:energy_usage": "Usage: %d FE/t", "misc.refinedstorage:energy_usage_minimal": "%d FE/t", - "misc.refinedstorage:storage.stored": "Stored: %s", - "misc.refinedstorage:storage.stored_capacity": "Stored: %s / %s", - "misc.refinedstorage:storage.stored_minimal": "%s", - "misc.refinedstorage:storage.stored_capacity_minimal": "%s / %s", - "misc.refinedstorage:storage.full": "%d%% full", + "misc.refinedstorage.storage.stored": "Stored: %s", + "misc.refinedstorage.storage.stored_capacity": "Stored: %s / %s", + "misc.refinedstorage.storage.stored_minimal": "%s", + "misc.refinedstorage.storage.stored_capacity_minimal": "%s / %s", + "misc.refinedstorage.storage.full": "%d%% full", "misc.refinedstorage:network_item.tooltip": "Linked to %d, %d, %d.", "misc.refinedstorage:network_item.out_of_range": "There is no Wireless Transmitter in range.", "misc.refinedstorage:network_item.not_found": "Controller not found.", @@ -221,18 +221,16 @@ "block.refinedstorage:portable_grid.1": "Creative Portable Grid", "block.refinedstorage:portable_grid.tooltip": "Sneak to place in the world.", "block.refinedstorage:crafter_manager": "Crafter Manager", - "item.refinedstorage:storage_disk.0": "1k Storage Disk", - "item.refinedstorage:storage_disk.1": "4k Storage Disk", - "item.refinedstorage:storage_disk.2": "16k Storage Disk", - "item.refinedstorage:storage_disk.3": "64k Storage Disk", - "item.refinedstorage:storage_disk.4": "Creative Storage Disk", - "item.refinedstorage:storage_disk.5": "Debug Storage Disk", - "item.refinedstorage:fluid_storage_disk.0": "64k Fluid Storage Disk", - "item.refinedstorage:fluid_storage_disk.1": "256k Fluid Storage Disk", - "item.refinedstorage:fluid_storage_disk.2": "1024k Fluid Storage Disk", - "item.refinedstorage:fluid_storage_disk.3": "4096k Fluid Storage Disk", - "item.refinedstorage:fluid_storage_disk.4": "Creative Fluid Storage Disk", - "item.refinedstorage:fluid_storage_disk.5": "Debug Fluid Storage Disk", + "item.refinedstorage.1k_storage_disk": "1k Storage Disk", + "item.refinedstorage.4k_storage_disk": "4k Storage Disk", + "item.refinedstorage.16k_storage_disk": "16k Storage Disk", + "item.refinedstorage.64k_storage_disk": "64k Storage Disk", + "item.refinedstorage.creative_storage_disk": "Creative Storage Disk", + "item.refinedstorage.64k_fluid_storage_disk": "64k Fluid Storage Disk", + "item.refinedstorage.256k_fluid_storage_disk": "256k Fluid Storage Disk", + "item.refinedstorage.1024k_fluid_storage_disk": "1024k Fluid Storage Disk", + "item.refinedstorage.4096k_fluid_storage_disk": "4096k Fluid Storage Disk", + "item.refinedstorage.creative_fluid_storage_disk": "Creative Fluid Storage Disk", "item.refinedstorage:wireless_grid.0": "Wireless Grid", "item.refinedstorage:wireless_grid.1": "Creative Wireless Grid", "item.refinedstorage:wireless_fluid_grid.0": "Wireless Fluid Grid", diff --git a/src/main/resources/assets/refinedstorage/recipes/1024k_fluid_storage_disk.json b/src/main/resources/assets/refinedstorage/recipes/1024k_fluid_storage_disk.json deleted file mode 100644 index 6f59012be..000000000 --- a/src/main/resources/assets/refinedstorage/recipes/1024k_fluid_storage_disk.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "GRG", - "RPR", - "EEE" - ], - "key": { - "G": { - "type": "forge:ore_dict", - "ore": "blockGlass" - }, - "R": { - "item": "minecraft:redstone" - }, - "P": { - "item": "refinedstorage:fluid_storage_part", - "data": 2 - }, - "E": { - "item": "refinedstorage:quartz_enriched_iron" - } - }, - "result": { - "item": "refinedstorage:fluid_storage_disk", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/1024k_fluid_storage_disk_from_storage_housing.json b/src/main/resources/assets/refinedstorage/recipes/1024k_fluid_storage_disk_from_storage_housing.json deleted file mode 100644 index 3ce6811f7..000000000 --- a/src/main/resources/assets/refinedstorage/recipes/1024k_fluid_storage_disk_from_storage_housing.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "refinedstorage:storage_housing" - }, - { - "item": "refinedstorage:fluid_storage_part", - "data": 2 - } - ], - "result": { - "item": "refinedstorage:fluid_storage_disk", - "data": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/256k_fluid_storage_disk.json b/src/main/resources/assets/refinedstorage/recipes/256k_fluid_storage_disk.json deleted file mode 100644 index 71e9e9d24..000000000 --- a/src/main/resources/assets/refinedstorage/recipes/256k_fluid_storage_disk.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "GRG", - "RPR", - "EEE" - ], - "key": { - "G": { - "type": "forge:ore_dict", - "ore": "blockGlass" - }, - "R": { - "item": "minecraft:redstone" - }, - "P": { - "item": "refinedstorage:fluid_storage_part", - "data": 1 - }, - "E": { - "item": "refinedstorage:quartz_enriched_iron" - } - }, - "result": { - "item": "refinedstorage:fluid_storage_disk", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/256k_fluid_storage_disk_from_storage_housing.json b/src/main/resources/assets/refinedstorage/recipes/256k_fluid_storage_disk_from_storage_housing.json deleted file mode 100644 index 9ef3afc9f..000000000 --- a/src/main/resources/assets/refinedstorage/recipes/256k_fluid_storage_disk_from_storage_housing.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "refinedstorage:storage_housing" - }, - { - "item": "refinedstorage:fluid_storage_part", - "data": 1 - } - ], - "result": { - "item": "refinedstorage:fluid_storage_disk", - "data": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/4096k_fluid_storage_disk.json b/src/main/resources/assets/refinedstorage/recipes/4096k_fluid_storage_disk.json deleted file mode 100644 index ecbb17343..000000000 --- a/src/main/resources/assets/refinedstorage/recipes/4096k_fluid_storage_disk.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "GRG", - "RPR", - "EEE" - ], - "key": { - "G": { - "type": "forge:ore_dict", - "ore": "blockGlass" - }, - "R": { - "item": "minecraft:redstone" - }, - "P": { - "item": "refinedstorage:fluid_storage_part", - "data": 3 - }, - "E": { - "item": "refinedstorage:quartz_enriched_iron" - } - }, - "result": { - "item": "refinedstorage:fluid_storage_disk", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/4096k_fluid_storage_disk_from_storage_housing.json b/src/main/resources/assets/refinedstorage/recipes/4096k_fluid_storage_disk_from_storage_housing.json deleted file mode 100644 index 67e64c2a7..000000000 --- a/src/main/resources/assets/refinedstorage/recipes/4096k_fluid_storage_disk_from_storage_housing.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "refinedstorage:storage_housing" - }, - { - "item": "refinedstorage:fluid_storage_part", - "data": 3 - } - ], - "result": { - "item": "refinedstorage:fluid_storage_disk", - "data": 3 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/64k_fluid_storage_disk.json b/src/main/resources/assets/refinedstorage/recipes/64k_fluid_storage_disk.json deleted file mode 100644 index c835d79af..000000000 --- a/src/main/resources/assets/refinedstorage/recipes/64k_fluid_storage_disk.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "GRG", - "RPR", - "EEE" - ], - "key": { - "G": { - "type": "forge:ore_dict", - "ore": "blockGlass" - }, - "R": { - "item": "minecraft:redstone" - }, - "P": { - "item": "refinedstorage:fluid_storage_part", - "data": 0 - }, - "E": { - "item": "refinedstorage:quartz_enriched_iron" - } - }, - "result": { - "item": "refinedstorage:fluid_storage_disk", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/64k_fluid_storage_disk_from_storage_housing.json b/src/main/resources/assets/refinedstorage/recipes/64k_fluid_storage_disk_from_storage_housing.json deleted file mode 100644 index e4680d04a..000000000 --- a/src/main/resources/assets/refinedstorage/recipes/64k_fluid_storage_disk_from_storage_housing.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "refinedstorage:storage_housing" - }, - { - "item": "refinedstorage:fluid_storage_part", - "data": 0 - } - ], - "result": { - "item": "refinedstorage:fluid_storage_disk", - "data": 0 - } -} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/textures/items/1024k_fluid_storage_disk.png b/src/main/resources/assets/refinedstorage/textures/items/1024k_fluid_storage_disk.png index 28e1b1435..48f5a9675 100644 Binary files a/src/main/resources/assets/refinedstorage/textures/items/1024k_fluid_storage_disk.png and b/src/main/resources/assets/refinedstorage/textures/items/1024k_fluid_storage_disk.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/items/256k_fluid_storage_disk.png b/src/main/resources/assets/refinedstorage/textures/items/256k_fluid_storage_disk.png index 4389a459f..137598d76 100644 Binary files a/src/main/resources/assets/refinedstorage/textures/items/256k_fluid_storage_disk.png and b/src/main/resources/assets/refinedstorage/textures/items/256k_fluid_storage_disk.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/items/4096k_fluid_storage_disk.png b/src/main/resources/assets/refinedstorage/textures/items/4096k_fluid_storage_disk.png index d589d71ca..21662f285 100644 Binary files a/src/main/resources/assets/refinedstorage/textures/items/4096k_fluid_storage_disk.png and b/src/main/resources/assets/refinedstorage/textures/items/4096k_fluid_storage_disk.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/items/64k_fluid_storage_disk.png b/src/main/resources/assets/refinedstorage/textures/items/64k_fluid_storage_disk.png index f7d91ae7a..c0a065a25 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/items/64k_fluid_storage_disk.png and b/src/main/resources/assets/refinedstorage/textures/items/64k_fluid_storage_disk.png differ diff --git a/src/main/resources/data/refinedstorage/recipes/1024k_fluid_storage_disk.json b/src/main/resources/data/refinedstorage/recipes/1024k_fluid_storage_disk.json new file mode 100644 index 000000000..1fe9c3fd5 --- /dev/null +++ b/src/main/resources/data/refinedstorage/recipes/1024k_fluid_storage_disk.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "GRG", + "RPR", + "EEE" + ], + "key": { + "G": { + "tag": "forge:glass" + }, + "R": { + "item": "minecraft:redstone" + }, + "P": { + "item": "refinedstorage:1024k_fluid_storage_part" + }, + "E": { + "item": "refinedstorage:quartz_enriched_iron" + } + }, + "result": { + "item": "refinedstorage:1024k_fluid_storage_disk" + } +} \ No newline at end of file diff --git a/src/main/resources/data/refinedstorage/recipes/1024k_fluid_storage_disk_from_storage_housing.json b/src/main/resources/data/refinedstorage/recipes/1024k_fluid_storage_disk_from_storage_housing.json new file mode 100644 index 000000000..be1b27a8f --- /dev/null +++ b/src/main/resources/data/refinedstorage/recipes/1024k_fluid_storage_disk_from_storage_housing.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "refinedstorage:storage_housing" + }, + { + "item": "refinedstorage:1024k_fluid_storage_part" + } + ], + "result": { + "item": "refinedstorage:1024k_fluid_storage_disk" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/16k_storage_disk.json b/src/main/resources/data/refinedstorage/recipes/16k_storage_disk.json similarity index 61% rename from src/main/resources/assets/refinedstorage/recipes/16k_storage_disk.json rename to src/main/resources/data/refinedstorage/recipes/16k_storage_disk.json index 7414fc5a7..befa4e9c6 100644 --- a/src/main/resources/assets/refinedstorage/recipes/16k_storage_disk.json +++ b/src/main/resources/data/refinedstorage/recipes/16k_storage_disk.json @@ -7,22 +7,19 @@ ], "key": { "G": { - "type": "forge:ore_dict", - "ore": "blockGlass" + "tag": "forge:glass" }, "R": { "item": "minecraft:redstone" }, "P": { - "item": "refinedstorage:storage_part", - "data": 2 + "item": "refinedstorage:16k_storage_part" }, "E": { "item": "refinedstorage:quartz_enriched_iron" } }, "result": { - "item": "refinedstorage:storage_disk", - "data": 2 + "item": "refinedstorage:16k_storage_disk" } } \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/16k_storage_disk_from_storage_housing.json b/src/main/resources/data/refinedstorage/recipes/16k_storage_disk_from_storage_housing.json similarity index 57% rename from src/main/resources/assets/refinedstorage/recipes/16k_storage_disk_from_storage_housing.json rename to src/main/resources/data/refinedstorage/recipes/16k_storage_disk_from_storage_housing.json index 60daab54d..966040d03 100644 --- a/src/main/resources/assets/refinedstorage/recipes/16k_storage_disk_from_storage_housing.json +++ b/src/main/resources/data/refinedstorage/recipes/16k_storage_disk_from_storage_housing.json @@ -5,12 +5,10 @@ "item": "refinedstorage:storage_housing" }, { - "item": "refinedstorage:storage_part", - "data": 2 + "item": "refinedstorage:16k_storage_part" } ], "result": { - "item": "refinedstorage:storage_disk", - "data": 2 + "item": "refinedstorage:16k_storage_disk" } } \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/1k_storage_disk.json b/src/main/resources/data/refinedstorage/recipes/1k_storage_disk.json similarity index 61% rename from src/main/resources/assets/refinedstorage/recipes/1k_storage_disk.json rename to src/main/resources/data/refinedstorage/recipes/1k_storage_disk.json index 5c89562c6..b4862c093 100644 --- a/src/main/resources/assets/refinedstorage/recipes/1k_storage_disk.json +++ b/src/main/resources/data/refinedstorage/recipes/1k_storage_disk.json @@ -7,22 +7,19 @@ ], "key": { "G": { - "type": "forge:ore_dict", - "ore": "blockGlass" + "tag": "forge:glass" }, "R": { "item": "minecraft:redstone" }, "P": { - "item": "refinedstorage:storage_part", - "data": 0 + "item": "refinedstorage:1k_storage_part" }, "E": { "item": "refinedstorage:quartz_enriched_iron" } }, "result": { - "item": "refinedstorage:storage_disk", - "data": 0 + "item": "refinedstorage:1k_storage_disk" } } \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/1k_storage_disk_from_storage_housing.json b/src/main/resources/data/refinedstorage/recipes/1k_storage_disk_from_storage_housing.json similarity index 57% rename from src/main/resources/assets/refinedstorage/recipes/1k_storage_disk_from_storage_housing.json rename to src/main/resources/data/refinedstorage/recipes/1k_storage_disk_from_storage_housing.json index 9fe204d37..8634d9093 100644 --- a/src/main/resources/assets/refinedstorage/recipes/1k_storage_disk_from_storage_housing.json +++ b/src/main/resources/data/refinedstorage/recipes/1k_storage_disk_from_storage_housing.json @@ -5,12 +5,10 @@ "item": "refinedstorage:storage_housing" }, { - "item": "refinedstorage:storage_part", - "data": 0 + "item": "refinedstorage:1k_storage_part" } ], "result": { - "item": "refinedstorage:storage_disk", - "data": 0 + "item": "refinedstorage:1k_storage_disk" } } \ No newline at end of file diff --git a/src/main/resources/data/refinedstorage/recipes/256k_fluid_storage_disk.json b/src/main/resources/data/refinedstorage/recipes/256k_fluid_storage_disk.json new file mode 100644 index 000000000..f26d2cdec --- /dev/null +++ b/src/main/resources/data/refinedstorage/recipes/256k_fluid_storage_disk.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "GRG", + "RPR", + "EEE" + ], + "key": { + "G": { + "tag": "forge:glass" + }, + "R": { + "item": "minecraft:redstone" + }, + "P": { + "item": "refinedstorage:256k_fluid_storage_part" + }, + "E": { + "item": "refinedstorage:quartz_enriched_iron" + } + }, + "result": { + "item": "refinedstorage:256k_fluid_storage_disk" + } +} \ No newline at end of file diff --git a/src/main/resources/data/refinedstorage/recipes/256k_fluid_storage_disk_from_storage_housing.json b/src/main/resources/data/refinedstorage/recipes/256k_fluid_storage_disk_from_storage_housing.json new file mode 100644 index 000000000..df73ca4f6 --- /dev/null +++ b/src/main/resources/data/refinedstorage/recipes/256k_fluid_storage_disk_from_storage_housing.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "refinedstorage:storage_housing" + }, + { + "item": "refinedstorage:256k_fluid_storage_part" + } + ], + "result": { + "item": "refinedstorage:256k_fluid_storage_disk" + } +} \ No newline at end of file diff --git a/src/main/resources/data/refinedstorage/recipes/4096k_fluid_storage_disk.json b/src/main/resources/data/refinedstorage/recipes/4096k_fluid_storage_disk.json new file mode 100644 index 000000000..df1e76f19 --- /dev/null +++ b/src/main/resources/data/refinedstorage/recipes/4096k_fluid_storage_disk.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "GRG", + "RPR", + "EEE" + ], + "key": { + "G": { + "tag": "forge:glass" + }, + "R": { + "item": "minecraft:redstone" + }, + "P": { + "item": "refinedstorage:4096k_fluid_storage_part" + }, + "E": { + "item": "refinedstorage:quartz_enriched_iron" + } + }, + "result": { + "item": "refinedstorage:4096k_fluid_storage_disk" + } +} \ No newline at end of file diff --git a/src/main/resources/data/refinedstorage/recipes/4096k_fluid_storage_disk_from_storage_housing.json b/src/main/resources/data/refinedstorage/recipes/4096k_fluid_storage_disk_from_storage_housing.json new file mode 100644 index 000000000..74e009d63 --- /dev/null +++ b/src/main/resources/data/refinedstorage/recipes/4096k_fluid_storage_disk_from_storage_housing.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "refinedstorage:storage_housing" + }, + { + "item": "refinedstorage:4096k_fluid_storage_part" + } + ], + "result": { + "item": "refinedstorage:4096k_fluid_storage_disk" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/4k_storage_disk.json b/src/main/resources/data/refinedstorage/recipes/4k_storage_disk.json similarity index 61% rename from src/main/resources/assets/refinedstorage/recipes/4k_storage_disk.json rename to src/main/resources/data/refinedstorage/recipes/4k_storage_disk.json index 3bc5ac363..693fe1eb5 100644 --- a/src/main/resources/assets/refinedstorage/recipes/4k_storage_disk.json +++ b/src/main/resources/data/refinedstorage/recipes/4k_storage_disk.json @@ -7,22 +7,19 @@ ], "key": { "G": { - "type": "forge:ore_dict", - "ore": "blockGlass" + "tag": "forge:glass" }, "R": { "item": "minecraft:redstone" }, "P": { - "item": "refinedstorage:storage_part", - "data": 1 + "item": "refinedstorage:4k_storage_part" }, "E": { "item": "refinedstorage:quartz_enriched_iron" } }, "result": { - "item": "refinedstorage:storage_disk", - "data": 1 + "item": "refinedstorage:4k_storage_disk" } } \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/4k_storage_disk_from_storage_housing.json b/src/main/resources/data/refinedstorage/recipes/4k_storage_disk_from_storage_housing.json similarity index 57% rename from src/main/resources/assets/refinedstorage/recipes/4k_storage_disk_from_storage_housing.json rename to src/main/resources/data/refinedstorage/recipes/4k_storage_disk_from_storage_housing.json index 2ffdbec81..b91c2e657 100644 --- a/src/main/resources/assets/refinedstorage/recipes/4k_storage_disk_from_storage_housing.json +++ b/src/main/resources/data/refinedstorage/recipes/4k_storage_disk_from_storage_housing.json @@ -5,12 +5,10 @@ "item": "refinedstorage:storage_housing" }, { - "item": "refinedstorage:storage_part", - "data": 1 + "item": "refinedstorage:4k_storage_part" } ], "result": { - "item": "refinedstorage:storage_disk", - "data": 1 + "item": "refinedstorage:4k_storage_disk" } } \ No newline at end of file diff --git a/src/main/resources/data/refinedstorage/recipes/64k_fluid_storage_disk.json b/src/main/resources/data/refinedstorage/recipes/64k_fluid_storage_disk.json new file mode 100644 index 000000000..0047a0b5e --- /dev/null +++ b/src/main/resources/data/refinedstorage/recipes/64k_fluid_storage_disk.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "GRG", + "RPR", + "EEE" + ], + "key": { + "G": { + "tag": "forge:glass" + }, + "R": { + "item": "minecraft:redstone" + }, + "P": { + "item": "refinedstorage:64k_fluid_storage_part" + }, + "E": { + "item": "refinedstorage:quartz_enriched_iron" + } + }, + "result": { + "item": "refinedstorage:64k_fluid_storage_disk" + } +} \ No newline at end of file diff --git a/src/main/resources/data/refinedstorage/recipes/64k_fluid_storage_disk_from_storage_housing.json b/src/main/resources/data/refinedstorage/recipes/64k_fluid_storage_disk_from_storage_housing.json new file mode 100644 index 000000000..e5d01e434 --- /dev/null +++ b/src/main/resources/data/refinedstorage/recipes/64k_fluid_storage_disk_from_storage_housing.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "refinedstorage:storage_housing" + }, + { + "item": "refinedstorage:64k_fluid_storage_part" + } + ], + "result": { + "item": "refinedstorage:64k_fluid_storage_disk" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/64k_storage_disk.json b/src/main/resources/data/refinedstorage/recipes/64k_storage_disk.json similarity index 61% rename from src/main/resources/assets/refinedstorage/recipes/64k_storage_disk.json rename to src/main/resources/data/refinedstorage/recipes/64k_storage_disk.json index e74e9ccf7..b797c5eb8 100644 --- a/src/main/resources/assets/refinedstorage/recipes/64k_storage_disk.json +++ b/src/main/resources/data/refinedstorage/recipes/64k_storage_disk.json @@ -7,22 +7,19 @@ ], "key": { "G": { - "type": "forge:ore_dict", - "ore": "blockGlass" + "tag": "forge:glass" }, "R": { "item": "minecraft:redstone" }, "P": { - "item": "refinedstorage:storage_part", - "data": 3 + "item": "refinedstorage:64k_storage_part" }, "E": { "item": "refinedstorage:quartz_enriched_iron" } }, "result": { - "item": "refinedstorage:storage_disk", - "data": 3 + "item": "refinedstorage:64k_storage_disk" } } \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/recipes/64k_storage_disk_from_storage_housing.json b/src/main/resources/data/refinedstorage/recipes/64k_storage_disk_from_storage_housing.json similarity index 57% rename from src/main/resources/assets/refinedstorage/recipes/64k_storage_disk_from_storage_housing.json rename to src/main/resources/data/refinedstorage/recipes/64k_storage_disk_from_storage_housing.json index 92328a07d..ddf9f3a28 100644 --- a/src/main/resources/assets/refinedstorage/recipes/64k_storage_disk_from_storage_housing.json +++ b/src/main/resources/data/refinedstorage/recipes/64k_storage_disk_from_storage_housing.json @@ -5,12 +5,10 @@ "item": "refinedstorage:storage_housing" }, { - "item": "refinedstorage:storage_part", - "data": 3 + "item": "refinedstorage:64k_storage_part" } ], "result": { - "item": "refinedstorage:storage_disk", - "data": 3 + "item": "refinedstorage:64k_storage_disk" } } \ No newline at end of file