Merge remote-tracking branch 'origin/main'
# Conflicts: # gradle.properties
@@ -24,8 +24,9 @@ import java.util.Arrays;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
public class ServerStorage implements ModInitializer {
 | 
			
		||||
    public static final List<String> moduleList = Arrays.asList("bus", "configuration", "container", "display", "drive", "filtering", "inventory", "pagination", "pcb", "transport");
 | 
			
		||||
    public static final List<String> moduleList = Arrays.asList("bus", "configuration", "container", "display", "drive", "filtering", "inventory", "pagination", "pcb", "transport", "netherite_upgrade");
 | 
			
		||||
    public static final List<String> tiers = Arrays.asList("iron", "golden", "diamond", "netherite");
 | 
			
		||||
    public static final List<String> materialList = Arrays.asList("pcb", "pcb_substrate", "cpu", "cpu_substrate", "drive_controller", "drive_casing");
 | 
			
		||||
 | 
			
		||||
    public static final String MOD_ID = "serverstorage";
 | 
			
		||||
 | 
			
		||||
@@ -45,21 +46,16 @@ public class ServerStorage implements ModInitializer {
 | 
			
		||||
    public static BlockEntityType<InventoryInterfaceBlockEntity> INVENTORY_INTERFACE_BLOCK_ENTITY;
 | 
			
		||||
 | 
			
		||||
    public static final GameRules.Key<GameRules.BooleanRule> ServerStorage_Crafting_Enable =
 | 
			
		||||
            GameRuleRegistry.register("serverstoragecraftingmodule", GameRules.Category.MISC, GameRuleFactory.createBooleanRule(true));
 | 
			
		||||
            GameRuleRegistry.register("serverstorage_crafting_module", GameRules.Category.MISC, GameRuleFactory.createBooleanRule(true));
 | 
			
		||||
 | 
			
		||||
    public static final GameRules.Key<GameRules.BooleanRule> ServerStorage_Terminal_Enable =
 | 
			
		||||
            GameRuleRegistry.register("serverstorageterminalmodule", GameRules.Category.MISC, GameRuleFactory.createBooleanRule(true));
 | 
			
		||||
            GameRuleRegistry.register("serverstorage_terminal_module", GameRules.Category.MISC, GameRuleFactory.createBooleanRule(true));
 | 
			
		||||
 | 
			
		||||
    public static final GameRules.Key<GameRules.BooleanRule> ServerStorage_Interface_Enable =
 | 
			
		||||
                GameRuleRegistry.register("serverstorageinterfacemodule", GameRules.Category.MISC, GameRuleFactory.createBooleanRule(true));
 | 
			
		||||
            GameRuleRegistry.register("serverstorage_interface_module", GameRules.Category.MISC, GameRuleFactory.createBooleanRule(true));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public static Item DRIVE_CASING;
 | 
			
		||||
    public static Item CPU;
 | 
			
		||||
    public static Item CPU_SUBSTRATE;
 | 
			
		||||
    public static Item DRIVE_CONTROLLER;
 | 
			
		||||
    public static Item PCB;
 | 
			
		||||
    public static Item PCB_SUBSTRATE;
 | 
			
		||||
    public static List<Item> MATERIALS;
 | 
			
		||||
    public static List<Item> MODULES;
 | 
			
		||||
    public static List<Item> PLATTERS;
 | 
			
		||||
    public static List<Item> DRIVES;
 | 
			
		||||
@@ -71,8 +67,7 @@ public class ServerStorage implements ModInitializer {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onInitialize()
 | 
			
		||||
    {
 | 
			
		||||
    public void onInitialize() {
 | 
			
		||||
        StorageInterfaceBlock.register();
 | 
			
		||||
        SimpleBlockItem.register(STORAGE_INTERFACE_BLOCK);
 | 
			
		||||
 | 
			
		||||
@@ -85,13 +80,7 @@ public class ServerStorage implements ModInitializer {
 | 
			
		||||
        InventoryInterfaceBlock.register();
 | 
			
		||||
        SimpleBlockItem.register(INVENTORY_INTERFACE_BLOCK);
 | 
			
		||||
 | 
			
		||||
        PCB = SimpleItem.register("pcb", ItemGroups.INGREDIENTS);
 | 
			
		||||
        PCB_SUBSTRATE = SimpleItem.register("pcb_substrate", ItemGroups.INGREDIENTS);
 | 
			
		||||
        CPU = SimpleItem.register("cpu", ItemGroups.INGREDIENTS);
 | 
			
		||||
        CPU_SUBSTRATE = SimpleItem.register("cpu_substrate", ItemGroups.INGREDIENTS);
 | 
			
		||||
        DRIVE_CONTROLLER = SimpleItem.register("drive_controller", ItemGroups.INGREDIENTS);
 | 
			
		||||
        DRIVE_CASING = SimpleItem.register("drive_casing", ItemGroups.INGREDIENTS);
 | 
			
		||||
 | 
			
		||||
        MATERIALS = SimpleItem.register("material", materialList, false, ItemGroups.INGREDIENTS);
 | 
			
		||||
        MODULES = SimpleItem.register("module", moduleList, false, ItemGroups.INGREDIENTS);
 | 
			
		||||
 | 
			
		||||
        HEADS = SimpleItem.register("head", tiers, ItemGroups.INGREDIENTS);
 | 
			
		||||
@@ -99,8 +88,7 @@ public class ServerStorage implements ModInitializer {
 | 
			
		||||
 | 
			
		||||
        DRIVES = HardDriveItem.register(tiers);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        systems.brn.serverstorage.lib.ItemGroups.register();
 | 
			
		||||
        PolymerResourcePackUtils.addModAssets(MOD_ID);
 | 
			
		||||
        PolymerResourcePackUtils.markAsRequired();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -34,29 +34,29 @@ public class HardDrive {
 | 
			
		||||
 | 
			
		||||
    public void setMaxItems() {
 | 
			
		||||
        String itemName = driveStack.getItem().getRegistryEntry().registryKey().getValue().getPath();
 | 
			
		||||
 | 
			
		||||
        switch (itemName) {
 | 
			
		||||
            case "iron_drive":
 | 
			
		||||
                tier = 0;
 | 
			
		||||
                maxItems = 4096;
 | 
			
		||||
                break;
 | 
			
		||||
            case "golden_drive":
 | 
			
		||||
                tier = 1;
 | 
			
		||||
                maxItems = 8192;
 | 
			
		||||
                break;
 | 
			
		||||
            case "diamond_drive":
 | 
			
		||||
                tier = 2;
 | 
			
		||||
                maxItems = 32768;
 | 
			
		||||
                break;
 | 
			
		||||
            case "netherite_drive":
 | 
			
		||||
                tier = 3;
 | 
			
		||||
                maxItems = 131072;
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                tier = -1;
 | 
			
		||||
                maxItems = 0;
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        maxItems = 0;
 | 
			
		||||
 | 
			
		||||
        if (tier >= 0) {
 | 
			
		||||
            maxItems = (int) Math.pow(2, tier + 8);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void updateData() {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										57
									
								
								src/main/java/systems/brn/serverstorage/lib/ItemGroups.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,57 @@
 | 
			
		||||
package systems.brn.serverstorage.lib;
 | 
			
		||||
import eu.pb4.polymer.core.api.item.PolymerItemGroupUtils;
 | 
			
		||||
import net.minecraft.item.Item;
 | 
			
		||||
import net.minecraft.item.ItemGroup;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
import net.minecraft.text.Text;
 | 
			
		||||
 | 
			
		||||
import static systems.brn.serverstorage.ServerStorage.*;
 | 
			
		||||
 | 
			
		||||
public class ItemGroups {
 | 
			
		||||
    public static final ItemGroup BLOCKS_GROUP = PolymerItemGroupUtils.builder()
 | 
			
		||||
            .icon(() -> new ItemStack(STORAGE_INTERFACE_BLOCK))
 | 
			
		||||
            .displayName(Text.translatable("serverstorage.groups.blocks"))
 | 
			
		||||
            .entries(((context, entries) -> {
 | 
			
		||||
                entries.add(STORAGE_INTERFACE_BLOCK);
 | 
			
		||||
                entries.add(HARD_DRIVE_CONTAINER_BLOCK);
 | 
			
		||||
                entries.add(BUS_CONNECTOR_BLOCK);
 | 
			
		||||
                entries.add(INVENTORY_INTERFACE_BLOCK);
 | 
			
		||||
            }))
 | 
			
		||||
            .build();
 | 
			
		||||
 | 
			
		||||
    public static final ItemGroup MATERIALS_GROUP = PolymerItemGroupUtils.builder()
 | 
			
		||||
            .icon(() -> new ItemStack(MODULES.getFirst()))
 | 
			
		||||
            .displayName(Text.translatable("serverstorage.groups.materials"))
 | 
			
		||||
            .entries(((context, entries) -> {
 | 
			
		||||
                for (Item module : MODULES) {
 | 
			
		||||
                    entries.add(module);
 | 
			
		||||
                }
 | 
			
		||||
                for (Item material : MATERIALS) {
 | 
			
		||||
                    entries.add(material);
 | 
			
		||||
                }
 | 
			
		||||
                int partLength = HEADS.size();
 | 
			
		||||
                if (partLength == PLATTERS.size()) {
 | 
			
		||||
                    for (int i = 0; i < PLATTERS.size(); i++) {
 | 
			
		||||
                        entries.add(PLATTERS.get(i));
 | 
			
		||||
                        entries.add(HEADS.get(i));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }))
 | 
			
		||||
            .build();
 | 
			
		||||
 | 
			
		||||
    public static final ItemGroup DRIVES_GROUP = PolymerItemGroupUtils.builder()
 | 
			
		||||
            .icon(() -> new ItemStack(DRIVES.getFirst()))
 | 
			
		||||
            .displayName(Text.translatable("serverstorage.groups.drives"))
 | 
			
		||||
            .entries(((context, entries) -> {
 | 
			
		||||
                for (Item drive : DRIVES) {
 | 
			
		||||
                    entries.add(drive);
 | 
			
		||||
                }
 | 
			
		||||
            }))
 | 
			
		||||
            .build();
 | 
			
		||||
 | 
			
		||||
    public static void register() {
 | 
			
		||||
        PolymerItemGroupUtils.registerPolymerItemGroup(id("blocks"), BLOCKS_GROUP);
 | 
			
		||||
        PolymerItemGroupUtils.registerPolymerItemGroup(id("drives"), DRIVES_GROUP);
 | 
			
		||||
        PolymerItemGroupUtils.registerPolymerItemGroup(id("materials"), MATERIALS_GROUP);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -5,8 +5,6 @@
 | 
			
		||||
 | 
			
		||||
  "block.serverstorage.drive_container": "Hard drive container",
 | 
			
		||||
 | 
			
		||||
  "item.serverstorage.drive_casing": "Hard drive casing",
 | 
			
		||||
 | 
			
		||||
  "block.serverstorage.bus_connector": "Storage network connector",
 | 
			
		||||
 | 
			
		||||
  "item.serverstorage.iron_drive": "Iron hard drive",
 | 
			
		||||
@@ -34,14 +32,17 @@
 | 
			
		||||
  "item.serverstorage.module_inventory": "Inventory module",
 | 
			
		||||
  "item.serverstorage.module_pagination": "Pagination module",
 | 
			
		||||
  "item.serverstorage.module_transport": "Transport module",
 | 
			
		||||
  "item.serverstorage.module_netherite_upgrade": "Netherite upgrade module",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "item.serverstorage.module_pcb": "Module PCB",
 | 
			
		||||
 | 
			
		||||
  "item.serverstorage.drive_controller": "Drive controller",
 | 
			
		||||
  "item.serverstorage.cpu": "Central Processing Unit",
 | 
			
		||||
  "item.serverstorage.cpu_substrate": "CPU substrate",
 | 
			
		||||
  "item.serverstorage.pcb": "Printed Circuit Board",
 | 
			
		||||
  "item.serverstorage.pcb_substrate": "PCB substrate",
 | 
			
		||||
  "item.serverstorage.material_drive_casing": "Hard drive casing",
 | 
			
		||||
  "item.serverstorage.material_drive_controller": "Drive controller",
 | 
			
		||||
  "item.serverstorage.material_cpu": "Central Processing Unit",
 | 
			
		||||
  "item.serverstorage.material_cpu_substrate": "CPU substrate",
 | 
			
		||||
  "item.serverstorage.material_pcb": "Printed Circuit Board",
 | 
			
		||||
  "item.serverstorage.material_pcb_substrate": "PCB substrate",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  "gui.serverstorage.store_all": "Store all items from inventory",
 | 
			
		||||
@@ -57,5 +58,9 @@
 | 
			
		||||
  "gui.serverstorage.direction_up": "Up",
 | 
			
		||||
  "gui.serverstorage.direction_down": "Down",
 | 
			
		||||
 | 
			
		||||
  "serverstorage.groups.blocks" : "Serverstorage blocks",
 | 
			
		||||
  "serverstorage.groups.materials" : "Serverstorage materials",
 | 
			
		||||
  "serverstorage.groups.drives" : "Serverstorage drives",
 | 
			
		||||
 | 
			
		||||
  "message.serverstorage.block_disabled": "This block was disabled in a gamerule, contact admins"
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/drive_diamond"
 | 
			
		||||
    "layer0": "serverstorage:item/diamond_drive"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/head_diamond"
 | 
			
		||||
    "layer0": "serverstorage:item/diamond_drive_head"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/platter_diamond"
 | 
			
		||||
    "layer0": "serverstorage:item/diamond_drive_platter"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/drive_gold"
 | 
			
		||||
    "layer0": "serverstorage:item/golden_drive"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/head_gold"
 | 
			
		||||
    "layer0": "serverstorage:item/golden_drive_head"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/platter_gold"
 | 
			
		||||
    "layer0": "serverstorage:item/golden_drive_platter"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/drive_iron"
 | 
			
		||||
    "layer0": "serverstorage:item/iron_drive"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/head_iron"
 | 
			
		||||
    "layer0": "serverstorage:item/iron_drive_head"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/platter_iron"
 | 
			
		||||
    "layer0": "serverstorage:item/iron_drive_platter"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/cpu"
 | 
			
		||||
    "layer0": "serverstorage:item/material_cpu"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/drive_controller"
 | 
			
		||||
    "layer0": "serverstorage:item/material_cpu_substrate"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/cpu_substrate"
 | 
			
		||||
    "layer0": "serverstorage:item/material_drive_casing"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/material_drive_controller"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/drive_casing"
 | 
			
		||||
    "layer0": "serverstorage:item/material_pcb"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/material_pcb_substrate"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/module_netherite_upgrade"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/drive_netherite"
 | 
			
		||||
    "layer0": "serverstorage:item/netherite_drive"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/head_netherite"
 | 
			
		||||
    "layer0": "serverstorage:item/netherite_drive_head"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/platter_netherite"
 | 
			
		||||
    "layer0": "serverstorage:item/netherite_drive_platter"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/pcb"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  "parent": "minecraft:item/handheld",
 | 
			
		||||
  "textures": {
 | 
			
		||||
    "layer0": "serverstorage:item/pcb_substrate"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 372 B After Width: | Height: | Size: 671 B  | 
| 
		 Before Width: | Height: | Size: 388 B After Width: | Height: | Size: 687 B  | 
| 
		 Before Width: | Height: | Size: 410 B After Width: | Height: | Size: 678 B  | 
| 
		 Before Width: | Height: | Size: 434 B After Width: | Height: | Size: 717 B  | 
| 
		 Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 726 B  | 
| 
		 Before Width: | Height: | Size: 448 B After Width: | Height: | Size: 734 B  | 
| 
		 Before Width: | Height: | Size: 439 B After Width: | Height: | Size: 721 B  | 
| 
		 Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 721 B  | 
| 
		 Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 722 B  | 
| 
		 Before Width: | Height: | Size: 403 B After Width: | Height: | Size: 644 B  | 
| 
		 Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 657 B  | 
| 
		 Before Width: | Height: | Size: 397 B After Width: | Height: | Size: 732 B  | 
| 
		 Before Width: | Height: | Size: 396 B After Width: | Height: | Size: 722 B  | 
| 
		 Before Width: | Height: | Size: 414 B After Width: | Height: | Size: 4.2 KiB  | 
| 
		 Before Width: | Height: | Size: 379 B  | 
| 
		 Before Width: | Height: | Size: 313 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 422 B  | 
| 
		 Before Width: | Height: | Size: 472 B After Width: | Height: | Size: 472 B  | 
| 
		 Before Width: | Height: | Size: 322 B  | 
| 
		 Before Width: | Height: | Size: 396 B  | 
| 
		 Before Width: | Height: | Size: 122 B After Width: | Height: | Size: 339 B  | 
| 
		 Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 347 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB  | 
| 
		 Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 404 B  | 
| 
		 After Width: | Height: | Size: 435 B  | 
| 
		 Before Width: | Height: | Size: 422 B  | 
| 
		 Before Width: | Height: | Size: 350 B  | 
| 
		 Before Width: | Height: | Size: 410 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 350 B  | 
| 
		 After Width: | Height: | Size: 387 B  | 
| 
		 After Width: | Height: | Size: 379 B  | 
| 
		 After Width: | Height: | Size: 313 B  | 
| 
		 After Width: | Height: | Size: 322 B  | 
| 
		 After Width: | Height: | Size: 396 B  | 
| 
		 After Width: | Height: | Size: 323 B  | 
| 
		 After Width: | Height: | Size: 313 B  | 
| 
		 Before Width: | Height: | Size: 377 B After Width: | Height: | Size: 377 B  | 
| 
		 Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 421 B  | 
| 
		 Before Width: | Height: | Size: 504 B After Width: | Height: | Size: 504 B  | 
| 
		 Before Width: | Height: | Size: 380 B After Width: | Height: | Size: 380 B  | 
| 
		 Before Width: | Height: | Size: 415 B After Width: | Height: | Size: 415 B  | 
| 
		 Before Width: | Height: | Size: 403 B After Width: | Height: | Size: 403 B  | 
| 
		 Before Width: | Height: | Size: 571 B After Width: | Height: | Size: 571 B  | 
| 
		 After Width: | Height: | Size: 375 B  | 
| 
		 Before Width: | Height: | Size: 394 B After Width: | Height: | Size: 394 B  | 
| 
		 Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 359 B  | 
| 
		 Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 410 B  | 
| 
		 Before Width: | Height: | Size: 466 B After Width: | Height: | Size: 466 B  | 
| 
		 Before Width: | Height: | Size: 323 B  | 
| 
		 Before Width: | Height: | Size: 313 B  | 
| 
		 Before Width: | Height: | Size: 435 B  | 
| 
		 Before Width: | Height: | Size: 387 B  | 
@@ -8,13 +8,13 @@
 | 
			
		||||
  ],
 | 
			
		||||
  "key": {
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "G": {
 | 
			
		||||
      "item": "minecraft:gold_nugget"
 | 
			
		||||
    },
 | 
			
		||||
    "P": {
 | 
			
		||||
      "item": "serverstorage:pcb"
 | 
			
		||||
      "item": "serverstorage:material_pcb"
 | 
			
		||||
    },
 | 
			
		||||
    "R": {
 | 
			
		||||
      "item": "minecraft:redstone_block"
 | 
			
		||||
 
 | 
			
		||||
@@ -14,11 +14,11 @@
 | 
			
		||||
      "item": "minecraft:amethyst_shard"
 | 
			
		||||
    },
 | 
			
		||||
    "S": {
 | 
			
		||||
      "item": "serverstorage:cpu_substrate"
 | 
			
		||||
      "item": "serverstorage:material_cpu_substrate"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "result": {
 | 
			
		||||
    "id": "serverstorage:cpu",
 | 
			
		||||
    "id": "serverstorage:material_cpu",
 | 
			
		||||
    "count": 1
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -15,7 +15,7 @@
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "result": {
 | 
			
		||||
    "id": "serverstorage:cpu_substrate",
 | 
			
		||||
    "id": "serverstorage:material_cpu_substrate",
 | 
			
		||||
    "count": 1
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -14,10 +14,10 @@
 | 
			
		||||
      "item": "serverstorage:diamond_platter"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:drive_casing"
 | 
			
		||||
      "item": "serverstorage:material_drive_casing"
 | 
			
		||||
    },
 | 
			
		||||
    "X": {
 | 
			
		||||
      "item": "serverstorage:drive_controller"
 | 
			
		||||
      "item": "serverstorage:material_drive_controller"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "result": {
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "result": {
 | 
			
		||||
    "id": "serverstorage:drive_casing",
 | 
			
		||||
    "id": "serverstorage:material_drive_casing",
 | 
			
		||||
    "count": 1
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -8,10 +8,10 @@
 | 
			
		||||
  ],
 | 
			
		||||
  "key": {
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "P": {
 | 
			
		||||
      "item": "serverstorage:pcb"
 | 
			
		||||
      "item": "serverstorage:material_pcb"
 | 
			
		||||
    },
 | 
			
		||||
    "R": {
 | 
			
		||||
      "item": "minecraft:redstone_block"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,17 +11,17 @@
 | 
			
		||||
      "item": "minecraft:gold_ingot"
 | 
			
		||||
    },
 | 
			
		||||
    "X": {
 | 
			
		||||
      "item": "serverstorage:drive_casing"
 | 
			
		||||
      "item": "serverstorage:material_drive_casing"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "S": {
 | 
			
		||||
      "item": "serverstorage:pcb_substrate"
 | 
			
		||||
      "item": "serverstorage:material_pcb_substrate"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "result": {
 | 
			
		||||
    "id": "serverstorage:drive_controller",
 | 
			
		||||
    "id": "serverstorage:material_drive_controller",
 | 
			
		||||
    "count": 1
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -14,10 +14,10 @@
 | 
			
		||||
      "item": "serverstorage:golden_platter"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:drive_casing"
 | 
			
		||||
      "item": "serverstorage:material_drive_casing"
 | 
			
		||||
    },
 | 
			
		||||
    "X": {
 | 
			
		||||
      "item": "serverstorage:drive_controller"
 | 
			
		||||
      "item": "serverstorage:material_drive_controller"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "result": {
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,10 @@
 | 
			
		||||
  ],
 | 
			
		||||
  "key": {
 | 
			
		||||
    "P": {
 | 
			
		||||
      "item": "serverstorage:pcb"
 | 
			
		||||
      "item": "serverstorage:material_pcb"
 | 
			
		||||
    },
 | 
			
		||||
    "U": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:module_container"
 | 
			
		||||
 
 | 
			
		||||
@@ -14,10 +14,10 @@
 | 
			
		||||
      "item": "serverstorage:iron_platter"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:drive_casing"
 | 
			
		||||
      "item": "serverstorage:material_drive_casing"
 | 
			
		||||
    },
 | 
			
		||||
    "X": {
 | 
			
		||||
      "item": "serverstorage:drive_controller"
 | 
			
		||||
      "item": "serverstorage:material_drive_controller"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "result": {
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,10 @@
 | 
			
		||||
      "item": "minecraft:gold_nugget"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "S": {
 | 
			
		||||
      "item": "serverstorage:pcb_substrate"
 | 
			
		||||
      "item": "serverstorage:material_pcb_substrate"
 | 
			
		||||
    },
 | 
			
		||||
    "I": {
 | 
			
		||||
      "item": "minecraft:iron_ingot"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,10 @@
 | 
			
		||||
      "item": "minecraft:gold_nugget"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "S": {
 | 
			
		||||
      "item": "serverstorage:pcb_substrate"
 | 
			
		||||
      "item": "serverstorage:material_pcb_substrate"
 | 
			
		||||
    },
 | 
			
		||||
    "I": {
 | 
			
		||||
      "item": "minecraft:iron_ingot"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,10 @@
 | 
			
		||||
      "item": "minecraft:gold_nugget"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "S": {
 | 
			
		||||
      "item": "serverstorage:pcb_substrate"
 | 
			
		||||
      "item": "serverstorage:material_pcb_substrate"
 | 
			
		||||
    },
 | 
			
		||||
    "H": {
 | 
			
		||||
      "item": "minecraft:chest"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,10 @@
 | 
			
		||||
      "item": "minecraft:gold_nugget"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "S": {
 | 
			
		||||
      "item": "serverstorage:pcb_substrate"
 | 
			
		||||
      "item": "serverstorage:material_pcb_substrate"
 | 
			
		||||
    },
 | 
			
		||||
    "D": {
 | 
			
		||||
      "item": "minecraft:gray_stained_glass"
 | 
			
		||||
 
 | 
			
		||||
@@ -14,10 +14,10 @@
 | 
			
		||||
      "item": "minecraft:gold_ingot"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "S": {
 | 
			
		||||
      "item": "serverstorage:pcb_substrate"
 | 
			
		||||
      "item": "serverstorage:material_pcb_substrate"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "result": {
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,10 @@
 | 
			
		||||
      "item": "minecraft:gold_nugget"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "S": {
 | 
			
		||||
      "item": "serverstorage:pcb_substrate"
 | 
			
		||||
      "item": "serverstorage:material_pcb_substrate"
 | 
			
		||||
    },
 | 
			
		||||
    "L": {
 | 
			
		||||
      "item": "minecraft:glass"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,10 @@
 | 
			
		||||
      "item": "minecraft:gold_nugget"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "S": {
 | 
			
		||||
      "item": "serverstorage:pcb_substrate"
 | 
			
		||||
      "item": "serverstorage:material_pcb_substrate"
 | 
			
		||||
    },
 | 
			
		||||
    "H": {
 | 
			
		||||
      "item": "minecraft:chest"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,10 @@
 | 
			
		||||
      "item": "minecraft:gold_nugget"
 | 
			
		||||
    },
 | 
			
		||||
    "C": {
 | 
			
		||||
      "item": "serverstorage:cpu"
 | 
			
		||||
      "item": "serverstorage:material_cpu"
 | 
			
		||||
    },
 | 
			
		||||
    "S": {
 | 
			
		||||
      "item": "serverstorage:pcb_substrate"
 | 
			
		||||
      "item": "serverstorage:material_pcb_substrate"
 | 
			
		||||
    },
 | 
			
		||||
    "I": {
 | 
			
		||||
      "item": "minecraft:iron_ingot"
 | 
			
		||||
 
 | 
			
		||||