Add the Wireless Grid
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
- Port to Minecraft 1.14 (raoulvdberge)
|
- Port to Minecraft 1.14 (raoulvdberge)
|
||||||
- Removed the Reader and Writer (raoulvdberge)
|
- Removed the Reader and Writer (raoulvdberge)
|
||||||
- Removed covers (raoulvdberge)
|
- Removed covers (raoulvdberge)
|
||||||
|
- When binding a network item to a network you can now bind to any network block, not only the Controller (raoulvdberge)
|
||||||
|
|
||||||
### 1.6.16
|
### 1.6.16
|
||||||
- Updated Russian translation (Bytegm)
|
- Updated Russian translation (Bytegm)
|
||||||
|
@@ -21,6 +21,7 @@ import net.minecraft.inventory.container.Slot;
|
|||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraftforge.client.event.ModelBakeEvent;
|
import net.minecraftforge.client.event.ModelBakeEvent;
|
||||||
import net.minecraftforge.client.model.ModelLoader;
|
import net.minecraftforge.client.model.ModelLoader;
|
||||||
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||||
@@ -112,6 +113,8 @@ public class ClientSetup {
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onClientSetup(FMLClientSetupEvent e) {
|
public void onClientSetup(FMLClientSetupEvent e) {
|
||||||
|
MinecraftForge.EVENT_BUS.register(new KeyInputListener());
|
||||||
|
|
||||||
ScreenManager.registerFactory(RSContainers.FILTER, FilterScreen::new);
|
ScreenManager.registerFactory(RSContainers.FILTER, FilterScreen::new);
|
||||||
ScreenManager.registerFactory(RSContainers.CONTROLLER, ControllerScreen::new);
|
ScreenManager.registerFactory(RSContainers.CONTROLLER, ControllerScreen::new);
|
||||||
ScreenManager.registerFactory(RSContainers.DISK_DRIVE, DiskDriveScreen::new);
|
ScreenManager.registerFactory(RSContainers.DISK_DRIVE, DiskDriveScreen::new);
|
||||||
@@ -130,6 +133,7 @@ public class ClientSetup {
|
|||||||
ScreenManager.registerFactory(RSContainers.WIRELESS_TRANSMITTER, WirelessTransmitterScreen::new);
|
ScreenManager.registerFactory(RSContainers.WIRELESS_TRANSMITTER, WirelessTransmitterScreen::new);
|
||||||
ScreenManager.registerFactory(RSContainers.STORAGE_MONITOR, StorageMonitorScreen::new);
|
ScreenManager.registerFactory(RSContainers.STORAGE_MONITOR, StorageMonitorScreen::new);
|
||||||
|
|
||||||
|
ClientRegistry.registerKeyBinding(RSKeyBindings.OPEN_WIRELESS_GRID);
|
||||||
ClientRegistry.registerKeyBinding(RSKeyBindings.FOCUS_SEARCH_BAR);
|
ClientRegistry.registerKeyBinding(RSKeyBindings.FOCUS_SEARCH_BAR);
|
||||||
ClientRegistry.registerKeyBinding(RSKeyBindings.CLEAR_GRID_CRAFTING_MATRIX);
|
ClientRegistry.registerKeyBinding(RSKeyBindings.CLEAR_GRID_CRAFTING_MATRIX);
|
||||||
|
|
||||||
|
@@ -8,6 +8,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.API;
|
|||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkListener;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkListener;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeListener;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeListener;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.factory.GridBlockGridFactory;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.factory.GridBlockGridFactory;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.factory.WirelessGridGridFactory;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.*;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.*;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.DiskDriveNetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.DiskDriveNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.FluidStorageNetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.FluidStorageNetworkNode;
|
||||||
@@ -130,6 +131,7 @@ public final class RS {
|
|||||||
API.instance().getNetworkNodeRegistry().add(StorageMonitorNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new StorageMonitorNetworkNode(world, pos)));
|
API.instance().getNetworkNodeRegistry().add(StorageMonitorNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new StorageMonitorNetworkNode(world, pos)));
|
||||||
|
|
||||||
API.instance().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory());
|
API.instance().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory());
|
||||||
|
API.instance().getGridManager().add(WirelessGridGridFactory.ID, new WirelessGridGridFactory());
|
||||||
|
|
||||||
API.instance().addExternalStorageProvider(StorageType.ITEM, new ItemExternalStorageProvider());
|
API.instance().addExternalStorageProvider(StorageType.ITEM, new ItemExternalStorageProvider());
|
||||||
API.instance().addExternalStorageProvider(StorageType.FLUID, new FluidExternalStorageProvider());
|
API.instance().addExternalStorageProvider(StorageType.FLUID, new FluidExternalStorageProvider());
|
||||||
@@ -326,6 +328,9 @@ public final class RS {
|
|||||||
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.FLUID_INTERFACE));
|
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.FLUID_INTERFACE));
|
||||||
e.getRegistry().register(new WirelessTransmitterBlockItem());
|
e.getRegistry().register(new WirelessTransmitterBlockItem());
|
||||||
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.STORAGE_MONITOR));
|
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.STORAGE_MONITOR));
|
||||||
|
|
||||||
|
e.getRegistry().register(new WirelessGridItem(WirelessGridItem.Type.NORMAL));
|
||||||
|
e.getRegistry().register(new WirelessGridItem(WirelessGridItem.Type.CREATIVE));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO
|
/* TODO
|
||||||
|
@@ -4,10 +4,6 @@ import com.raoulvdberge.refinedstorage.item.*;
|
|||||||
import net.minecraftforge.registries.ObjectHolder;
|
import net.minecraftforge.registries.ObjectHolder;
|
||||||
|
|
||||||
public final class RSItems {
|
public final class RSItems {
|
||||||
public static final ItemWirelessGrid WIRELESS_GRID = null;
|
|
||||||
public static final ItemWirelessFluidGrid WIRELESS_FLUID_GRID = null;
|
|
||||||
public static final ItemWirelessCraftingMonitor WIRELESS_CRAFTING_MONITOR = null;
|
|
||||||
|
|
||||||
@ObjectHolder(RS.ID + ":quartz_enriched_iron")
|
@ObjectHolder(RS.ID + ":quartz_enriched_iron")
|
||||||
public static final QuartzEnrichedIronItem QUARTZ_ENRICHED_IRON = null;
|
public static final QuartzEnrichedIronItem QUARTZ_ENRICHED_IRON = null;
|
||||||
@ObjectHolder(RS.ID + ":silicon")
|
@ObjectHolder(RS.ID + ":silicon")
|
||||||
@@ -26,26 +22,22 @@ public final class RSItems {
|
|||||||
public static final NetworkCardItem NETWORK_CARD = null;
|
public static final NetworkCardItem NETWORK_CARD = null;
|
||||||
@ObjectHolder(RS.ID + ":security_card")
|
@ObjectHolder(RS.ID + ":security_card")
|
||||||
public static final SecurityCardItem SECURITY_CARD = null;
|
public static final SecurityCardItem SECURITY_CARD = null;
|
||||||
|
|
||||||
@ObjectHolder(RS.ID + ":construction_core")
|
@ObjectHolder(RS.ID + ":construction_core")
|
||||||
public static final CoreItem CONSTRUCTION_CORE = null;
|
public static final CoreItem CONSTRUCTION_CORE = null;
|
||||||
@ObjectHolder(RS.ID + ":destruction_core")
|
@ObjectHolder(RS.ID + ":destruction_core")
|
||||||
public static final CoreItem DESTRUCTION_CORE = null;
|
public static final CoreItem DESTRUCTION_CORE = null;
|
||||||
|
|
||||||
@ObjectHolder(RS.ID + ":raw_basic_processor")
|
@ObjectHolder(RS.ID + ":raw_basic_processor")
|
||||||
public static final ProcessorItem RAW_BASIC_PROCESSOR = null;
|
public static final ProcessorItem RAW_BASIC_PROCESSOR = null;
|
||||||
@ObjectHolder(RS.ID + ":raw_improved_processor")
|
@ObjectHolder(RS.ID + ":raw_improved_processor")
|
||||||
public static final ProcessorItem RAW_IMPROVED_PROCESSOR = null;
|
public static final ProcessorItem RAW_IMPROVED_PROCESSOR = null;
|
||||||
@ObjectHolder(RS.ID + ":raw_advanced_processor")
|
@ObjectHolder(RS.ID + ":raw_advanced_processor")
|
||||||
public static final ProcessorItem RAW_ADVANCED_PROCESSOR = null;
|
public static final ProcessorItem RAW_ADVANCED_PROCESSOR = null;
|
||||||
|
|
||||||
@ObjectHolder(RS.ID + ":basic_processor")
|
@ObjectHolder(RS.ID + ":basic_processor")
|
||||||
public static final ProcessorItem BASIC_PROCESSOR = null;
|
public static final ProcessorItem BASIC_PROCESSOR = null;
|
||||||
@ObjectHolder(RS.ID + ":improved_processor")
|
@ObjectHolder(RS.ID + ":improved_processor")
|
||||||
public static final ProcessorItem IMPROVED_PROCESSOR = null;
|
public static final ProcessorItem IMPROVED_PROCESSOR = null;
|
||||||
@ObjectHolder(RS.ID + ":advanced_processor")
|
@ObjectHolder(RS.ID + ":advanced_processor")
|
||||||
public static final ProcessorItem ADVANCED_PROCESSOR = null;
|
public static final ProcessorItem ADVANCED_PROCESSOR = null;
|
||||||
|
|
||||||
@ObjectHolder(RS.ID + ":upgrade")
|
@ObjectHolder(RS.ID + ":upgrade")
|
||||||
public static final UpgradeItem UPGRADE = null;
|
public static final UpgradeItem UPGRADE = null;
|
||||||
@ObjectHolder(RS.ID + ":speed_upgrade")
|
@ObjectHolder(RS.ID + ":speed_upgrade")
|
||||||
@@ -64,7 +56,10 @@ public final class RSItems {
|
|||||||
public static final UpgradeItem FORTUNE_2_UPGRADE = null;
|
public static final UpgradeItem FORTUNE_2_UPGRADE = null;
|
||||||
@ObjectHolder(RS.ID + ":fortune_3_upgrade")
|
@ObjectHolder(RS.ID + ":fortune_3_upgrade")
|
||||||
public static final UpgradeItem FORTUNE_3_UPGRADE = null;
|
public static final UpgradeItem FORTUNE_3_UPGRADE = null;
|
||||||
|
@ObjectHolder(RS.ID + ":wireless_grid")
|
||||||
|
public static final WirelessGridItem WIRELESS_GRID = null;
|
||||||
|
@ObjectHolder(RS.ID + ":creative_wireless_grid")
|
||||||
|
public static final WirelessGridItem CREATIVE_WIRELESS_GRID = null;
|
||||||
@ObjectHolder(RS.ID + ":1k_storage_part")
|
@ObjectHolder(RS.ID + ":1k_storage_part")
|
||||||
public static final StoragePartItem ONE_K_STORAGE_PART = null;
|
public static final StoragePartItem ONE_K_STORAGE_PART = null;
|
||||||
@ObjectHolder(RS.ID + ":4k_storage_part")
|
@ObjectHolder(RS.ID + ":4k_storage_part")
|
||||||
@@ -73,7 +68,6 @@ public final class RSItems {
|
|||||||
public static final StoragePartItem SIXTEEN_K_STORAGE_PART = null;
|
public static final StoragePartItem SIXTEEN_K_STORAGE_PART = null;
|
||||||
@ObjectHolder(RS.ID + ":64k_storage_part")
|
@ObjectHolder(RS.ID + ":64k_storage_part")
|
||||||
public static final StoragePartItem SIXTY_FOUR_K_STORAGE_PART = null;
|
public static final StoragePartItem SIXTY_FOUR_K_STORAGE_PART = null;
|
||||||
|
|
||||||
@ObjectHolder(RS.ID + ":1k_storage_disk")
|
@ObjectHolder(RS.ID + ":1k_storage_disk")
|
||||||
public static final StorageDiskItem ONE_K_STORAGE_DISK = null;
|
public static final StorageDiskItem ONE_K_STORAGE_DISK = null;
|
||||||
@ObjectHolder(RS.ID + ":4k_storage_disk")
|
@ObjectHolder(RS.ID + ":4k_storage_disk")
|
||||||
@@ -84,7 +78,6 @@ public final class RSItems {
|
|||||||
public static final StorageDiskItem SIXTY_FOUR_K_STORAGE_DISK = null;
|
public static final StorageDiskItem SIXTY_FOUR_K_STORAGE_DISK = null;
|
||||||
@ObjectHolder(RS.ID + ":creative_storage_disk")
|
@ObjectHolder(RS.ID + ":creative_storage_disk")
|
||||||
public static final StorageDiskItem CREATIVE_STORAGE_DISK = null;
|
public static final StorageDiskItem CREATIVE_STORAGE_DISK = null;
|
||||||
|
|
||||||
@ObjectHolder(RS.ID + ":64k_fluid_storage_part")
|
@ObjectHolder(RS.ID + ":64k_fluid_storage_part")
|
||||||
public static final FluidStoragePartItem SIXTY_FOUR_K_FLUID_STORAGE_PART = null;
|
public static final FluidStoragePartItem SIXTY_FOUR_K_FLUID_STORAGE_PART = null;
|
||||||
@ObjectHolder(RS.ID + ":256k_fluid_storage_part")
|
@ObjectHolder(RS.ID + ":256k_fluid_storage_part")
|
||||||
@@ -93,7 +86,6 @@ public final class RSItems {
|
|||||||
public static final FluidStoragePartItem THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_PART = null;
|
public static final FluidStoragePartItem THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_PART = null;
|
||||||
@ObjectHolder(RS.ID + ":4096k_fluid_storage_part")
|
@ObjectHolder(RS.ID + ":4096k_fluid_storage_part")
|
||||||
public static final FluidStoragePartItem FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_PART = null;
|
public static final FluidStoragePartItem FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_PART = null;
|
||||||
|
|
||||||
@ObjectHolder(RS.ID + ":64k_fluid_storage_disk")
|
@ObjectHolder(RS.ID + ":64k_fluid_storage_disk")
|
||||||
public static final FluidStorageDiskItem SIXTY_FOUR_K_FLUID_STORAGE_DISK = null;
|
public static final FluidStorageDiskItem SIXTY_FOUR_K_FLUID_STORAGE_DISK = null;
|
||||||
@ObjectHolder(RS.ID + ":256k_fluid_storage_disk")
|
@ObjectHolder(RS.ID + ":256k_fluid_storage_disk")
|
||||||
@@ -104,4 +96,7 @@ public final class RSItems {
|
|||||||
public static final FluidStorageDiskItem FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_DISK = null;
|
public static final FluidStorageDiskItem FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_DISK = null;
|
||||||
@ObjectHolder(RS.ID + ":creative_fluid_storage_disk")
|
@ObjectHolder(RS.ID + ":creative_fluid_storage_disk")
|
||||||
public static final FluidStorageDiskItem CREATIVE_FLUID_STORAGE_DISK = null;
|
public static final FluidStorageDiskItem CREATIVE_FLUID_STORAGE_DISK = null;
|
||||||
|
|
||||||
|
public static final ItemWirelessFluidGrid WIRELESS_FLUID_GRID = null;
|
||||||
|
public static final ItemWirelessCraftingMonitor WIRELESS_CRAFTING_MONITOR = null;
|
||||||
}
|
}
|
||||||
|
@@ -8,18 +8,23 @@ import org.lwjgl.glfw.GLFW;
|
|||||||
|
|
||||||
public final class RSKeyBindings {
|
public final class RSKeyBindings {
|
||||||
/*
|
/*
|
||||||
public static final KeyBinding OPEN_WIRELESS_GRID = new KeyBinding("key.refinedstorage.openWirelessGrid", KeyConflictContext.IN_GAME, 0, "Refined Storage");
|
|
||||||
public static final KeyBinding OPEN_WIRELESS_FLUID_GRID = new KeyBinding("key.refinedstorage.openWirelessFluidGrid", KeyConflictContext.IN_GAME, 0, "Refined Storage");
|
public static final KeyBinding OPEN_WIRELESS_FLUID_GRID = new KeyBinding("key.refinedstorage.openWirelessFluidGrid", KeyConflictContext.IN_GAME, 0, "Refined Storage");
|
||||||
public static final KeyBinding OPEN_PORTABLE_GRID = new KeyBinding("key.refinedstorage.openPortableGrid", KeyConflictContext.IN_GAME, 0, "Refined Storage");
|
public static final KeyBinding OPEN_PORTABLE_GRID = new KeyBinding("key.refinedstorage.openPortableGrid", KeyConflictContext.IN_GAME, 0, "Refined Storage");
|
||||||
public static final KeyBinding OPEN_WIRELESS_CRAFTING_MONITOR = new KeyBinding("key.refinedstorage.openWirelessCraftingMonitor", KeyConflictContext.IN_GAME, 0, "Refined Storage");
|
public static final KeyBinding OPEN_WIRELESS_CRAFTING_MONITOR = new KeyBinding("key.refinedstorage.openWirelessCraftingMonitor", KeyConflictContext.IN_GAME, 0, "Refined Storage");
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
ClientRegistry.registerKeyBinding(OPEN_WIRELESS_GRID);
|
|
||||||
ClientRegistry.registerKeyBinding(OPEN_WIRELESS_FLUID_GRID);
|
ClientRegistry.registerKeyBinding(OPEN_WIRELESS_FLUID_GRID);
|
||||||
ClientRegistry.registerKeyBinding(OPEN_PORTABLE_GRID);
|
ClientRegistry.registerKeyBinding(OPEN_PORTABLE_GRID);
|
||||||
ClientRegistry.registerKeyBinding(OPEN_WIRELESS_CRAFTING_MONITOR);
|
ClientRegistry.registerKeyBinding(OPEN_WIRELESS_CRAFTING_MONITOR);
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
public static final KeyBinding OPEN_WIRELESS_GRID = new KeyBinding(
|
||||||
|
"key.refinedstorage.openWirelessGrid",
|
||||||
|
KeyConflictContext.IN_GAME,
|
||||||
|
InputMappings.INPUT_INVALID,
|
||||||
|
"Refined Storage"
|
||||||
|
);
|
||||||
|
|
||||||
public static final KeyBinding FOCUS_SEARCH_BAR = new KeyBinding(
|
public static final KeyBinding FOCUS_SEARCH_BAR = new KeyBinding(
|
||||||
"key.refinedstorage.focusSearchBar",
|
"key.refinedstorage.focusSearchBar",
|
||||||
KeyConflictContext.GUI,
|
KeyConflictContext.GUI,
|
||||||
|
@@ -11,14 +11,6 @@ public class RSOldConfig {
|
|||||||
public int diskManipulatorUsage;
|
public int diskManipulatorUsage;
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
//region Wireless Grid
|
|
||||||
public boolean wirelessGridUsesEnergy;
|
|
||||||
public int wirelessGridCapacity;
|
|
||||||
public int wirelessGridOpenUsage;
|
|
||||||
public int wirelessGridExtractUsage;
|
|
||||||
public int wirelessGridInsertUsage;
|
|
||||||
//endregion
|
|
||||||
|
|
||||||
//region Portable Grid
|
//region Portable Grid
|
||||||
public boolean portableGridUsesEnergy;
|
public boolean portableGridUsesEnergy;
|
||||||
public int portableGridCapacity;
|
public int portableGridCapacity;
|
||||||
@@ -49,7 +41,6 @@ public class RSOldConfig {
|
|||||||
|
|
||||||
//region Categories
|
//region Categories
|
||||||
private static final String ENERGY = "energy";
|
private static final String ENERGY = "energy";
|
||||||
private static final String WIRELESS_GRID = "wirelessGrid";
|
|
||||||
private static final String PORTABLE_GRID = "portableGrid";
|
private static final String PORTABLE_GRID = "portableGrid";
|
||||||
private static final String WIRELESS_FLUID_GRID = "wirelessFluidGrid";
|
private static final String WIRELESS_FLUID_GRID = "wirelessFluidGrid";
|
||||||
private static final String WIRELESS_CRAFTING_MONITOR = "wirelessCraftingMonitor";
|
private static final String WIRELESS_CRAFTING_MONITOR = "wirelessCraftingMonitor";
|
||||||
@@ -67,14 +58,6 @@ public class RSOldConfig {
|
|||||||
diskManipulatorUsage = config.getInt("diskManipulator", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Disk Manipulators");
|
diskManipulatorUsage = config.getInt("diskManipulator", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Disk Manipulators");
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
//region Wireless Grid
|
|
||||||
wirelessGridUsesEnergy = config.getBoolean("usesEnergy", WIRELESS_GRID, true, "Whether the Wireless Grid uses energy");
|
|
||||||
wirelessGridCapacity = config.getInt("capacity", WIRELESS_GRID, 3200, 0, Integer.MAX_VALUE, "The energy capacity of the Wireless Grid");
|
|
||||||
wirelessGridOpenUsage = config.getInt("open", WIRELESS_GRID, 30, 0, Integer.MAX_VALUE, "The energy used by the Wireless Grid to open");
|
|
||||||
wirelessGridInsertUsage = config.getInt("insert", WIRELESS_GRID, 3, 0, Integer.MAX_VALUE, "The energy used by the Wireless Grid to insert items");
|
|
||||||
wirelessGridExtractUsage = config.getInt("extract", WIRELESS_GRID, 3, 0, Integer.MAX_VALUE, "The energy used by the Wireless Grid to extract items");
|
|
||||||
//endregion
|
|
||||||
|
|
||||||
//region Portable Grid
|
//region Portable Grid
|
||||||
portableGridUsesEnergy = config.getBoolean("usesEnergy", PORTABLE_GRID, true, "Whether the Portable Grid uses energy");
|
portableGridUsesEnergy = config.getBoolean("usesEnergy", PORTABLE_GRID, true, "Whether the Portable Grid uses energy");
|
||||||
portableGridCapacity = config.getInt("capacity", PORTABLE_GRID, 3200, 0, Integer.MAX_VALUE, "The energy capacity of the Portable Grid");
|
portableGridCapacity = config.getInt("capacity", PORTABLE_GRID, 3200, 0, Integer.MAX_VALUE, "The energy capacity of the Portable Grid");
|
||||||
|
@@ -3,7 +3,7 @@ package com.raoulvdberge.refinedstorage.api.network;
|
|||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
|
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
|
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.security.ISecurityManager;
|
import com.raoulvdberge.refinedstorage.api.network.security.ISecurityManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.IStorage;
|
import com.raoulvdberge.refinedstorage.api.storage.IStorage;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.cache.IStorageCache;
|
import com.raoulvdberge.refinedstorage.api.storage.cache.IStorageCache;
|
||||||
@@ -80,9 +80,9 @@ public interface INetwork {
|
|||||||
IFluidGridHandler getFluidGridHandler();
|
IFluidGridHandler getFluidGridHandler();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the {@link INetworkItemHandler} of this network
|
* @return the {@link INetworkItemManager} of this network
|
||||||
*/
|
*/
|
||||||
INetworkItemHandler getNetworkItemHandler();
|
INetworkItemManager getNetworkItemManager();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the {@link IStorageCache<ItemStack>} of this network
|
* @return the {@link IStorageCache<ItemStack>} of this network
|
||||||
|
@@ -15,7 +15,7 @@ public interface ICraftingGridBehavior {
|
|||||||
* @param recipe the recipe
|
* @param recipe the recipe
|
||||||
* @param player the player
|
* @param player the player
|
||||||
*/
|
*/
|
||||||
void onCrafted(IGridNetworkAware grid, ICraftingRecipe recipe, PlayerEntity player);
|
void onCrafted(INetworkAwareGrid grid, ICraftingRecipe recipe, PlayerEntity player);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logic for crafting with shift click (mass crafting).
|
* Logic for crafting with shift click (mass crafting).
|
||||||
@@ -23,7 +23,7 @@ public interface ICraftingGridBehavior {
|
|||||||
* @param grid the grid
|
* @param grid the grid
|
||||||
* @param player the player
|
* @param player the player
|
||||||
*/
|
*/
|
||||||
void onCraftedShift(IGridNetworkAware grid, PlayerEntity player);
|
void onCraftedShift(INetworkAwareGrid grid, PlayerEntity player);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logic for when a recipe is transferred to the grid.
|
* Logic for when a recipe is transferred to the grid.
|
||||||
@@ -32,5 +32,5 @@ public interface ICraftingGridBehavior {
|
|||||||
* @param player the player
|
* @param player the player
|
||||||
* @param recipe the recipe
|
* @param recipe the recipe
|
||||||
*/
|
*/
|
||||||
void onRecipeTransfer(IGridNetworkAware grid, PlayerEntity player, ItemStack[][] recipe);
|
void onRecipeTransfer(INetworkAwareGrid grid, PlayerEntity player, ItemStack[][] recipe);
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,7 @@ import javax.annotation.Nullable;
|
|||||||
/**
|
/**
|
||||||
* A grid that knows about a network.
|
* A grid that knows about a network.
|
||||||
*/
|
*/
|
||||||
public interface IGridNetworkAware extends IGrid {
|
public interface INetworkAwareGrid extends IGrid {
|
||||||
/**
|
/**
|
||||||
* @return the network, or null if no network is available
|
* @return the network, or null if no network is available
|
||||||
*/
|
*/
|
@@ -9,7 +9,7 @@ import javax.annotation.Nullable;
|
|||||||
* This is the handler for network items of a network.
|
* This is the handler for network items of a network.
|
||||||
* It stores which player is currently using what network item.
|
* It stores which player is currently using what network item.
|
||||||
*/
|
*/
|
||||||
public interface INetworkItemHandler {
|
public interface INetworkItemManager {
|
||||||
/**
|
/**
|
||||||
* Called when a player opens a network item.
|
* Called when a player opens a network item.
|
||||||
*
|
*
|
@@ -18,5 +18,5 @@ public interface INetworkItemProvider {
|
|||||||
* @return the network item
|
* @return the network item
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
@Nonnull
|
||||||
INetworkItem provide(INetworkItemHandler handler, PlayerEntity player, ItemStack stack);
|
INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack);
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,7 @@ import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraph;
|
|||||||
import com.raoulvdberge.refinedstorage.api.network.NetworkType;
|
import com.raoulvdberge.refinedstorage.api.network.NetworkType;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
|
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
|
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.security.ISecurityManager;
|
import com.raoulvdberge.refinedstorage.api.network.security.ISecurityManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
|
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
|
||||||
@@ -20,7 +20,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.API;
|
|||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.FluidGridHandler;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.FluidGridHandler;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.ItemGridHandler;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.ItemGridHandler;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemManager;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.RootNetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.RootNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.security.SecurityManager;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.security.SecurityManager;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.cache.FluidStorageCache;
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.cache.FluidStorageCache;
|
||||||
@@ -55,7 +55,7 @@ public class Network implements INetwork, IRedstoneConfigurable {
|
|||||||
|
|
||||||
private final IItemGridHandler itemGridHandler = new ItemGridHandler(this);
|
private final IItemGridHandler itemGridHandler = new ItemGridHandler(this);
|
||||||
private final IFluidGridHandler fluidGridHandler = new FluidGridHandler(this);
|
private final IFluidGridHandler fluidGridHandler = new FluidGridHandler(this);
|
||||||
private final INetworkItemHandler networkItemHandler = new NetworkItemHandler(this);
|
private final INetworkItemManager networkItemManager = new NetworkItemManager(this);
|
||||||
private final INetworkNodeGraph nodeGraph = new NetworkNodeGraph(this);
|
private final INetworkNodeGraph nodeGraph = new NetworkNodeGraph(this);
|
||||||
private final ICraftingManager craftingManager = new CraftingManager(this);
|
private final ICraftingManager craftingManager = new CraftingManager(this);
|
||||||
private final ISecurityManager securityManager = new SecurityManager(this);
|
private final ISecurityManager securityManager = new SecurityManager(this);
|
||||||
@@ -179,8 +179,8 @@ public class Network implements INetwork, IRedstoneConfigurable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public INetworkItemHandler getNetworkItemHandler() {
|
public INetworkItemManager getNetworkItemManager() {
|
||||||
return networkItemHandler;
|
return networkItemManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -3,7 +3,7 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.grid;
|
|||||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
|
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.ICraftingGridBehavior;
|
import com.raoulvdberge.refinedstorage.api.network.grid.ICraftingGridBehavior;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGridNetworkAware;
|
import com.raoulvdberge.refinedstorage.api.network.grid.INetworkAwareGrid;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||||
import com.raoulvdberge.refinedstorage.api.util.Action;
|
import com.raoulvdberge.refinedstorage.api.util.Action;
|
||||||
import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
||||||
@@ -22,7 +22,7 @@ import java.util.List;
|
|||||||
|
|
||||||
public class CraftingGridBehavior implements ICraftingGridBehavior {
|
public class CraftingGridBehavior implements ICraftingGridBehavior {
|
||||||
@Override
|
@Override
|
||||||
public void onCrafted(IGridNetworkAware grid, ICraftingRecipe recipe, PlayerEntity player) {
|
public void onCrafted(INetworkAwareGrid grid, ICraftingRecipe recipe, PlayerEntity player) {
|
||||||
NonNullList<ItemStack> remainder = recipe.getRemainingItems(grid.getCraftingMatrix());
|
NonNullList<ItemStack> remainder = recipe.getRemainingItems(grid.getCraftingMatrix());
|
||||||
|
|
||||||
INetwork network = grid.getNetwork();
|
INetwork network = grid.getNetwork();
|
||||||
@@ -68,7 +68,7 @@ public class CraftingGridBehavior implements ICraftingGridBehavior {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCraftedShift(IGridNetworkAware grid, PlayerEntity player) {
|
public void onCraftedShift(INetworkAwareGrid grid, PlayerEntity player) {
|
||||||
List<ItemStack> craftedItemsList = new ArrayList<>();
|
List<ItemStack> craftedItemsList = new ArrayList<>();
|
||||||
int amountCrafted = 0;
|
int amountCrafted = 0;
|
||||||
ItemStack crafted = grid.getCraftingResult().getStackInSlot(0);
|
ItemStack crafted = grid.getCraftingResult().getStackInSlot(0);
|
||||||
@@ -102,7 +102,7 @@ public class CraftingGridBehavior implements ICraftingGridBehavior {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRecipeTransfer(IGridNetworkAware grid, PlayerEntity player, ItemStack[][] recipe) {
|
public void onRecipeTransfer(INetworkAwareGrid grid, PlayerEntity player, ItemStack[][] recipe) {
|
||||||
INetwork network = grid.getNetwork();
|
INetwork network = grid.getNetwork();
|
||||||
|
|
||||||
if (network != null && grid.getGridType() == GridType.CRAFTING && !network.getSecurityManager().hasPermission(Permission.EXTRACT, player)) {
|
if (network != null && grid.getGridType() == GridType.CRAFTING && !network.getSecurityManager().hasPermission(Permission.EXTRACT, player)) {
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.raoulvdberge.refinedstorage.apiimpl.network.grid.factory;
|
package com.raoulvdberge.refinedstorage.apiimpl.network.grid.factory;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridFactoryType;
|
import com.raoulvdberge.refinedstorage.api.network.grid.GridFactoryType;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGridFactory;
|
import com.raoulvdberge.refinedstorage.api.network.grid.IGridFactory;
|
||||||
@@ -7,16 +8,19 @@ import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
|
|||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
public class WirelessGridGridFactory implements IGridFactory {
|
public class WirelessGridGridFactory implements IGridFactory {
|
||||||
|
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "wireless_grid");
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IGrid createFromStack(PlayerEntity player, ItemStack stack) {
|
public IGrid createFromStack(PlayerEntity player, ItemStack stack) {
|
||||||
return new WirelessGrid(stack);
|
return new WirelessGrid(stack, player.getServer());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@@ -100,7 +100,7 @@ public class ItemGridHandler implements IItemGridHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridExtractUsage);
|
network.getNetworkItemManager().drainEnergy(player, RS.SERVER_CONFIG.getWirelessGrid().getExtractUsage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ public class ItemGridHandler implements IItemGridHandler {
|
|||||||
|
|
||||||
ItemStack remainder = network.insertItem(stack, stack.getCount(), Action.PERFORM);
|
ItemStack remainder = network.insertItem(stack, stack.getCount(), Action.PERFORM);
|
||||||
|
|
||||||
// TODO network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridInsertUsage);
|
network.getNetworkItemManager().drainEnergy(player, RS.SERVER_CONFIG.getWirelessGrid().getInsertUsage());
|
||||||
|
|
||||||
return remainder;
|
return remainder;
|
||||||
}
|
}
|
||||||
@@ -143,7 +143,7 @@ public class ItemGridHandler implements IItemGridHandler {
|
|||||||
|
|
||||||
player.updateHeldItem();
|
player.updateHeldItem();
|
||||||
|
|
||||||
// TODO network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridInsertUsage);
|
network.getNetworkItemManager().drainEnergy(player, RS.SERVER_CONFIG.getWirelessGrid().getInsertUsage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -229,6 +229,6 @@ public class ItemGridHandler implements IItemGridHandler {
|
|||||||
|
|
||||||
network.getCraftingManager().cancel(id);
|
network.getCraftingManager().cancel(id);
|
||||||
|
|
||||||
network.getNetworkItemHandler().drainEnergy(player, id == null ? RS.INSTANCE.config.wirelessCraftingMonitorCancelAllUsage : RS.INSTANCE.config.wirelessCraftingMonitorCancelUsage);
|
network.getNetworkItemManager().drainEnergy(player, id == null ? RS.INSTANCE.config.wirelessCraftingMonitorCancelAllUsage : RS.INSTANCE.config.wirelessCraftingMonitorCancelUsage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -3,7 +3,7 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.item;
|
|||||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.IWirelessTransmitter;
|
import com.raoulvdberge.refinedstorage.api.network.IWirelessTransmitter;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemProvider;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemProvider;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
@@ -13,11 +13,11 @@ import net.minecraft.util.text.TranslationTextComponent;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
public class NetworkItemHandler implements INetworkItemHandler {
|
public class NetworkItemManager implements INetworkItemManager {
|
||||||
private INetwork network;
|
private final INetwork network;
|
||||||
private Map<PlayerEntity, INetworkItem> items = new ConcurrentHashMap<>();
|
private final Map<PlayerEntity, INetworkItem> items = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
public NetworkItemHandler(INetwork network) {
|
public NetworkItemManager(INetwork network) {
|
||||||
this.network = network;
|
this.network = network;
|
||||||
}
|
}
|
||||||
|
|
@@ -3,7 +3,7 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.item;
|
|||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||||
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
@@ -12,12 +12,12 @@ import net.minecraftforge.energy.CapabilityEnergy;
|
|||||||
import net.minecraftforge.energy.IEnergyStorage;
|
import net.minecraftforge.energy.IEnergyStorage;
|
||||||
|
|
||||||
public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
|
public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
|
||||||
private INetworkItemHandler handler;
|
private INetworkItemManager handler;
|
||||||
private PlayerEntity player;
|
private PlayerEntity player;
|
||||||
private ItemStack stack;
|
private ItemStack stack;
|
||||||
private int invIndex;
|
private int invIndex;
|
||||||
|
|
||||||
public NetworkItemWirelessCraftingMonitor(INetworkItemHandler handler, PlayerEntity player, ItemStack stack, int invIndex) {
|
public NetworkItemWirelessCraftingMonitor(INetworkItemManager handler, PlayerEntity player, ItemStack stack, int invIndex) {
|
||||||
this.handler = handler;
|
this.handler = handler;
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.stack = stack;
|
this.stack = stack;
|
||||||
|
@@ -3,7 +3,7 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.item;
|
|||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||||
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
@@ -12,11 +12,11 @@ import net.minecraftforge.energy.CapabilityEnergy;
|
|||||||
import net.minecraftforge.energy.IEnergyStorage;
|
import net.minecraftforge.energy.IEnergyStorage;
|
||||||
|
|
||||||
public class NetworkItemWirelessFluidGrid implements INetworkItem {
|
public class NetworkItemWirelessFluidGrid implements INetworkItem {
|
||||||
private INetworkItemHandler handler;
|
private INetworkItemManager handler;
|
||||||
private PlayerEntity player;
|
private PlayerEntity player;
|
||||||
private ItemStack stack;
|
private ItemStack stack;
|
||||||
|
|
||||||
public NetworkItemWirelessFluidGrid(INetworkItemHandler handler, PlayerEntity player, ItemStack stack) {
|
public NetworkItemWirelessFluidGrid(INetworkItemManager handler, PlayerEntity player, ItemStack stack) {
|
||||||
this.handler = handler;
|
this.handler = handler;
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.stack = stack;
|
this.stack = stack;
|
||||||
|
@@ -3,20 +3,24 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.item;
|
|||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.factory.WirelessGridGridFactory;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.WirelessGridItem;
|
||||||
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.energy.CapabilityEnergy;
|
import net.minecraftforge.energy.CapabilityEnergy;
|
||||||
import net.minecraftforge.energy.IEnergyStorage;
|
import net.minecraftforge.energy.IEnergyStorage;
|
||||||
|
|
||||||
public class NetworkItemWirelessGrid implements INetworkItem {
|
public class WirelessGridNetworkItem implements INetworkItem {
|
||||||
private INetworkItemHandler handler;
|
private INetworkItemManager handler;
|
||||||
private PlayerEntity player;
|
private PlayerEntity player;
|
||||||
private ItemStack stack;
|
private ItemStack stack;
|
||||||
|
|
||||||
public NetworkItemWirelessGrid(INetworkItemHandler handler, PlayerEntity player, ItemStack stack) {
|
public WirelessGridNetworkItem(INetworkItemManager handler, PlayerEntity player, ItemStack stack) {
|
||||||
this.handler = handler;
|
this.handler = handler;
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.stack = stack;
|
this.stack = stack;
|
||||||
@@ -31,7 +35,10 @@ public class NetworkItemWirelessGrid implements INetworkItem {
|
|||||||
public boolean onOpen(INetwork network) {
|
public boolean onOpen(INetwork network) {
|
||||||
IEnergyStorage energy = stack.getCapability(CapabilityEnergy.ENERGY, null).orElse(null);
|
IEnergyStorage energy = stack.getCapability(CapabilityEnergy.ENERGY, null).orElse(null);
|
||||||
|
|
||||||
if (RS.INSTANCE.config.wirelessGridUsesEnergy /* TODO && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE */ && energy != null && energy.getEnergyStored() <= RS.INSTANCE.config.wirelessGridOpenUsage) {
|
if (RS.SERVER_CONFIG.getWirelessGrid().getUseEnergy() &&
|
||||||
|
((WirelessGridItem) stack.getItem()).getType() != WirelessGridItem.Type.CREATIVE &&
|
||||||
|
energy != null &&
|
||||||
|
energy.getEnergyStored() <= RS.SERVER_CONFIG.getWirelessGrid().getOpenUsage()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,18 +48,17 @@ public class NetworkItemWirelessGrid implements INetworkItem {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO API.instance().getGridManager().openGrid(WirelessGrid.ID, (ServerPlayerEntity) player, stack);
|
API.instance().getGridManager().openGrid(WirelessGridGridFactory.ID, (ServerPlayerEntity) player, stack);
|
||||||
|
|
||||||
drainEnergy(RS.INSTANCE.config.wirelessGridOpenUsage);
|
drainEnergy(RS.SERVER_CONFIG.getWirelessGrid().getOpenUsage());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drainEnergy(int energy) {
|
public void drainEnergy(int energy) {
|
||||||
if (RS.INSTANCE.config.wirelessGridUsesEnergy /* TODO && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE*/) {
|
if (RS.SERVER_CONFIG.getWirelessGrid().getUseEnergy() && ((WirelessGridItem) stack.getItem()).getType() != WirelessGridItem.Type.CREATIVE) {
|
||||||
stack.getCapability(CapabilityEnergy.ENERGY, null).ifPresent(energyStorage -> {
|
stack.getCapability(CapabilityEnergy.ENERGY).ifPresent(energyStorage -> {
|
||||||
|
|
||||||
energyStorage.extractEnergy(energy, false);
|
energyStorage.extractEnergy(energy, false);
|
||||||
|
|
||||||
if (energyStorage.getEnergyStored() <= 0) {
|
if (energyStorage.getEnergyStored() <= 0) {
|
@@ -56,7 +56,7 @@ import java.util.HashSet;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class GridNetworkNode extends NetworkNode implements IGridNetworkAware, IType {
|
public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, IType {
|
||||||
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "grid");
|
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "grid");
|
||||||
public static final ResourceLocation CRAFTING_ID = new ResourceLocation(RS.ID, "crafting_grid");
|
public static final ResourceLocation CRAFTING_ID = new ResourceLocation(RS.ID, "crafting_grid");
|
||||||
public static final ResourceLocation PATTERN_ID = new ResourceLocation(RS.ID, "pattern_grid");
|
public static final ResourceLocation PATTERN_ID = new ResourceLocation(RS.ID, "pattern_grid");
|
||||||
|
@@ -25,6 +25,7 @@ public class ServerConfig {
|
|||||||
private FluidInterface fluidInterface;
|
private FluidInterface fluidInterface;
|
||||||
private WirelessTransmitter wirelessTransmitter;
|
private WirelessTransmitter wirelessTransmitter;
|
||||||
private StorageMonitor storageMonitor;
|
private StorageMonitor storageMonitor;
|
||||||
|
private WirelessGrid wirelessGrid;
|
||||||
|
|
||||||
public ServerConfig() {
|
public ServerConfig() {
|
||||||
upgrades = new Upgrades();
|
upgrades = new Upgrades();
|
||||||
@@ -46,6 +47,7 @@ public class ServerConfig {
|
|||||||
fluidInterface = new FluidInterface();
|
fluidInterface = new FluidInterface();
|
||||||
wirelessTransmitter = new WirelessTransmitter();
|
wirelessTransmitter = new WirelessTransmitter();
|
||||||
storageMonitor = new StorageMonitor();
|
storageMonitor = new StorageMonitor();
|
||||||
|
wirelessGrid = new WirelessGrid();
|
||||||
|
|
||||||
spec = builder.build();
|
spec = builder.build();
|
||||||
}
|
}
|
||||||
@@ -126,27 +128,39 @@ public class ServerConfig {
|
|||||||
return storageMonitor;
|
return storageMonitor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WirelessGrid getWirelessGrid() {
|
||||||
|
return wirelessGrid;
|
||||||
|
}
|
||||||
|
|
||||||
public ForgeConfigSpec getSpec() {
|
public ForgeConfigSpec getSpec() {
|
||||||
return spec;
|
return spec;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Controller {
|
public class Controller {
|
||||||
|
private final ForgeConfigSpec.BooleanValue useEnergy;
|
||||||
|
private final ForgeConfigSpec.IntValue capacity;
|
||||||
private final ForgeConfigSpec.IntValue baseUsage;
|
private final ForgeConfigSpec.IntValue baseUsage;
|
||||||
private final ForgeConfigSpec.IntValue maxTransfer;
|
private final ForgeConfigSpec.IntValue maxTransfer;
|
||||||
private final ForgeConfigSpec.IntValue capacity;
|
|
||||||
private final ForgeConfigSpec.BooleanValue useEnergy;
|
|
||||||
|
|
||||||
public Controller() {
|
public Controller() {
|
||||||
builder.push("controller");
|
builder.push("controller");
|
||||||
|
|
||||||
|
useEnergy = builder.comment("Whether the Controller uses energy").define("useEnergy", true);
|
||||||
|
capacity = builder.comment("The energy capacity of the Controller").defineInRange("capacity", 32000, 0, Integer.MAX_VALUE);
|
||||||
baseUsage = builder.comment("The base energy used by the Controller").defineInRange("baseUsage", 0, 0, Integer.MAX_VALUE);
|
baseUsage = builder.comment("The base energy used by the Controller").defineInRange("baseUsage", 0, 0, Integer.MAX_VALUE);
|
||||||
maxTransfer = builder.comment("The maximum energy that the Controller can receive").defineInRange("maxTransfer", Integer.MAX_VALUE, 0, Integer.MAX_VALUE);
|
maxTransfer = builder.comment("The maximum energy that the Controller can receive").defineInRange("maxTransfer", Integer.MAX_VALUE, 0, Integer.MAX_VALUE);
|
||||||
capacity = builder.comment("The energy capacity of the Controller").defineInRange("capacity", 32000, 0, Integer.MAX_VALUE);
|
|
||||||
useEnergy = builder.comment("Whether the Controller uses energy").define("useEnergy", true);
|
|
||||||
|
|
||||||
builder.pop();
|
builder.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean getUseEnergy() {
|
||||||
|
return useEnergy.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCapacity() {
|
||||||
|
return capacity.get();
|
||||||
|
}
|
||||||
|
|
||||||
public int getBaseUsage() {
|
public int getBaseUsage() {
|
||||||
return baseUsage.get();
|
return baseUsage.get();
|
||||||
}
|
}
|
||||||
@@ -154,14 +168,6 @@ public class ServerConfig {
|
|||||||
public int getMaxTransfer() {
|
public int getMaxTransfer() {
|
||||||
return maxTransfer.get();
|
return maxTransfer.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getCapacity() {
|
|
||||||
return capacity.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean getUseEnergy() {
|
|
||||||
return useEnergy.get();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Cable {
|
public class Cable {
|
||||||
@@ -583,4 +589,44 @@ public class ServerConfig {
|
|||||||
return usage.get();
|
return usage.get();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class WirelessGrid {
|
||||||
|
private final ForgeConfigSpec.BooleanValue useEnergy;
|
||||||
|
private final ForgeConfigSpec.IntValue capacity;
|
||||||
|
private final ForgeConfigSpec.IntValue openUsage;
|
||||||
|
private final ForgeConfigSpec.IntValue extractUsage;
|
||||||
|
private final ForgeConfigSpec.IntValue insertUsage;
|
||||||
|
|
||||||
|
public WirelessGrid() {
|
||||||
|
builder.push("wirelessGrid");
|
||||||
|
|
||||||
|
useEnergy = builder.comment("Whether the Wireless Grid uses energy").define("useEnergy", true);
|
||||||
|
capacity = builder.comment("The energy capacity of the Wireless Grid").defineInRange("capacity", 3200, 0, Integer.MAX_VALUE);
|
||||||
|
openUsage = builder.comment("The energy used by the Wireless Grid to open").defineInRange("openUsage", 30, 0, Integer.MAX_VALUE);
|
||||||
|
extractUsage = builder.comment("The energy used by the Wireless Grid to extract items").defineInRange("extractUsage", 5, 0, Integer.MAX_VALUE);
|
||||||
|
insertUsage = builder.comment("The energy used by the Wireless Grid to insert items").defineInRange("insertUsage", 5, 0, Integer.MAX_VALUE);
|
||||||
|
|
||||||
|
builder.pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getUseEnergy() {
|
||||||
|
return useEnergy.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCapacity() {
|
||||||
|
return capacity.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getOpenUsage() {
|
||||||
|
return openUsage.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getExtractUsage() {
|
||||||
|
return extractUsage.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getInsertUsage() {
|
||||||
|
return insertUsage.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,29 +2,47 @@ package com.raoulvdberge.refinedstorage.energy;
|
|||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
import net.minecraftforge.common.util.INBTSerializable;
|
|
||||||
import net.minecraftforge.energy.EnergyStorage;
|
import net.minecraftforge.energy.EnergyStorage;
|
||||||
|
|
||||||
public class ItemEnergyStorage extends EnergyStorage implements INBTSerializable<CompoundNBT> {
|
public class ItemEnergyStorage extends EnergyStorage {
|
||||||
private static final String NBT_ENERGY = "Energy";
|
private static final String NBT_ENERGY = "Energy";
|
||||||
|
|
||||||
|
private ItemStack stack;
|
||||||
|
|
||||||
public ItemEnergyStorage(ItemStack stack, int capacity) {
|
public ItemEnergyStorage(ItemStack stack, int capacity) {
|
||||||
super(capacity, Integer.MAX_VALUE, Integer.MAX_VALUE);
|
super(capacity, Integer.MAX_VALUE, Integer.MAX_VALUE);
|
||||||
|
|
||||||
|
this.stack = stack;
|
||||||
this.energy = stack.hasTag() && stack.getTag().contains(NBT_ENERGY) ? stack.getTag().getInt(NBT_ENERGY) : 0;
|
this.energy = stack.hasTag() && stack.getTag().contains(NBT_ENERGY) ? stack.getTag().getInt(NBT_ENERGY) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CompoundNBT serializeNBT() {
|
public int receiveEnergy(int maxReceive, boolean simulate) {
|
||||||
CompoundNBT tag = new CompoundNBT();
|
int received = super.receiveEnergy(maxReceive, simulate);
|
||||||
|
|
||||||
tag.putInt(NBT_ENERGY, getEnergyStored());
|
if (received > 0 && !simulate) {
|
||||||
|
if (!stack.hasTag()) {
|
||||||
|
stack.setTag(new CompoundNBT());
|
||||||
|
}
|
||||||
|
|
||||||
return tag;
|
stack.getTag().putInt(NBT_ENERGY, getEnergyStored());
|
||||||
|
}
|
||||||
|
|
||||||
|
return received;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deserializeNBT(CompoundNBT tag) {
|
public int extractEnergy(int maxExtract, boolean simulate) {
|
||||||
this.energy = tag.getInt(NBT_ENERGY);
|
int extracted = super.extractEnergy(maxExtract, simulate);
|
||||||
|
|
||||||
|
if (extracted > 0 && !simulate) {
|
||||||
|
if (!stack.hasTag()) {
|
||||||
|
stack.setTag(new CompoundNBT());
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.getTag().putInt(NBT_ENERGY, getEnergyStored());
|
||||||
|
}
|
||||||
|
|
||||||
|
return extracted;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -17,12 +17,13 @@ import net.minecraftforge.energy.IEnergyStorage;
|
|||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public abstract class EnergyItem extends Item {
|
public abstract class EnergyItem extends Item {
|
||||||
private final int energyCapacity;
|
private final Supplier<Integer> energyCapacity;
|
||||||
private final boolean creative;
|
private final boolean creative;
|
||||||
|
|
||||||
public EnergyItem(Item.Properties properties, boolean creative, int energyCapacity) {
|
public EnergyItem(Item.Properties properties, boolean creative, Supplier<Integer> energyCapacity) {
|
||||||
super(properties);
|
super(properties);
|
||||||
|
|
||||||
this.creative = creative;
|
this.creative = creative;
|
||||||
@@ -31,7 +32,7 @@ public abstract class EnergyItem extends Item {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ICapabilityProvider initCapabilities(ItemStack stack, CompoundNBT tag) {
|
public ICapabilityProvider initCapabilities(ItemStack stack, CompoundNBT tag) {
|
||||||
return new EnergyCapabilityProvider(stack, energyCapacity);
|
return new EnergyCapabilityProvider(stack, energyCapacity.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -1,23 +1,24 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemManager;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class ItemWirelessCraftingMonitor extends NetworkItem {
|
public class ItemWirelessCraftingMonitor extends NetworkItem {
|
||||||
public static final String NBT_TAB_SELECTED = "TabSelected";
|
public static final String NBT_TAB_SELECTED = "TabSelected";
|
||||||
public static final String NBT_TAB_PAGE = "TabPage";
|
public static final String NBT_TAB_PAGE = "TabPage";
|
||||||
|
|
||||||
public ItemWirelessCraftingMonitor(Properties item, boolean creative, int energyCapacity) {
|
public ItemWirelessCraftingMonitor(Properties item, boolean creative, Supplier<Integer> energyCapacity) {
|
||||||
super(item, creative, energyCapacity);
|
super(item, creative, energyCapacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public INetworkItem provide(INetworkItemHandler handler, PlayerEntity player, ItemStack stack) {
|
public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,20 +1,21 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemManager;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class ItemWirelessFluidGrid extends NetworkItem {
|
public class ItemWirelessFluidGrid extends NetworkItem {
|
||||||
public ItemWirelessFluidGrid(Properties item, boolean creative, int energyCapacity) {
|
public ItemWirelessFluidGrid(Properties item, boolean creative, Supplier<Integer> energyCapacity) {
|
||||||
super(item, creative, energyCapacity);
|
super(item, creative, energyCapacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public INetworkItem provide(INetworkItemHandler handler, PlayerEntity player, ItemStack stack) {
|
public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
/* TODO
|
/* TODO
|
||||||
|
@@ -1,61 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
public class ItemWirelessGrid extends NetworkItem {
|
|
||||||
public ItemWirelessGrid(Properties item, boolean creative, int energyCapacity) {
|
|
||||||
super(item, creative, energyCapacity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
|
||||||
public INetworkItem provide(INetworkItemHandler handler, PlayerEntity player, ItemStack stack) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TODO
|
|
||||||
@Override
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public void registerModels(IModelRegistration modelRegistration) {
|
|
||||||
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nonnull
|
|
||||||
public INetworkItem provide(INetworkItemHandler handler, PlayerEntity player, ItemStack stack) {
|
|
||||||
return new NetworkItemWirelessGrid(handler, player, stack);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getViewType(ItemStack stack) {
|
|
||||||
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_VIEW_TYPE)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_VIEW_TYPE) : IGrid.VIEW_TYPE_NORMAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getSortingType(ItemStack stack) {
|
|
||||||
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_SORTING_TYPE)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_SORTING_TYPE) : IGrid.SORTING_TYPE_QUANTITY;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getSortingDirection(ItemStack stack) {
|
|
||||||
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_SORTING_DIRECTION)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_SORTING_DIRECTION) : IGrid.SORTING_DIRECTION_DESCENDING;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getSearchBoxMode(ItemStack stack) {
|
|
||||||
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_SEARCH_BOX_MODE)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_SEARCH_BOX_MODE) : IGrid.SEARCH_BOX_MODE_NORMAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getTabSelected(ItemStack stack) {
|
|
||||||
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_TAB_SELECTED)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_TAB_SELECTED) : -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getTabPage(ItemStack stack) {
|
|
||||||
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_TAB_PAGE)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_TAB_PAGE) : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getSize(ItemStack stack) {
|
|
||||||
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NetworkNodeGrid.NBT_SIZE)) ? stack.getTagCompound().getInteger(NetworkNodeGrid.NBT_SIZE) : IGrid.SIZE_STRETCH;
|
|
||||||
}*/
|
|
||||||
}
|
|
@@ -1,9 +1,9 @@
|
|||||||
package com.raoulvdberge.refinedstorage.item;
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemProvider;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemProvider;
|
||||||
import net.minecraft.block.Block;
|
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
|
||||||
|
import com.raoulvdberge.refinedstorage.capability.NetworkNodeProxyCapability;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
@@ -28,14 +28,15 @@ import net.minecraftforge.common.DimensionManager;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public abstract class NetworkItem extends EnergyItem implements INetworkItemProvider {
|
public abstract class NetworkItem extends EnergyItem implements INetworkItemProvider {
|
||||||
private static final String NBT_CONTROLLER_X = "ControllerX";
|
private static final String NBT_NODE_X = "NodeX";
|
||||||
private static final String NBT_CONTROLLER_Y = "ControllerY";
|
private static final String NBT_NODE_Y = "NodeY";
|
||||||
private static final String NBT_CONTROLLER_Z = "ControllerZ";
|
private static final String NBT_NODE_Z = "NodeZ";
|
||||||
private static final String NBT_DIMENSION = "Dimension";
|
private static final String NBT_DIMENSION = "Dimension";
|
||||||
|
|
||||||
public NetworkItem(Item.Properties item, boolean creative, int energyCapacity) {
|
public NetworkItem(Item.Properties item, boolean creative, Supplier<Integer> energyCapacity) {
|
||||||
super(item, creative, energyCapacity);
|
super(item, creative, energyCapacity);
|
||||||
|
|
||||||
addPropertyOverride(new ResourceLocation("connected"), (stack, world, entity) -> (entity != null && isValid(stack)) ? 1.0f : 0.0f);
|
addPropertyOverride(new ResourceLocation("connected"), (stack, world, entity) -> (entity != null && isValid(stack)) ? 1.0f : 0.0f);
|
||||||
@@ -46,26 +47,51 @@ public abstract class NetworkItem extends EnergyItem implements INetworkItemProv
|
|||||||
ItemStack stack = player.getHeldItem(hand);
|
ItemStack stack = player.getHeldItem(hand);
|
||||||
|
|
||||||
if (!world.isRemote) {
|
if (!world.isRemote) {
|
||||||
applyNetwork(world.getServer(), stack, n -> n.getNetworkItemHandler().open(player, player.getHeldItem(hand)), player::sendMessage);
|
applyNetwork(world.getServer(), stack, n -> n.getNetworkItemManager().open(player, player.getHeldItem(hand)), player::sendMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ActionResult.newResult(ActionResultType.SUCCESS, stack);
|
return ActionResult.newResult(ActionResultType.SUCCESS, stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void applyNetwork(MinecraftServer server, ItemStack stack, Consumer<INetwork> onNetwork, Consumer<ITextComponent> onError) {
|
public void applyNetwork(MinecraftServer server, ItemStack stack, Consumer<INetwork> onNetwork, Consumer<ITextComponent> onError) {
|
||||||
|
TranslationTextComponent notFound = new TranslationTextComponent("misc.refinedstorage.network_item.not_found");
|
||||||
|
|
||||||
if (!isValid(stack)) {
|
if (!isValid(stack)) {
|
||||||
onError.accept(new TranslationTextComponent("misc.refinedstorage.network_item.not_found"));
|
onError.accept(notFound);
|
||||||
} else {
|
return;
|
||||||
World networkWorld = DimensionManager.getWorld(server, getDimension(stack), true, true);
|
|
||||||
|
|
||||||
TileEntity network;
|
|
||||||
|
|
||||||
if (networkWorld != null && ((network = networkWorld.getTileEntity(new BlockPos(getX(stack), getY(stack), getZ(stack)))) instanceof INetwork)) {
|
|
||||||
onNetwork.accept((INetwork) network);
|
|
||||||
} else {
|
|
||||||
onError.accept(new TranslationTextComponent("misc.refinedstorage.network_item.not_found"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DimensionType dimension = getDimension(stack);
|
||||||
|
if (dimension == null) {
|
||||||
|
onError.accept(notFound);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
World nodeWorld = DimensionManager.getWorld(server, dimension, true, true);
|
||||||
|
if (nodeWorld == null) {
|
||||||
|
onError.accept(notFound);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
TileEntity node = nodeWorld.getTileEntity(new BlockPos(getX(stack), getY(stack), getZ(stack)));
|
||||||
|
if (node == null) {
|
||||||
|
onError.accept(notFound);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
INetworkNodeProxy proxy = node.getCapability(NetworkNodeProxyCapability.NETWORK_NODE_PROXY_CAPABILITY).orElse(null);
|
||||||
|
if (proxy == null) {
|
||||||
|
onError.accept(notFound);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
INetwork network = proxy.getNode().getNetwork();
|
||||||
|
if (network == null) {
|
||||||
|
onError.accept(notFound);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
onNetwork.accept(network);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -81,24 +107,31 @@ public abstract class NetworkItem extends EnergyItem implements INetworkItemProv
|
|||||||
public ActionResultType onItemUse(ItemUseContext ctx) {
|
public ActionResultType onItemUse(ItemUseContext ctx) {
|
||||||
ItemStack stack = ctx.getPlayer().getHeldItem(ctx.getHand());
|
ItemStack stack = ctx.getPlayer().getHeldItem(ctx.getHand());
|
||||||
|
|
||||||
Block block = ctx.getWorld().getBlockState(ctx.getPos()).getBlock();
|
TileEntity tile = ctx.getWorld().getTileEntity(ctx.getPos());
|
||||||
|
if (tile != null) {
|
||||||
|
INetworkNodeProxy proxy = tile.getCapability(NetworkNodeProxyCapability.NETWORK_NODE_PROXY_CAPABILITY).orElse(null);
|
||||||
|
|
||||||
if (block == RSBlocks.CONTROLLER) {
|
if (proxy != null) {
|
||||||
|
INetwork network = proxy.getNode().getNetwork();
|
||||||
|
|
||||||
|
if (network != null) {
|
||||||
CompoundNBT tag = stack.getTag();
|
CompoundNBT tag = stack.getTag();
|
||||||
|
|
||||||
if (tag == null) {
|
if (tag == null) {
|
||||||
tag = new CompoundNBT();
|
tag = new CompoundNBT();
|
||||||
}
|
}
|
||||||
|
|
||||||
tag.putInt(NBT_CONTROLLER_X, ctx.getPos().getX());
|
tag.putInt(NBT_NODE_X, network.getPosition().getX());
|
||||||
tag.putInt(NBT_CONTROLLER_Y, ctx.getPos().getY());
|
tag.putInt(NBT_NODE_Y, network.getPosition().getY());
|
||||||
tag.putInt(NBT_CONTROLLER_Z, ctx.getPos().getZ());
|
tag.putInt(NBT_NODE_Z, network.getPosition().getZ());
|
||||||
tag.putString(NBT_DIMENSION, DimensionType.getKey(ctx.getWorld().getDimension().getType()).toString());
|
tag.putString(NBT_DIMENSION, DimensionType.getKey(ctx.getWorld().getDimension().getType()).toString());
|
||||||
|
|
||||||
stack.setTag(tag);
|
stack.setTag(tag);
|
||||||
|
|
||||||
return ActionResultType.SUCCESS;
|
return ActionResultType.SUCCESS;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ActionResultType.PASS;
|
return ActionResultType.PASS;
|
||||||
}
|
}
|
||||||
@@ -118,15 +151,15 @@ public abstract class NetworkItem extends EnergyItem implements INetworkItemProv
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static int getX(ItemStack stack) {
|
public static int getX(ItemStack stack) {
|
||||||
return stack.getTag().getInt(NBT_CONTROLLER_X);
|
return stack.getTag().getInt(NBT_NODE_X);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getY(ItemStack stack) {
|
public static int getY(ItemStack stack) {
|
||||||
return stack.getTag().getInt(NBT_CONTROLLER_Y);
|
return stack.getTag().getInt(NBT_NODE_Y);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getZ(ItemStack stack) {
|
public static int getZ(ItemStack stack) {
|
||||||
return stack.getTag().getInt(NBT_CONTROLLER_Z);
|
return stack.getTag().getInt(NBT_NODE_Z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -136,9 +169,9 @@ public abstract class NetworkItem extends EnergyItem implements INetworkItemProv
|
|||||||
|
|
||||||
public boolean isValid(ItemStack stack) {
|
public boolean isValid(ItemStack stack) {
|
||||||
return stack.hasTag()
|
return stack.hasTag()
|
||||||
&& stack.getTag().contains(NBT_CONTROLLER_X)
|
&& stack.getTag().contains(NBT_NODE_X)
|
||||||
&& stack.getTag().contains(NBT_CONTROLLER_Y)
|
&& stack.getTag().contains(NBT_NODE_Y)
|
||||||
&& stack.getTag().contains(NBT_CONTROLLER_Z)
|
&& stack.getTag().contains(NBT_NODE_Z)
|
||||||
&& stack.getTag().contains(NBT_DIMENSION);
|
&& stack.getTag().contains(NBT_DIMENSION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,68 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.item;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemManager;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.item.WirelessGridNetworkItem;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.GridNetworkNode;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
public class WirelessGridItem extends NetworkItem {
|
||||||
|
public enum Type {
|
||||||
|
NORMAL,
|
||||||
|
CREATIVE
|
||||||
|
}
|
||||||
|
|
||||||
|
private final Type type;
|
||||||
|
|
||||||
|
public WirelessGridItem(Type type) {
|
||||||
|
super(new Item.Properties().group(RS.MAIN_GROUP).maxStackSize(1), type == Type.CREATIVE, () -> RS.SERVER_CONFIG.getWirelessGrid().getCapacity());
|
||||||
|
|
||||||
|
this.type = type;
|
||||||
|
|
||||||
|
this.setRegistryName(RS.ID, (type == Type.CREATIVE ? "creative_" : "") + "wireless_grid");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Type getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nonnull
|
||||||
|
public INetworkItem provide(INetworkItemManager handler, PlayerEntity player, ItemStack stack) {
|
||||||
|
return new WirelessGridNetworkItem(handler, player, stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getViewType(ItemStack stack) {
|
||||||
|
return (stack.hasTag() && stack.getTag().contains(GridNetworkNode.NBT_VIEW_TYPE)) ? stack.getTag().getInt(GridNetworkNode.NBT_VIEW_TYPE) : IGrid.VIEW_TYPE_NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getSortingType(ItemStack stack) {
|
||||||
|
return (stack.hasTag() && stack.getTag().contains(GridNetworkNode.NBT_SORTING_TYPE)) ? stack.getTag().getInt(GridNetworkNode.NBT_SORTING_TYPE) : IGrid.SORTING_TYPE_QUANTITY;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getSortingDirection(ItemStack stack) {
|
||||||
|
return (stack.hasTag() && stack.getTag().contains(GridNetworkNode.NBT_SORTING_DIRECTION)) ? stack.getTag().getInt(GridNetworkNode.NBT_SORTING_DIRECTION) : IGrid.SORTING_DIRECTION_DESCENDING;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getSearchBoxMode(ItemStack stack) {
|
||||||
|
return (stack.hasTag() && stack.getTag().contains(GridNetworkNode.NBT_SEARCH_BOX_MODE)) ? stack.getTag().getInt(GridNetworkNode.NBT_SEARCH_BOX_MODE) : IGrid.SEARCH_BOX_MODE_NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getTabSelected(ItemStack stack) {
|
||||||
|
return (stack.hasTag() && stack.getTag().contains(GridNetworkNode.NBT_TAB_SELECTED)) ? stack.getTag().getInt(GridNetworkNode.NBT_TAB_SELECTED) : -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getTabPage(ItemStack stack) {
|
||||||
|
return (stack.hasTag() && stack.getTag().contains(GridNetworkNode.NBT_TAB_PAGE)) ? stack.getTag().getInt(GridNetworkNode.NBT_TAB_PAGE) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getSize(ItemStack stack) {
|
||||||
|
return (stack.hasTag() && stack.getTag().contains(GridNetworkNode.NBT_SIZE)) ? stack.getTag().getInt(GridNetworkNode.NBT_SIZE) : IGrid.SIZE_STRETCH;
|
||||||
|
}
|
||||||
|
}
|
@@ -1,95 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.network;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
|
|
||||||
import com.raoulvdberge.refinedstorage.container.GridContainer;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
|
|
||||||
import io.netty.buffer.ByteBuf;
|
|
||||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
|
||||||
|
|
||||||
public class MessageGridSettingsUpdate extends MessageHandlerPlayerToServer<MessageGridSettingsUpdate> implements IMessage {
|
|
||||||
private int viewType;
|
|
||||||
private int sortingDirection;
|
|
||||||
private int sortingType;
|
|
||||||
private int searchBoxMode;
|
|
||||||
private int size;
|
|
||||||
private int tabSelected;
|
|
||||||
private int tabPage;
|
|
||||||
|
|
||||||
public MessageGridSettingsUpdate() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageGridSettingsUpdate(int viewType, int sortingDirection, int sortingType, int searchBoxMode, int size, int tabSelected, int tabPage) {
|
|
||||||
this.viewType = viewType;
|
|
||||||
this.sortingDirection = sortingDirection;
|
|
||||||
this.sortingType = sortingType;
|
|
||||||
this.searchBoxMode = searchBoxMode;
|
|
||||||
this.size = size;
|
|
||||||
this.tabSelected = tabSelected;
|
|
||||||
this.tabPage = tabPage;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes(ByteBuf buf) {
|
|
||||||
viewType = buf.readInt();
|
|
||||||
sortingDirection = buf.readInt();
|
|
||||||
sortingType = buf.readInt();
|
|
||||||
searchBoxMode = buf.readInt();
|
|
||||||
size = buf.readInt();
|
|
||||||
tabSelected = buf.readInt();
|
|
||||||
tabPage = buf.readInt();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void toBytes(ByteBuf buf) {
|
|
||||||
buf.writeInt(viewType);
|
|
||||||
buf.writeInt(sortingDirection);
|
|
||||||
buf.writeInt(sortingType);
|
|
||||||
buf.writeInt(searchBoxMode);
|
|
||||||
buf.writeInt(size);
|
|
||||||
buf.writeInt(tabSelected);
|
|
||||||
buf.writeInt(tabPage);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handle(MessageGridSettingsUpdate message, ServerPlayerEntity player) {
|
|
||||||
if (player.openContainer instanceof ContainerGrid) {
|
|
||||||
IGrid grid = ((ContainerGrid) player.openContainer).getGrid();
|
|
||||||
|
|
||||||
if (grid instanceof WirelessGrid || grid instanceof PortableGrid) {
|
|
||||||
ItemStack stack = grid instanceof WirelessGrid ? ((WirelessGrid) grid).getStack() : ((PortableGrid) grid).getStack();
|
|
||||||
|
|
||||||
if (!stack.hasTagCompound()) {
|
|
||||||
stack.setTagCompound(new CompoundNBT());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IGrid.isValidViewType(message.viewType)) {
|
|
||||||
stack.getTagCompound().putInt(NetworkNodeGrid.NBT_VIEW_TYPE, message.viewType);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IGrid.isValidSortingDirection(message.sortingDirection)) {
|
|
||||||
stack.getTagCompound().putInt(NetworkNodeGrid.NBT_SORTING_DIRECTION, message.sortingDirection);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IGrid.isValidSortingType(message.sortingType)) {
|
|
||||||
stack.getTagCompound().putInt(NetworkNodeGrid.NBT_SORTING_TYPE, message.sortingType);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IGrid.isValidSearchBoxMode(message.searchBoxMode)) {
|
|
||||||
stack.getTagCompound().putInt(NetworkNodeGrid.NBT_SEARCH_BOX_MODE, message.searchBoxMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IGrid.isValidSize(message.size)) {
|
|
||||||
stack.getTagCompound().putInt(NetworkNodeGrid.NBT_SIZE, message.size);
|
|
||||||
}
|
|
||||||
|
|
||||||
stack.getTagCompound().putInt(NetworkNodeGrid.NBT_TAB_SELECTED, message.tabSelected);
|
|
||||||
stack.getTagCompound().putInt(NetworkNodeGrid.NBT_TAB_PAGE, message.tabPage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,43 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.network;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemNetworkItem;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
|
|
||||||
import io.netty.buffer.ByteBuf;
|
|
||||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
|
||||||
import net.minecraft.item.Item;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
|
||||||
|
|
||||||
public class MessageNetworkItemOpen extends MessageHandlerPlayerToServer<MessageNetworkItemOpen> implements IMessage {
|
|
||||||
private int slotId;
|
|
||||||
|
|
||||||
public MessageNetworkItemOpen() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageNetworkItemOpen(int slotId) {
|
|
||||||
this.slotId = slotId;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void handle(MessageNetworkItemOpen message, ServerPlayerEntity player) {
|
|
||||||
ItemStack stack = player.inventory.getStackInSlot(message.slotId);
|
|
||||||
|
|
||||||
if (stack.getItem() instanceof ItemNetworkItem) {
|
|
||||||
((ItemNetworkItem) stack.getItem()).applyNetwork(stack, n -> n.getNetworkItemHandler().open(player, player.inventory.getStackInSlot(message.slotId)), player::sendMessage);
|
|
||||||
} else if (stack.getItem() == Item.getItemFromBlock(RSBlocks.PORTABLE_GRID)) { // @Hack
|
|
||||||
API.instance().getGridManager().openGrid(PortableGrid.ID, player, stack);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes(ByteBuf buf) {
|
|
||||||
slotId = buf.readInt();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void toBytes(ByteBuf buf) {
|
|
||||||
buf.writeInt(slotId);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -46,6 +46,8 @@ public class NetworkHandler {
|
|||||||
handler.registerMessage(id++, GridTransferMessage.class, GridTransferMessage::encode, GridTransferMessage::decode, GridTransferMessage::handle);
|
handler.registerMessage(id++, GridTransferMessage.class, GridTransferMessage::encode, GridTransferMessage::decode, GridTransferMessage::handle);
|
||||||
handler.registerMessage(id++, GridProcessingTransferMessage.class, GridProcessingTransferMessage::encode, GridProcessingTransferMessage::decode, GridProcessingTransferMessage::handle);
|
handler.registerMessage(id++, GridProcessingTransferMessage.class, GridProcessingTransferMessage::encode, GridProcessingTransferMessage::decode, GridProcessingTransferMessage::handle);
|
||||||
handler.registerMessage(id++, SecurityManagerUpdateMessage.class, SecurityManagerUpdateMessage::encode, SecurityManagerUpdateMessage::decode, SecurityManagerUpdateMessage::handle);
|
handler.registerMessage(id++, SecurityManagerUpdateMessage.class, SecurityManagerUpdateMessage::encode, SecurityManagerUpdateMessage::decode, SecurityManagerUpdateMessage::handle);
|
||||||
|
handler.registerMessage(id++, GridSettingsUpdateMessage.class, GridSettingsUpdateMessage::encode, GridSettingsUpdateMessage::decode, GridSettingsUpdateMessage::handle);
|
||||||
|
handler.registerMessage(id++, OpenNetworkItemMessage.class, OpenNetworkItemMessage::encode, OpenNetworkItemMessage::decode, OpenNetworkItemMessage::handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendToServer(Object message) {
|
public void sendToServer(Object message) {
|
||||||
|
@@ -0,0 +1,43 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.network;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.item.NetworkItem;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraftforge.fml.network.NetworkEvent;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class OpenNetworkItemMessage {
|
||||||
|
private int slotId;
|
||||||
|
|
||||||
|
public OpenNetworkItemMessage(int slotId) {
|
||||||
|
this.slotId = slotId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OpenNetworkItemMessage decode(PacketBuffer buf) {
|
||||||
|
return new OpenNetworkItemMessage(buf.readInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void encode(OpenNetworkItemMessage message, PacketBuffer buf) {
|
||||||
|
buf.writeInt(message.slotId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handle(OpenNetworkItemMessage message, Supplier<NetworkEvent.Context> ctx) {
|
||||||
|
PlayerEntity player = ctx.get().getSender();
|
||||||
|
|
||||||
|
if (player != null) {
|
||||||
|
ctx.get().enqueueWork(() -> {
|
||||||
|
ItemStack stack = player.inventory.getStackInSlot(message.slotId);
|
||||||
|
|
||||||
|
if (stack.getItem() instanceof NetworkItem) {
|
||||||
|
((NetworkItem) stack.getItem()).applyNetwork(player.getServer(), stack, n -> n.getNetworkItemManager().open(player, stack), player::sendMessage);
|
||||||
|
}/* TODO else if (stack.getItem() == Item.getItemFromBlock(RSBlocks.PORTABLE_GRID)) { // @Hack
|
||||||
|
API.instance().getGridManager().openGrid(PortableGrid.ID, player, stack);
|
||||||
|
}*/
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.get().setPacketHandled(true);
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,101 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.network.grid;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.GridNetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.GridContainer;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraftforge.fml.network.NetworkEvent;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class GridSettingsUpdateMessage {
|
||||||
|
private int viewType;
|
||||||
|
private int sortingDirection;
|
||||||
|
private int sortingType;
|
||||||
|
private int searchBoxMode;
|
||||||
|
private int size;
|
||||||
|
private int tabSelected;
|
||||||
|
private int tabPage;
|
||||||
|
|
||||||
|
public GridSettingsUpdateMessage(int viewType, int sortingDirection, int sortingType, int searchBoxMode, int size, int tabSelected, int tabPage) {
|
||||||
|
this.viewType = viewType;
|
||||||
|
this.sortingDirection = sortingDirection;
|
||||||
|
this.sortingType = sortingType;
|
||||||
|
this.searchBoxMode = searchBoxMode;
|
||||||
|
this.size = size;
|
||||||
|
this.tabSelected = tabSelected;
|
||||||
|
this.tabPage = tabPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GridSettingsUpdateMessage decode(PacketBuffer buf) {
|
||||||
|
return new GridSettingsUpdateMessage(
|
||||||
|
buf.readInt(),
|
||||||
|
buf.readInt(),
|
||||||
|
buf.readInt(),
|
||||||
|
buf.readInt(),
|
||||||
|
buf.readInt(),
|
||||||
|
buf.readInt(),
|
||||||
|
buf.readInt()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void encode(GridSettingsUpdateMessage message, PacketBuffer buf) {
|
||||||
|
buf.writeInt(message.viewType);
|
||||||
|
buf.writeInt(message.sortingDirection);
|
||||||
|
buf.writeInt(message.sortingType);
|
||||||
|
buf.writeInt(message.searchBoxMode);
|
||||||
|
buf.writeInt(message.size);
|
||||||
|
buf.writeInt(message.tabSelected);
|
||||||
|
buf.writeInt(message.tabPage);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handle(GridSettingsUpdateMessage message, Supplier<NetworkEvent.Context> ctx) {
|
||||||
|
PlayerEntity player = ctx.get().getSender();
|
||||||
|
|
||||||
|
if (player != null) {
|
||||||
|
ctx.get().enqueueWork(() -> {
|
||||||
|
if (player.openContainer instanceof GridContainer) {
|
||||||
|
IGrid grid = ((GridContainer) player.openContainer).getGrid();
|
||||||
|
|
||||||
|
if (grid instanceof WirelessGrid || grid instanceof PortableGrid) {
|
||||||
|
ItemStack stack = grid instanceof WirelessGrid ? ((WirelessGrid) grid).getStack() : ((PortableGrid) grid).getStack();
|
||||||
|
|
||||||
|
if (!stack.hasTag()) {
|
||||||
|
stack.setTag(new CompoundNBT());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IGrid.isValidViewType(message.viewType)) {
|
||||||
|
stack.getTag().putInt(GridNetworkNode.NBT_VIEW_TYPE, message.viewType);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IGrid.isValidSortingDirection(message.sortingDirection)) {
|
||||||
|
stack.getTag().putInt(GridNetworkNode.NBT_SORTING_DIRECTION, message.sortingDirection);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IGrid.isValidSortingType(message.sortingType)) {
|
||||||
|
stack.getTag().putInt(GridNetworkNode.NBT_SORTING_TYPE, message.sortingType);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IGrid.isValidSearchBoxMode(message.searchBoxMode)) {
|
||||||
|
stack.getTag().putInt(GridNetworkNode.NBT_SEARCH_BOX_MODE, message.searchBoxMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IGrid.isValidSize(message.size)) {
|
||||||
|
stack.getTag().putInt(GridNetworkNode.NBT_SIZE, message.size);
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.getTag().putInt(GridNetworkNode.NBT_TAB_SELECTED, message.tabSelected);
|
||||||
|
stack.getTag().putInt(GridNetworkNode.NBT_TAB_PAGE, message.tabPage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.get().setPacketHandled(true);
|
||||||
|
}
|
||||||
|
}
|
@@ -1,21 +1,32 @@
|
|||||||
package com.raoulvdberge.refinedstorage.screen;
|
package com.raoulvdberge.refinedstorage.screen;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
|
import com.raoulvdberge.refinedstorage.RSKeyBindings;
|
||||||
|
import com.raoulvdberge.refinedstorage.network.OpenNetworkItemMessage;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.text.ITextComponent;
|
||||||
|
import net.minecraft.util.text.TranslationTextComponent;
|
||||||
import net.minecraftforge.client.event.InputEvent;
|
import net.minecraftforge.client.event.InputEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class KeyInputListener {
|
public class KeyInputListener {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onKeyInput(InputEvent.KeyInputEvent e) {
|
public void onKeyInput(InputEvent.KeyInputEvent e) {
|
||||||
PlayerInventory inv = Minecraft.getInstance().player.inventory;
|
PlayerInventory inv = Minecraft.getInstance().player.inventory;
|
||||||
|
|
||||||
/*TODO if (RSKeyBindings.OPEN_WIRELESS_GRID.isKeyDown()) {
|
if (RSKeyBindings.OPEN_WIRELESS_GRID.isKeyDown()) {
|
||||||
findAndOpen(inv, RSItems.WIRELESS_GRID);
|
findAndOpen(inv, (error) -> Minecraft.getInstance().player.sendMessage(error), RSItems.WIRELESS_GRID, RSItems.CREATIVE_WIRELESS_GRID);
|
||||||
} else if (RSKeyBindings.OPEN_WIRELESS_FLUID_GRID.isKeyDown()) {
|
}/* TODO else if (RSKeyBindings.OPEN_WIRELESS_FLUID_GRID.isKeyDown()) {
|
||||||
findAndOpen(inv, RSItems.WIRELESS_FLUID_GRID);
|
findAndOpen(inv, RSItems.WIRELESS_FLUID_GRID);
|
||||||
} else if (RSKeyBindings.OPEN_PORTABLE_GRID.isKeyDown()) {
|
} else if (RSKeyBindings.OPEN_PORTABLE_GRID.isKeyDown()) {
|
||||||
findAndOpen(inv, Item.getItemFromBlock(RSBlocks.PORTABLE_GRID));
|
findAndOpen(inv, Item.getItemFromBlock(RSBlocks.PORTABLE_GRID));
|
||||||
@@ -24,15 +35,28 @@ public class KeyInputListener {
|
|||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private void findAndOpen(IInventory inv, Item search) {
|
private void findAndOpen(IInventory inv, Consumer<ITextComponent> onError, Item... items) {
|
||||||
|
Set<Item> validItems = new HashSet<>(Arrays.asList(items));
|
||||||
|
|
||||||
|
int slotFound = -1;
|
||||||
|
|
||||||
for (int i = 0; i < inv.getSizeInventory(); ++i) {
|
for (int i = 0; i < inv.getSizeInventory(); ++i) {
|
||||||
ItemStack slot = inv.getStackInSlot(i);
|
ItemStack slot = inv.getStackInSlot(i);
|
||||||
|
|
||||||
if (slot.getItem() == search) {
|
if (validItems.contains(slot.getItem())) {
|
||||||
// TODO RS.INSTANCE.network.sendToServer(new MessageNetworkItemOpen(i));
|
if (slotFound != -1) {
|
||||||
|
onError.accept(new TranslationTextComponent("misc.refinedstorage.network_item.shortcut_duplicate", new TranslationTextComponent(items[0].getTranslationKey())));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
slotFound = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (slotFound == -1) {
|
||||||
|
onError.accept(new TranslationTextComponent("misc.refinedstorage.network_item.shortcut_not_found", new TranslationTextComponent(items[0].getTranslationKey())));
|
||||||
|
} else {
|
||||||
|
RS.NETWORK_HANDLER.sendToServer(new OpenNetworkItemMessage(slotFound));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -102,7 +102,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
|||||||
INetwork network = getNetwork();
|
INetwork network = getNetwork();
|
||||||
|
|
||||||
if (network != null) {
|
if (network != null) {
|
||||||
network.getNetworkItemHandler().close(player);
|
network.getNetworkItemManager().close(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -30,7 +30,7 @@ import javax.annotation.Nullable;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class WirelessFluidGrid implements IGridNetworkAware {
|
public class WirelessFluidGrid implements INetworkAwareGrid {
|
||||||
public static int ID;
|
public static int ID;
|
||||||
|
|
||||||
private ItemStack stack;
|
private ItemStack stack;
|
||||||
@@ -299,7 +299,7 @@ public class WirelessFluidGrid implements IGridNetworkAware {
|
|||||||
INetwork network = getNetwork();
|
INetwork network = getNetwork();
|
||||||
|
|
||||||
if (network != null) {
|
if (network != null) {
|
||||||
network.getNetworkItemHandler().close(player);
|
network.getNetworkItemManager().close(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,14 +1,19 @@
|
|||||||
package com.raoulvdberge.refinedstorage.tile.grid;
|
package com.raoulvdberge.refinedstorage.tile.grid;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.*;
|
import com.raoulvdberge.refinedstorage.api.network.grid.*;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
|
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
|
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.cache.IStorageCache;
|
import com.raoulvdberge.refinedstorage.api.storage.cache.IStorageCache;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.cache.IStorageCacheListener;
|
import com.raoulvdberge.refinedstorage.api.storage.cache.IStorageCacheListener;
|
||||||
import com.raoulvdberge.refinedstorage.api.util.IFilter;
|
import com.raoulvdberge.refinedstorage.api.util.IFilter;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.cache.listener.ItemGridStorageCacheListener;
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.cache.listener.ItemGridStorageCacheListener;
|
||||||
|
import com.raoulvdberge.refinedstorage.capability.NetworkNodeProxyCapability;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.item.FilterItemHandler;
|
import com.raoulvdberge.refinedstorage.inventory.item.FilterItemHandler;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.WirelessGridItem;
|
||||||
|
import com.raoulvdberge.refinedstorage.network.grid.GridSettingsUpdateMessage;
|
||||||
import com.raoulvdberge.refinedstorage.screen.BaseScreen;
|
import com.raoulvdberge.refinedstorage.screen.BaseScreen;
|
||||||
import com.raoulvdberge.refinedstorage.screen.grid.GridScreen;
|
import com.raoulvdberge.refinedstorage.screen.grid.GridScreen;
|
||||||
import com.raoulvdberge.refinedstorage.util.StackUtils;
|
import com.raoulvdberge.refinedstorage.util.StackUtils;
|
||||||
@@ -18,24 +23,25 @@ import net.minecraft.inventory.CraftResultInventory;
|
|||||||
import net.minecraft.inventory.CraftingInventory;
|
import net.minecraft.inventory.CraftingInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.text.ITextComponent;
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import net.minecraft.util.text.TranslationTextComponent;
|
import net.minecraft.util.text.TranslationTextComponent;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
|
import net.minecraftforge.common.DimensionManager;
|
||||||
import net.minecraftforge.items.IItemHandlerModifiable;
|
import net.minecraftforge.items.IItemHandlerModifiable;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class WirelessGrid implements IGridNetworkAware {
|
public class WirelessGrid implements INetworkAwareGrid {
|
||||||
public static int ID;
|
|
||||||
|
|
||||||
private ItemStack stack;
|
private ItemStack stack;
|
||||||
|
private final MinecraftServer server;
|
||||||
private int networkDimension;
|
private final DimensionType nodeDimension;
|
||||||
private BlockPos network;
|
private final BlockPos nodePos;
|
||||||
|
|
||||||
private int viewType;
|
private int viewType;
|
||||||
private int sortingType;
|
private int sortingType;
|
||||||
@@ -56,19 +62,19 @@ public class WirelessGrid implements IGridNetworkAware {
|
|||||||
StackUtils.writeItems(handler, 0, stack.getTag());
|
StackUtils.writeItems(handler, 0, stack.getTag());
|
||||||
});
|
});
|
||||||
|
|
||||||
public WirelessGrid(ItemStack stack) {
|
public WirelessGrid(ItemStack stack, @Nullable MinecraftServer server) {
|
||||||
/* TODO this.networkDimension = ItemWirelessGrid.getDimensionId(stack);
|
|
||||||
this.network = new BlockPos(ItemWirelessGrid.getX(stack), ItemWirelessGrid.getY(stack), ItemWirelessGrid.getZ(stack));
|
|
||||||
|
|
||||||
this.stack = stack;
|
this.stack = stack;
|
||||||
|
this.server = server;
|
||||||
|
this.nodeDimension = WirelessGridItem.getDimension(stack);
|
||||||
|
this.nodePos = new BlockPos(WirelessGridItem.getX(stack), WirelessGridItem.getY(stack), WirelessGridItem.getZ(stack));
|
||||||
|
|
||||||
this.viewType = ItemWirelessGrid.getViewType(stack);
|
this.viewType = WirelessGridItem.getViewType(stack);
|
||||||
this.sortingType = ItemWirelessGrid.getSortingType(stack);
|
this.sortingType = WirelessGridItem.getSortingType(stack);
|
||||||
this.sortingDirection = ItemWirelessGrid.getSortingDirection(stack);
|
this.sortingDirection = WirelessGridItem.getSortingDirection(stack);
|
||||||
this.searchBoxMode = ItemWirelessGrid.getSearchBoxMode(stack);
|
this.searchBoxMode = WirelessGridItem.getSearchBoxMode(stack);
|
||||||
this.tabSelected = ItemWirelessGrid.getTabSelected(stack);
|
this.tabSelected = WirelessGridItem.getTabSelected(stack);
|
||||||
this.tabPage = ItemWirelessGrid.getTabPage(stack);
|
this.tabPage = WirelessGridItem.getTabPage(stack);
|
||||||
this.size = ItemWirelessGrid.getSize(stack);*/
|
this.size = WirelessGridItem.getSize(stack);
|
||||||
|
|
||||||
if (stack.hasTag()) {
|
if (stack.hasTag()) {
|
||||||
StackUtils.readItems(filter, 0, stack.getTag());
|
StackUtils.readItems(filter, 0, stack.getTag());
|
||||||
@@ -87,13 +93,19 @@ public class WirelessGrid implements IGridNetworkAware {
|
|||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public INetwork getNetwork() {
|
public INetwork getNetwork() {
|
||||||
// TODO World world = DimensionManager.getWorld(networkDimension);
|
World world = DimensionManager.getWorld(server, nodeDimension, true, true);
|
||||||
World world = null;
|
|
||||||
|
|
||||||
if (world != null) {
|
if (world != null) {
|
||||||
TileEntity tile = world.getTileEntity(network);
|
TileEntity tile = world.getTileEntity(nodePos);
|
||||||
|
|
||||||
return tile instanceof INetwork ? (INetwork) tile : null;
|
// TODO Create helper to get INetworkNodeProxy of tile
|
||||||
|
if (tile != null) {
|
||||||
|
INetworkNodeProxy proxy = tile.getCapability(NetworkNodeProxyCapability.NETWORK_NODE_PROXY_CAPABILITY).orElse(null);
|
||||||
|
|
||||||
|
if (proxy != null) {
|
||||||
|
return proxy.getNode().getNetwork();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
@@ -183,7 +195,7 @@ public class WirelessGrid implements IGridNetworkAware {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewTypeChanged(int type) {
|
public void onViewTypeChanged(int type) {
|
||||||
// TODO RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(type, getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), getTabPage()));
|
RS.NETWORK_HANDLER.sendToServer(new GridSettingsUpdateMessage(type, getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.viewType = type;
|
this.viewType = type;
|
||||||
|
|
||||||
@@ -192,7 +204,7 @@ public class WirelessGrid implements IGridNetworkAware {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSortingTypeChanged(int type) {
|
public void onSortingTypeChanged(int type) {
|
||||||
// TODO RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), type, getSearchBoxMode(), getSize(), getTabSelected(), getTabPage()));
|
RS.NETWORK_HANDLER.sendToServer(new GridSettingsUpdateMessage(getViewType(), getSortingDirection(), type, getSearchBoxMode(), getSize(), getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.sortingType = type;
|
this.sortingType = type;
|
||||||
|
|
||||||
@@ -201,7 +213,7 @@ public class WirelessGrid implements IGridNetworkAware {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSortingDirectionChanged(int direction) {
|
public void onSortingDirectionChanged(int direction) {
|
||||||
// TODO RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), direction, getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), getTabPage()));
|
RS.NETWORK_HANDLER.sendToServer(new GridSettingsUpdateMessage(getViewType(), direction, getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.sortingDirection = direction;
|
this.sortingDirection = direction;
|
||||||
|
|
||||||
@@ -210,27 +222,25 @@ public class WirelessGrid implements IGridNetworkAware {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSearchBoxModeChanged(int searchBoxMode) {
|
public void onSearchBoxModeChanged(int searchBoxMode) {
|
||||||
// TODO RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), searchBoxMode, getSize(), getTabSelected(), getTabPage()));
|
RS.NETWORK_HANDLER.sendToServer(new GridSettingsUpdateMessage(getViewType(), getSortingDirection(), getSortingType(), searchBoxMode, getSize(), getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.searchBoxMode = searchBoxMode;
|
this.searchBoxMode = searchBoxMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSizeChanged(int size) {
|
public void onSizeChanged(int size) {
|
||||||
// TODO RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), size, getTabSelected(), getTabPage()));
|
RS.NETWORK_HANDLER.sendToServer(new GridSettingsUpdateMessage(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), size, getTabSelected(), getTabPage()));
|
||||||
|
|
||||||
this.size = size;
|
this.size = size;
|
||||||
|
|
||||||
// TODO if (Minecraft.getMinecraft().currentScreen != null) {
|
BaseScreen.executeLater(GridScreen.class, BaseScreen::init);
|
||||||
// Minecraft.getMinecraft().currentScreen.initGui();
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTabSelectionChanged(int tab) {
|
public void onTabSelectionChanged(int tab) {
|
||||||
this.tabSelected = tab == tabSelected ? -1 : tab;
|
this.tabSelected = tab == tabSelected ? -1 : tab;
|
||||||
|
|
||||||
// TODO RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), tabSelected, getTabPage()));
|
RS.NETWORK_HANDLER.sendToServer(new GridSettingsUpdateMessage(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), tabSelected, getTabPage()));
|
||||||
|
|
||||||
BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort());
|
BaseScreen.executeLater(GridScreen.class, grid -> grid.getView().sort());
|
||||||
}
|
}
|
||||||
@@ -238,7 +248,7 @@ public class WirelessGrid implements IGridNetworkAware {
|
|||||||
@Override
|
@Override
|
||||||
public void onTabPageChanged(int page) {
|
public void onTabPageChanged(int page) {
|
||||||
if (page >= 0 && page <= getTotalTabPages()) {
|
if (page >= 0 && page <= getTotalTabPages()) {
|
||||||
// TODO RS.INSTANCE.network.sendToServer(new MessageGridSettingsUpdate(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), page));
|
RS.NETWORK_HANDLER.sendToServer(new GridSettingsUpdateMessage(getViewType(), getSortingDirection(), getSortingType(), getSearchBoxMode(), getSize(), getTabSelected(), page));
|
||||||
|
|
||||||
this.tabPage = page;
|
this.tabPage = page;
|
||||||
}
|
}
|
||||||
@@ -304,7 +314,7 @@ public class WirelessGrid implements IGridNetworkAware {
|
|||||||
INetwork network = getNetwork();
|
INetwork network = getNetwork();
|
||||||
|
|
||||||
if (network != null) {
|
if (network != null) {
|
||||||
network.getNetworkItemHandler().close(player);
|
network.getNetworkItemManager().close(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -91,7 +91,9 @@
|
|||||||
"misc.refinedstorage.storage.full": "%d%% full",
|
"misc.refinedstorage.storage.full": "%d%% full",
|
||||||
"misc.refinedstorage.network_item.tooltip": "Linked to %d, %d, %d.",
|
"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.out_of_range": "There is no Wireless Transmitter in range.",
|
||||||
"misc.refinedstorage.network_item.not_found": "Controller not found.",
|
"misc.refinedstorage.network_item.not_found": "Network not found.",
|
||||||
|
"misc.refinedstorage.network_item.shortcut_not_found": "There isn't any %s in your inventory.",
|
||||||
|
"misc.refinedstorage.network_item.shortcut_duplicate": "There is more than one %s in your inventory.",
|
||||||
"misc.refinedstorage.network_card.tooltip": "Linked to %d, %d, %d in %s.",
|
"misc.refinedstorage.network_card.tooltip": "Linked to %d, %d, %d in %s.",
|
||||||
"misc.refinedstorage.pattern.inputs": "Inputs",
|
"misc.refinedstorage.pattern.inputs": "Inputs",
|
||||||
"misc.refinedstorage.pattern.outputs": "Outputs",
|
"misc.refinedstorage.pattern.outputs": "Outputs",
|
||||||
@@ -225,8 +227,8 @@
|
|||||||
"item.refinedstorage.1024k_fluid_storage_disk": "1024k 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.4096k_fluid_storage_disk": "4096k Fluid Storage Disk",
|
||||||
"item.refinedstorage.creative_fluid_storage_disk": "Creative Fluid Storage Disk",
|
"item.refinedstorage.creative_fluid_storage_disk": "Creative Fluid Storage Disk",
|
||||||
"item.refinedstorage:wireless_grid.0": "Wireless Grid",
|
"item.refinedstorage.wireless_grid": "Wireless Grid",
|
||||||
"item.refinedstorage:wireless_grid.1": "Creative Wireless Grid",
|
"item.refinedstorage.creative_wireless_grid": "Creative Wireless Grid",
|
||||||
"item.refinedstorage:wireless_fluid_grid.0": "Wireless Fluid Grid",
|
"item.refinedstorage:wireless_fluid_grid.0": "Wireless Fluid Grid",
|
||||||
"item.refinedstorage:wireless_fluid_grid.1": "Creative Wireless Fluid Grid",
|
"item.refinedstorage:wireless_fluid_grid.1": "Creative Wireless Fluid Grid",
|
||||||
"item.refinedstorage:wireless_crafting_monitor.0": "Wireless Crafting Monitor",
|
"item.refinedstorage:wireless_crafting_monitor.0": "Wireless Crafting Monitor",
|
||||||
|
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "refinedstorage:item/wireless_grid_disconnected"
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"predicate": {
|
||||||
|
"connected": 0
|
||||||
|
},
|
||||||
|
"model": "refinedstorage:item/wireless_grid_disconnected"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"predicate": {
|
||||||
|
"connected": 1
|
||||||
|
},
|
||||||
|
"model": "refinedstorage:item/wireless_grid_connected"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@@ -10,18 +10,16 @@
|
|||||||
"item": "refinedstorage:quartz_enriched_iron"
|
"item": "refinedstorage:quartz_enriched_iron"
|
||||||
},
|
},
|
||||||
"P": {
|
"P": {
|
||||||
"item": "minecraft:ender_pearl"
|
"tag": "forge:ender_pearls"
|
||||||
},
|
},
|
||||||
"G": {
|
"G": {
|
||||||
"item": "refinedstorage:grid",
|
"item": "refinedstorage:grid"
|
||||||
"data": 0
|
|
||||||
},
|
},
|
||||||
"A": {
|
"A": {
|
||||||
"item": "#advanced_processor"
|
"item": "refinedstorage:advanced_processor"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"result": {
|
"result": {
|
||||||
"item": "refinedstorage:wireless_grid",
|
"item": "refinedstorage:wireless_grid"
|
||||||
"data": 0
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user