From 2ddb61e5a47718fc9fa6b87fe721e5ad739499fb Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 30 Oct 2024 16:50:20 +0100 Subject: [PATCH] clearly you don't own an M47 WP aerial bomb --- .../com/hbm/inventory/OreDictManager.java | 36 ++-- .../java/com/hbm/inventory/material/Mats.java | 178 +++++++++--------- .../hbm/inventory/material/NTMMaterial.java | 6 +- .../inventory/recipes/AssemblerRecipes.java | 2 +- .../hbm/inventory/recipes/PressRecipes.java | 3 +- .../inventory/recipes/anvil/AnvilRecipes.java | 6 +- .../com/hbm/items/special/ItemAutogen.java | 4 +- .../weapon/sedna/factory/XFactory40mm.java | 23 ++- .../weapon/sedna/factory/XFactoryFlamer.java | 2 +- .../weapon/sedna/factory/XFactoryRocket.java | 23 ++- .../java/com/hbm/main/CraftingManager.java | 2 +- .../assets/hbm/textures/items/ammo.png | Bin 14326 -> 14417 bytes .../items/ammo_standard.g40_phosphorus.png | Bin 372 -> 417 bytes .../items/ammo_standard.rocket_phosphorus.png | Bin 343 -> 381 bytes 14 files changed, 162 insertions(+), 123 deletions(-) diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 4399cf3d6..ef6fb0d36 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -546,25 +546,25 @@ public class OreDictManager { for(NTMMaterial mat : Mats.orderedList) { if(mat.smeltable == SmeltingBehavior.SMELTABLE) { - if(mat.shapes.contains(MaterialShapes.BOLT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.BOLT.name() + name, new ItemStack(ModItems.bolt, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.INGOT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.INGOT.name() + name, new ItemStack(ModItems.ingot_raw, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.DENSEWIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.DENSEWIRE.name() + name, new ItemStack(ModItems.wire_dense, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.SHELL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.SHELL.name() + name, new ItemStack(ModItems.shell, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.PIPE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.PIPE.name() + name, new ItemStack(ModItems.pipe, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.BOLT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.BOLT.name() + name, new ItemStack(ModItems.bolt, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.INGOT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.INGOT.name() + name, new ItemStack(ModItems.ingot_raw, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.DENSEWIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.DENSEWIRE.name() + name, new ItemStack(ModItems.wire_dense, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.SHELL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.SHELL.name() + name, new ItemStack(ModItems.shell, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.PIPE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.PIPE.name() + name, new ItemStack(ModItems.pipe, 1, mat.id)); } - if(mat.shapes.contains(MaterialShapes.FRAGMENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.FRAGMENT.name() + name, new ItemStack(ModItems.bedrock_ore_fragment, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.WIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WIRE.name() + name, new ItemStack(ModItems.wire_fine, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.FRAGMENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.FRAGMENT.name() + name, new ItemStack(ModItems.bedrock_ore_fragment, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.WIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WIRE.name() + name, new ItemStack(ModItems.wire_fine, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.LIGHTBARREL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.LIGHTBARREL.name() + name, new ItemStack(ModItems.part_barrel_light, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.HEAVYBARREL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVYBARREL.name() + name, new ItemStack(ModItems.part_barrel_heavy, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.LIGHTRECEIVER)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.LIGHTRECEIVER.name() + name, new ItemStack(ModItems.part_receiver_light, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.HEAVYRECEIVER)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVYRECEIVER.name() + name, new ItemStack(ModItems.part_receiver_heavy, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.MECHANISM)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.MECHANISM.name() + name, new ItemStack(ModItems.part_mechanism, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.STOCK)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.STOCK.name() + name, new ItemStack(ModItems.part_stock, 1, mat.id)); - if(mat.shapes.contains(MaterialShapes.GRIP)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.GRIP.name() + name, new ItemStack(ModItems.part_grip, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.LIGHTBARREL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.LIGHTBARREL.name() + name, new ItemStack(ModItems.part_barrel_light, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.HEAVYBARREL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVYBARREL.name() + name, new ItemStack(ModItems.part_barrel_heavy, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.LIGHTRECEIVER)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.LIGHTRECEIVER.name() + name, new ItemStack(ModItems.part_receiver_light, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.HEAVYRECEIVER)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVYRECEIVER.name() + name, new ItemStack(ModItems.part_receiver_heavy, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.MECHANISM)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.MECHANISM.name() + name, new ItemStack(ModItems.part_mechanism, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.STOCK)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.STOCK.name() + name, new ItemStack(ModItems.part_stock, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.GRIP)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.GRIP.name() + name, new ItemStack(ModItems.part_grip, 1, mat.id)); } for(EnumBedrockOre ore : EnumBedrockOre.values()) { @@ -653,7 +653,7 @@ public class OreDictManager { OreDictionary.registerOre("itemSilicon", billet_silicon); for(NTMMaterial mat : Mats.orderedList) { - if(mat.shapes.contains(MaterialShapes.FRAGMENT)) { + if(mat.autogen.contains(MaterialShapes.FRAGMENT)) { String name = mat.names[0]; if(!OreDictionary.getOres(MaterialShapes.DUST.name() + name).isEmpty()) MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), OreDictionary.getOres(MaterialShapes.DUST.name() + name).get(0)); else if(!OreDictionary.getOres(MaterialShapes.GEM.name() + name).isEmpty()) MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), OreDictionary.getOres(MaterialShapes.GEM.name() + name).get(0)); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 5a44866f3..2f78142ee 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -47,20 +47,20 @@ public class Mats { public static final int _ES = 20_000; //Vanilla and vanilla-like - public static final NTMMaterial MAT_WOOD = makeNonSmeltable(_VS + 03, WOOD, 0x896727, 0x281E0B, 0x896727).setShapes(STOCK, GRIP).n(); - public static final NTMMaterial MAT_IVORY = makeNonSmeltable(_VS + 04, BONE, 0xFFFEEE, 0x797870, 0xEDEBCA).setShapes(GRIP).n(); + public static final NTMMaterial MAT_WOOD = makeNonSmeltable(_VS + 03, WOOD, 0x896727, 0x281E0B, 0x896727).setAutogen(STOCK, GRIP).n(); + public static final NTMMaterial MAT_IVORY = makeNonSmeltable(_VS + 04, BONE, 0xFFFEEE, 0x797870, 0xEDEBCA).setAutogen(GRIP).n(); public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x7F7F7F, 0x353535, 0x4D2F23).n(); - public static final NTMMaterial MAT_CARBON = makeAdditive( 699, CARBON, 0x363636, 0x030303, 0x404040).setShapes(WIRE, BLOCK).n(); - public static final NTMMaterial MAT_COAL = makeNonSmeltable(600, COAL, 0x363636, 0x030303, 0x404040).setConversion(MAT_CARBON, 2, 1).setShapes(FRAGMENT).n(); - public static final NTMMaterial MAT_LIGNITE = makeNonSmeltable(601, LIGNITE, 0x542D0F, 0x261508, 0x472913).setConversion(MAT_CARBON, 3, 1).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_CARBON = makeAdditive( 699, CARBON, 0x363636, 0x030303, 0x404040).setAutogen(WIRE, BLOCK).n(); + public static final NTMMaterial MAT_COAL = makeNonSmeltable(600, COAL, 0x363636, 0x030303, 0x404040).setConversion(MAT_CARBON, 2, 1).setAutogen(FRAGMENT).n(); + public static final NTMMaterial MAT_LIGNITE = makeNonSmeltable(601, LIGNITE, 0x542D0F, 0x261508, 0x472913).setConversion(MAT_CARBON, 3, 1).setAutogen(FRAGMENT).n(); public static final NTMMaterial MAT_COALCOKE = make( 610, COALCOKE) .setConversion(MAT_CARBON, 4, 3).n(); public static final NTMMaterial MAT_PETCOKE = make( 611, PETCOKE) .setConversion(MAT_CARBON, 4, 3).n(); public static final NTMMaterial MAT_LIGCOKE = make( 612, LIGCOKE) .setConversion(MAT_CARBON, 4, 3).n(); public static final NTMMaterial MAT_GRAPHITE = make( 620, GRAPHITE) .setConversion(MAT_CARBON, 1, 1).n(); - public static final NTMMaterial MAT_DIAMOND = makeNonSmeltable(1430, DIAMOND, 0xFFFFFF, 0x1B7B6B, 0x8CF4E2).setConversion(MAT_CARBON, 1, 1).setShapes(FRAGMENT).n(); - public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(FRAGMENT, DUST, PIPE, CASTPLATE, WELDEDPLATE, BLOCK).m(); - public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(FRAGMENT, WIRE, NUGGET, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); - public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_DIAMOND = makeNonSmeltable(1430, DIAMOND, 0xFFFFFF, 0x1B7B6B, 0x8CF4E2).setConversion(MAT_CARBON, 1, 1).setAutogen(FRAGMENT).n(); + public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setAutogen(FRAGMENT, DUST, PIPE, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setAutogen(FRAGMENT, WIRE, NUGGET, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); + public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setAutogen(FRAGMENT).n(); public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D).n(); public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D).m(); public static final NTMMaterial MAT_WROUGHTIRON = makeSmeltable(2602, df("WroughtIron"), 0xFAAB89).m(); @@ -69,94 +69,94 @@ public class Mats { public static final NTMMaterial MAT_MALACHITE = makeAdditive( 2901, MALACHITE, 0xA2F0C8, 0x227048, 0x61AF87).m(); //Radioactive - public static final NTMMaterial MAT_URANIUM = makeSmeltable(9200, U, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_U233 = makeSmeltable(9233, U233, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(NUGGET, BILLET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_U235 = makeSmeltable(9235, U235, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(NUGGET, BILLET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_U238 = makeSmeltable(9238, U238, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_THORIUM = makeSmeltable(9032, TH232, 0xBF825F, 0x1C0000, 0xBF825F).setShapes(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_PLUTONIUM = makeSmeltable(9400, PU, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_RGP = makeSmeltable(9401, PURG, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, BLOCK).m(); - public static final NTMMaterial MAT_PU238 = makeSmeltable(9438, PU238, 0xFFBC59, 0xFF8E2B, 0x78817E).setShapes(NUGGET, BILLET, BLOCK).m(); - public static final NTMMaterial MAT_PU239 = makeSmeltable(9439, PU239, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, BLOCK).m(); - public static final NTMMaterial MAT_PU240 = makeSmeltable(9440, PU240, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, BLOCK).m(); - public static final NTMMaterial MAT_PU241 = makeSmeltable(9441, PU241, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, BLOCK).m(); - public static final NTMMaterial MAT_RGA = makeSmeltable(9501, AMRG, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, BLOCK).m(); - public static final NTMMaterial MAT_AM241 = makeSmeltable(9541, AM241, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, BLOCK).m(); - public static final NTMMaterial MAT_AM242 = makeSmeltable(9542, AM242, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, BLOCK).m(); - public static final NTMMaterial MAT_NEPTUNIUM = makeSmeltable(9337, NP237, 0xA6B2A6, 0x030F03, 0x647064).setShapes(NUGGET, BILLET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_POLONIUM = makeSmeltable(8410, PO210, 0x968779, 0x3D1509, 0x715E4A).setShapes(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_TECHNETIUM = makeSmeltable(4399, TC99, 0xFAFFFF, 0x576C6C, 0xCADFDF).setShapes(FRAGMENT, NUGGET, BILLET, BLOCK).m(); - public static final NTMMaterial MAT_RADIUM = makeSmeltable(8826, RA226, 0xFCFCFC, 0xADBFBA, 0xE9FAF6).setShapes(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_ACTINIUM = makeSmeltable(8927, AC227, 0xECE0E0, 0x221616, 0x958989).setShapes(NUGGET, BILLET).m(); - public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, BILLET, DUST).m(); - public static final NTMMaterial MAT_AU198 = makeSmeltable(7998, AU198, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(NUGGET, BILLET, DUST).m(); - public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0xB38A94, 0x12020E, 0x7B535D).setShapes(NUGGET, BILLET, DUST).m(); - public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK).m(); - public static final NTMMaterial MAT_SOLINIUM = makeSmeltable(12627, SA327, 0xA2E6E0, 0x00433D, 0x72B6B0).setShapes(NUGGET, BILLET, BLOCK).m(); - public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setShapes(DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); - public static final NTMMaterial MAT_SCHRARANIUM = makeSmeltable(12601, SRN, 0x2B3227, 0x2B3227, 0x24AFAC).setShapes(BLOCK).m(); - public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setShapes(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_URANIUM = makeSmeltable(9200, U, 0xC1C7BD, 0x2B3227, 0x9AA196).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_U233 = makeSmeltable(9233, U233, 0xC1C7BD, 0x2B3227, 0x9AA196).setAutogen(NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_U235 = makeSmeltable(9235, U235, 0xC1C7BD, 0x2B3227, 0x9AA196).setAutogen(NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_U238 = makeSmeltable(9238, U238, 0xC1C7BD, 0x2B3227, 0x9AA196).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_THORIUM = makeSmeltable(9032, TH232, 0xBF825F, 0x1C0000, 0xBF825F).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_PLUTONIUM = makeSmeltable(9400, PU, 0x9AA3A0, 0x111A17, 0x78817E).setAutogen(NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_RGP = makeSmeltable(9401, PURG, 0x9AA3A0, 0x111A17, 0x78817E).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_PU238 = makeSmeltable(9438, PU238, 0xFFBC59, 0xFF8E2B, 0x78817E).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_PU239 = makeSmeltable(9439, PU239, 0x9AA3A0, 0x111A17, 0x78817E).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_PU240 = makeSmeltable(9440, PU240, 0x9AA3A0, 0x111A17, 0x78817E).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_PU241 = makeSmeltable(9441, PU241, 0x9AA3A0, 0x111A17, 0x78817E).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_RGA = makeSmeltable(9501, AMRG, 0xCEB3B9, 0x3A1C21, 0x93767B).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_AM241 = makeSmeltable(9541, AM241, 0xCEB3B9, 0x3A1C21, 0x93767B).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_AM242 = makeSmeltable(9542, AM242, 0xCEB3B9, 0x3A1C21, 0x93767B).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_NEPTUNIUM = makeSmeltable(9337, NP237, 0xA6B2A6, 0x030F03, 0x647064).setAutogen(NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_POLONIUM = makeSmeltable(8410, PO210, 0x968779, 0x3D1509, 0x715E4A).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_TECHNETIUM = makeSmeltable(4399, TC99, 0xFAFFFF, 0x576C6C, 0xCADFDF).setAutogen(FRAGMENT, NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_RADIUM = makeSmeltable(8826, RA226, 0xFCFCFC, 0xADBFBA, 0xE9FAF6).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ACTINIUM = makeSmeltable(8927, AC227, 0xECE0E0, 0x221616, 0x958989).setAutogen(NUGGET, BILLET).m(); + public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0xC2D1EE, 0x353554, 0x8F72AE).setAutogen(NUGGET, BILLET, DUST).m(); + public static final NTMMaterial MAT_AU198 = makeSmeltable(7998, AU198, 0xFFFF8B, 0xC26E00, 0xE8D754).setAutogen(NUGGET, BILLET, DUST).m(); + public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0xB38A94, 0x12020E, 0x7B535D).setAutogen(NUGGET, BILLET, DUST).m(); + public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setAutogen(NUGGET, WIRE, BILLET, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK).m(); + public static final NTMMaterial MAT_SOLINIUM = makeSmeltable(12627, SA327, 0xA2E6E0, 0x00433D, 0x72B6B0).setAutogen(NUGGET, BILLET, BLOCK).m(); + public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setAutogen(DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); + public static final NTMMaterial MAT_SCHRARANIUM = makeSmeltable(12601, SRN, 0x2B3227, 0x2B3227, 0x24AFAC).setAutogen(BLOCK).m(); + public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setAutogen(NUGGET, BILLET, BLOCK).m(); //Base metals - public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(FRAGMENT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(FRAGMENT, WIRE, BOLT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(FRAGMENT, NUGGET, WIRE, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF, 0xB200FF, 0xB200FF).setShapes(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET).m(); - public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK).m(); - public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(FRAGMENT, NUGGET, DUSTTINY, DUST, BLOCK).m(); - public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(FRAGMENT, NUGGET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_EMERALD = makeNonSmeltable(401, EMERALD, 0xBAFFD4, 0x003900, 0x17DD62).setConversion(MAT_BERYLLIUM, 4, 3).setShapes(FRAGMENT, DUST, GEM, BLOCK).n(); - public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(FRAGMENT, NUGGET, DUSTTINY, BILLET, DUST, BLOCK).m(); - public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(FRAGMENT, DUSTTINY, DUST, BLOCK).m(); - public static final NTMMaterial MAT_BORAX = makeSmeltable(501, BORAX, 0xFFFFFF, 0x946E23, 0xFFECC6).setShapes(FRAGMENT, INGOT, DUST).n(); - public static final NTMMaterial MAT_LANTHANIUM = makeSmeltable(5700, LA, 0xC8E0E0, 0x3B5353, 0xA1B9B9).setShapes(FRAGMENT, BLOCK).m(); - public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(FRAGMENT, NUGGET, WIRE, DUSTTINY, BILLET, DUST, CASTPLATE, WELDEDPLATE, BLOCK).m(); - public static final NTMMaterial MAT_SODIUM = makeSmeltable(1100, NA, 0xD3BF9E, 0x3A5A6B, 0x7E9493).setShapes(FRAGMENT, INGOT, DUST).m(); - public static final NTMMaterial MAT_SODALITE = makeNonSmeltable(1101, SODALITE, 0xDCE5F6, 0x4927B4, 0x96A7E6).setShapes(FRAGMENT, GEM).n(); - public static final NTMMaterial MAT_STRONTIUM = makeSmeltable(3800, SR, 0xF1E8BA, 0x271E00, 0xCAC193).setShapes(FRAGMENT, INGOT, DUST).m(); - public static final NTMMaterial MAT_CALCIUM = makeSmeltable(2000, CA, 0xCFCFA6, 0x747F6E, 0xB7B784).setShapes(DUST).m(); - public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setShapes(FRAGMENT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_SULFUR = makeNonSmeltable(1600, S, 0xFCEE80, 0xBDA022, 0xF1DF68).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_KNO = makeNonSmeltable(700, KNO, 0xD4D4D4, 0x969696, 0xC9C9C9).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_FLUORITE = makeNonSmeltable(900, F, 0xFFFFFF, 0xB0A192, 0xE1DBD4).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_PHOSPHORUS = makeNonSmeltable(1500, P_RED, 0xCB0213, 0x600006, 0xBA0615).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_CHLOROCALCITE = makeNonSmeltable(1701, CHLOROCALCITE, 0xF7E761, 0x475B46, 0xB8B963).setShapes(FRAGMENT, DUST).n(); - public static final NTMMaterial MAT_MOLYSITE = makeNonSmeltable(1702, MOLYSITE, 0xF9E97B, 0x216E00, 0xD0D264).setShapes(FRAGMENT, DUST).n(); - public static final NTMMaterial MAT_CINNABAR = makeNonSmeltable(8001, CINNABAR, 0xD87070, 0x993030, 0xBF4E4E).setShapes(FRAGMENT, GEM).n(); - public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(DUST).m(); - public static final NTMMaterial MAT_SILICON = makeSmeltable(1400, SI, 0xD1D7DF, 0x1A1A3D, 0x878B9E).setShapes(FRAGMENT, NUGGET, BILLET).m(); - public static final NTMMaterial MAT_ASBESTOS = makeSmeltable(1401, ASBESTOS, 0xD8D9CF, 0x616258, 0xB0B3A8).setShapes(FRAGMENT, BLOCK).n(); - public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, CASTPLATE, WELDEDPLATE).m(); + public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setAutogen(FRAGMENT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setAutogen(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setAutogen(FRAGMENT, WIRE, BOLT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setAutogen(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setAutogen(FRAGMENT, NUGGET, WIRE, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF, 0xB200FF, 0xB200FF).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setAutogen(NUGGET).m(); + public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setAutogen(NUGGET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setAutogen(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setAutogen(FRAGMENT, NUGGET, DUSTTINY, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setAutogen(FRAGMENT, NUGGET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_EMERALD = makeNonSmeltable(401, EMERALD, 0xBAFFD4, 0x003900, 0x17DD62).setConversion(MAT_BERYLLIUM, 4, 3).setAutogen(FRAGMENT, DUST, GEM, BLOCK).n(); + public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setAutogen(FRAGMENT, NUGGET, DUSTTINY, BILLET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setAutogen(FRAGMENT, DUSTTINY, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BORAX = makeSmeltable(501, BORAX, 0xFFFFFF, 0x946E23, 0xFFECC6).setAutogen(FRAGMENT, INGOT, DUST).n(); + public static final NTMMaterial MAT_LANTHANIUM = makeSmeltable(5700, LA, 0xC8E0E0, 0x3B5353, 0xA1B9B9).setAutogen(FRAGMENT, BLOCK).m(); + public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setAutogen(FRAGMENT, NUGGET, WIRE, DUSTTINY, BILLET, DUST, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_SODIUM = makeSmeltable(1100, NA, 0xD3BF9E, 0x3A5A6B, 0x7E9493).setAutogen(FRAGMENT, INGOT, DUST).m(); + public static final NTMMaterial MAT_SODALITE = makeNonSmeltable(1101, SODALITE, 0xDCE5F6, 0x4927B4, 0x96A7E6).setAutogen(FRAGMENT, GEM).n(); + public static final NTMMaterial MAT_STRONTIUM = makeSmeltable(3800, SR, 0xF1E8BA, 0x271E00, 0xCAC193).setAutogen(FRAGMENT, INGOT, DUST).m(); + public static final NTMMaterial MAT_CALCIUM = makeSmeltable(2000, CA, 0xCFCFA6, 0x747F6E, 0xB7B784).setAutogen(DUST).m(); + public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setAutogen(FRAGMENT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_SULFUR = makeNonSmeltable(1600, S, 0xFCEE80, 0xBDA022, 0xF1DF68).setAutogen(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_KNO = makeNonSmeltable(700, KNO, 0xD4D4D4, 0x969696, 0xC9C9C9).setAutogen(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_FLUORITE = makeNonSmeltable(900, F, 0xFFFFFF, 0xB0A192, 0xE1DBD4).setAutogen(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_PHOSPHORUS = makeNonSmeltable(1500, P_RED, 0xCB0213, 0x600006, 0xBA0615).setAutogen(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_CHLOROCALCITE = makeNonSmeltable(1701, CHLOROCALCITE, 0xF7E761, 0x475B46, 0xB8B963).setAutogen(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_MOLYSITE = makeNonSmeltable(1702, MOLYSITE, 0xF9E97B, 0x216E00, 0xD0D264).setAutogen(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_CINNABAR = makeNonSmeltable(8001, CINNABAR, 0xD87070, 0x993030, 0xBF4E4E).setAutogen(FRAGMENT, GEM).n(); + public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setAutogen(DUST).m(); + public static final NTMMaterial MAT_SILICON = makeSmeltable(1400, SI, 0xD1D7DF, 0x1A1A3D, 0x878B9E).setAutogen(FRAGMENT, NUGGET, BILLET).m(); + public static final NTMMaterial MAT_ASBESTOS = makeSmeltable(1401, ASBESTOS, 0xD8D9CF, 0x616258, 0xB0B3A8).setAutogen(FRAGMENT, BLOCK).n(); + public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setAutogen(NUGGET, CASTPLATE, WELDEDPLATE).m(); //Alloys - public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, BOLT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, GRIP).m(); - public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setShapes(WIRE, DUST, BLOCK).m(); - public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(BOLT, DUST, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, GRIP).m(); - public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setAutogen(DUSTTINY, BOLT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, GRIP).m(); + public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setAutogen(WIRE, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setAutogen(WIRE, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setAutogen(BOLT, DUST, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, GRIP).m(); + public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setAutogen(DUST, DENSEWIRE, BLOCK).m(); public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).m(); - public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_BBRONZE = makeSmeltable(_AS + 16, BBRONZE, 0xE19A69, 0x485353, 0x987D65).setShapes(CASTPLATE).m(); - public static final NTMMaterial MAT_ABRONZE = makeSmeltable(_AS + 17, ABRONZE, 0xDB9462, 0x203331, 0x77644D).setShapes(CASTPLATE).m(); - public static final NTMMaterial MAT_BSCCO = makeSmeltable(_AS + 18, BSCCO, 0x767BF1, 0x000000, 0x5E62C0).setShapes(DENSEWIRE).m(); - public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(WIRE, DUST, DENSEWIRE, BLOCK).m(); - public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK).m(); - public static final NTMMaterial MAT_DNT = makeSmeltable(_AS + 15, DNT, 0x7582B9, 0x16000E, 0x455289).setShapes(DUST, DENSEWIRE, BLOCK).m(); - public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0xF1E0BB, 0x6F6256, 0xDECCAD).setShapes(DUST).n(); - public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setShapes(BLOCK).n(); + public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_BBRONZE = makeSmeltable(_AS + 16, BBRONZE, 0xE19A69, 0x485353, 0x987D65).setAutogen(CASTPLATE).m(); + public static final NTMMaterial MAT_ABRONZE = makeSmeltable(_AS + 17, ABRONZE, 0xDB9462, 0x203331, 0x77644D).setAutogen(CASTPLATE).m(); + public static final NTMMaterial MAT_BSCCO = makeSmeltable(_AS + 18, BSCCO, 0x767BF1, 0x000000, 0x5E62C0).setAutogen(DENSEWIRE).m(); + public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setAutogen(WIRE, DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setAutogen(DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_DNT = makeSmeltable(_AS + 15, DNT, 0x7582B9, 0x16000E, 0x455289).setAutogen(DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0xF1E0BB, 0x6F6256, 0xDECCAD).setAutogen(DUST).n(); + public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setAutogen(BLOCK).n(); public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).n(); - public static final NTMMaterial MAT_GUNMETAL = makeSmeltable(_AS + 19, GUNMETAL, 0xFFEF3F, 0xAD3600, 0xF9C62C).setShapes(LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n(); - public static final NTMMaterial MAT_WEAPONSTEEL = makeSmeltable(_AS + 20, WEAPONSTEEL, 0xA0A0A0, 0x000000, 0x808080).setShapes(LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n(); - public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x3AC4DA, 0x09282C, 0x30A4B7).setShapes(PLATE, CASTPLATE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).m(); + public static final NTMMaterial MAT_GUNMETAL = makeSmeltable(_AS + 19, GUNMETAL, 0xFFEF3F, 0xAD3600, 0xF9C62C).setAutogen(LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n(); + public static final NTMMaterial MAT_WEAPONSTEEL = makeSmeltable(_AS + 20, WEAPONSTEEL, 0xA0A0A0, 0x000000, 0x808080).setAutogen(LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n(); + public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x3AC4DA, 0x09282C, 0x30A4B7).setAutogen(PLATE, CASTPLATE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).m(); //Extension - public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setAutogen(FRAGMENT).n(); public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } diff --git a/src/main/java/com/hbm/inventory/material/NTMMaterial.java b/src/main/java/com/hbm/inventory/material/NTMMaterial.java index 193ad939a..7f15f1bed 100644 --- a/src/main/java/com/hbm/inventory/material/NTMMaterial.java +++ b/src/main/java/com/hbm/inventory/material/NTMMaterial.java @@ -18,7 +18,7 @@ public class NTMMaterial { public final int id; public String[] names; - public Set shapes = new HashSet(); + public Set autogen = new HashSet(); public Set traits = new HashSet(); public SmeltingBehavior smeltable = SmeltingBehavior.NOT_SMELTABLE; public int solidColorLight = 0xFF4A00; @@ -58,8 +58,8 @@ public class NTMMaterial { } /** Shapes for autogen */ - public NTMMaterial setShapes(MaterialShapes... shapes) { - for(MaterialShapes shape : shapes) this.shapes.add(shape); + public NTMMaterial setAutogen(MaterialShapes... shapes) { + for(MaterialShapes shape : shapes) this.autogen.add(shape); return this; } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 01475b4ac..805be6ed7 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1285,7 +1285,7 @@ public class AssemblerRecipes extends SerializableRecipe { } for(NTMMaterial mat : Mats.orderedList) { - if(mat.shapes.contains(MaterialShapes.CASTPLATE) && mat.shapes.contains(MaterialShapes.HEAVY_COMPONENT)) { + if(mat.autogen.contains(MaterialShapes.CASTPLATE) && mat.autogen.contains(MaterialShapes.HEAVY_COMPONENT)) { makeRecipe(new ComparableStack(ModItems.heavy_component, 1, mat.id), new AStack[] { new OreDictStack(MaterialShapes.CASTPLATE.name() + mat.names[0], 256) }, 12_000); } } diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index a2907a600..d9ccaf232 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -33,6 +33,7 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; public class PressRecipes extends SerializableRecipe { @@ -94,7 +95,7 @@ public class PressRecipes extends SerializableRecipe { makeRecipe(StampType.C50, new OreDictStack(WEAPONSTEEL.plate()), DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE_STEEL, 2)); for(NTMMaterial mat : Mats.orderedList) { - if(mat.shapes.contains(MaterialShapes.WIRE) && mat.shapes.contains(MaterialShapes.INGOT)) { + if(mat.autogen.contains(MaterialShapes.WIRE) && OreDictionary.doesOreNameExist(MaterialShapes.INGOT.make(mat))) { makeRecipe(StampType.WIRE, new OreDictStack(MaterialShapes.INGOT.make(mat)), new ItemStack(ModItems.wire_fine, 8, mat.id)); } } diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index ff6591a4a..767950bd8 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -150,7 +150,7 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(DURA.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_dura_steel))).setTier(3)); for(NTMMaterial mat : Mats.orderedList) { - if(mat.shapes.contains(MaterialShapes.WIRE) && mat.shapes.contains(MaterialShapes.INGOT)) { + if(mat.autogen.contains(MaterialShapes.WIRE) && OreDictionary.doesOreNameExist(MaterialShapes.INGOT.make(mat))) { constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MaterialShapes.INGOT.name() + mat.names[0]), new AnvilOutput(new ItemStack(ModItems.wire_fine, 8, mat.id))).setTier(4)); } } @@ -181,10 +181,10 @@ public class AnvilRecipes { new AStack[] {new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModBlocks.depth_brick)}, new AnvilOutput(new ItemStack(ModBlocks.depth_dnt))).setTier(1916169)); - for(NTMMaterial mat : Mats.orderedList) if(mat.shapes.contains(MaterialShapes.SHELL)) constructionRecipes.add(new AnvilConstructionRecipe( + for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.SHELL)) constructionRecipes.add(new AnvilConstructionRecipe( new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 4), new AnvilOutput(new ItemStack(ModItems.shell, 1, mat.id))).setTier(1)); - for(NTMMaterial mat : Mats.orderedList) if(mat.shapes.contains(MaterialShapes.PIPE)) constructionRecipes.add(new AnvilConstructionRecipe( + for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.PIPE)) constructionRecipes.add(new AnvilConstructionRecipe( new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 3), new AnvilOutput(new ItemStack(ModItems.pipe, 1, mat.id))).setTier(1)); diff --git a/src/main/java/com/hbm/items/special/ItemAutogen.java b/src/main/java/com/hbm/items/special/ItemAutogen.java index ea2be4db1..b828c9d2b 100644 --- a/src/main/java/com/hbm/items/special/ItemAutogen.java +++ b/src/main/java/com/hbm/items/special/ItemAutogen.java @@ -52,7 +52,7 @@ public class ItemAutogen extends Item { TextureMap map = (TextureMap) reg; for(NTMMaterial mat : Mats.orderedList) { - if(!textureOverrides.containsKey(mat) && mat.solidColorLight != mat.solidColorDark && (shape == null || mat.shapes.contains(shape))) { //only generate icons if there is no override, color variation is available and if the icon will actually be used + if(!textureOverrides.containsKey(mat) && mat.solidColorLight != mat.solidColorDark && (shape == null || mat.autogen.contains(shape))) { //only generate icons if there is no override, color variation is available and if the icon will actually be used String placeholderName = this.getIconString() + "-" + mat.names[0]; //the part after the dash is discarded - the name only has to be unique so that the hashmap which holds all the icon definitions can hold multiple references TextureAtlasSpriteMutatable mutableIcon = new TextureAtlasSpriteMutatable(placeholderName, new RGBMutatorInterpolatedComponentRemap(0xFFFFFF, 0x505050, mat.solidColorLight, mat.solidColorDark)); map.setTextureEntry(placeholderName, mutableIcon); @@ -71,7 +71,7 @@ public class ItemAutogen extends Item { public void getSubItems(Item item, CreativeTabs tab, List list) { for(NTMMaterial mat : Mats.orderedList) { - if(mat.shapes.contains(this.shape)) { + if(mat.autogen.contains(this.shape)) { list.add(new ItemStack(item, 1, mat.id)); } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java index 0e7a9d3f7..14afbffe1 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java @@ -30,8 +30,11 @@ import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; import com.hbm.render.anim.HbmAnimations.AnimType; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class XFactory40mm { @@ -61,11 +64,27 @@ public class XFactory40mm { }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_INC = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + World world = bullet.worldObj; Lego.standardExplode(bullet, mop, 3F); - EntityFireLingering fire = new EntityFireLingering(bullet.worldObj).setArea(5, 2).setDuration(200).setType(EntityFireLingering.TYPE_DIESEL); + EntityFireLingering fire = new EntityFireLingering(world).setArea(5, 2).setDuration(200).setType(EntityFireLingering.TYPE_DIESEL); fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); - bullet.worldObj.spawnEntityInWorld(fire); + world.spawnEntityInWorld(fire); bullet.setDead(); + for(int dx = -1; dx <= 1; dx++) { + for(int dy = -1; dy <= 1; dy++) { + for(int dz = -2; dz <= 2; dz++) { + int x = (int) Math.floor(mop.hitVec.xCoord) + dx; + int y = (int) Math.floor(mop.hitVec.yCoord) + dy; + int z = (int) Math.floor(mop.hitVec.zCoord) + dz; + if(world.getBlock(x, y, z).isAir(bullet.worldObj, x, y, z)) for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isFlammable(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.getOpposite())) { + world.setBlock(x, y, z, Blocks.fire); + break; + } + } + } + } + } }; public static void init() { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java index e839142c3..24b55823a 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java @@ -72,7 +72,7 @@ public class XFactoryFlamer { World world = bullet.worldObj; Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); - if(b.isFlammable(world, mop.blockX, mop.blockY, mop.blockZ, dir)) { + if(b.isFlammable(world, mop.blockX, mop.blockY, mop.blockZ, dir.getOpposite())) { if(world.getBlock(mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ).isAir(world, mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ)) { world.setBlock(mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ, Blocks.fire); return true; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java index 89b02a1fd..c6d4eb2d7 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java @@ -32,9 +32,12 @@ import com.hbm.render.anim.BusAnimationKeyframe.IType; import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class XFactoryRocket { @@ -91,11 +94,27 @@ public class XFactoryRocket { }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_INC = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; + World world = bullet.worldObj; Lego.standardExplode(bullet, mop, 3F); - EntityFireLingering fire = new EntityFireLingering(bullet.worldObj).setArea(6, 2).setDuration(300).setType(EntityFireLingering.TYPE_DIESEL); + EntityFireLingering fire = new EntityFireLingering(world).setArea(6, 2).setDuration(300).setType(EntityFireLingering.TYPE_DIESEL); fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); - bullet.worldObj.spawnEntityInWorld(fire); + world.spawnEntityInWorld(fire); bullet.setDead(); + for(int dx = -2; dx <= 2; dx++) { + for(int dy = -2; dy <= 2; dy++) { + for(int dz = -2; dz <= 2; dz++) { + int x = (int) Math.floor(mop.hitVec.xCoord) + dx; + int y = (int) Math.floor(mop.hitVec.yCoord) + dy; + int z = (int) Math.floor(mop.hitVec.zCoord) + dz; + if(world.getBlock(x, y, z).isAir(bullet.worldObj, x, y, z)) for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isFlammable(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.getOpposite())) { + world.setBlock(x, y, z, Blocks.fire); + break; + } + } + } + } + } }; public static BulletConfig makeRPZB(BulletConfig original) { return original.clone(); } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index a1d964d98..d5e09faa1 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1060,7 +1060,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.neutron_reflector, 4), new Object[] { "##", "##", '#', W.ingot() }); for(NTMMaterial mat : Mats.orderedList) { - if(mat.shapes.contains(MaterialShapes.WIRE)) for(String name : mat.names) addRecipeAuto(new ItemStack(ModItems.wire_fine, 24, mat.id), new Object[] { "###", '#', MaterialShapes.INGOT.prefixes[0] + name }); + if(mat.autogen.contains(MaterialShapes.WIRE)) for(String name : mat.names) addRecipeAuto(new ItemStack(ModItems.wire_fine, 24, mat.id), new Object[] { "###", '#', MaterialShapes.INGOT.prefixes[0] + name }); } addRecipeAuto(new ItemStack(ModItems.book_of_), new Object[] { "BGB", "GAG", "BGB", 'B', ModItems.egg_balefire_shard, 'G', GOLD.ingot(), 'A', Items.book }); diff --git a/src/main/resources/assets/hbm/textures/items/ammo.png b/src/main/resources/assets/hbm/textures/items/ammo.png index 7bbe059e5766d6b467dc814edfe58ca6586923e4..b899cb0fed298dd394d69f59eed4a1be58fe971d 100644 GIT binary patch literal 14417 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 Xpd?=tWYP!TBM7J}X)2b=TLk_;gb~29 literal 14326 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 IRkjHFKas_PQ~&?~ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.g40_phosphorus.png index 3158cbea59e46fd42047ad644c480698d2f2d7c8..5ca95889b901d70585ee0337fa6e22f96a09864f 100644 GIT binary patch delta 374 zcmV-+0g3+f0-*ztG=Er0L_t(Ijm42aNCHtD$G=Zbh!PwkNsEkvN>n%pml`D3hMOCL zg9clop}DEKA)FkdC1?z{H|3OzL`N#-A{5BI{@jI7Sf25k-f?w!76g5!_a49BhwtzA zfd7U#FV#JXi*s_nPu%4ml-9x9Cn3(CGyJ`r;7*wrKIbK}7JoypVc@Ct003CYriV(t z2t>2lG_iG&LS#AwMNvE@wqW%Xq@1t8Y?|1hiJ1MK~OWuIq@M?_w$6a@G63KWLRYk*ok@Sq5Vax~^mS{tSWHByP6nTuEF404NrV zMAI}d#*nHW!f$%*z&{p5BYWT)$Mdgio8x?BVg}M^5Ld|^dmKtB3WWk0m_U#?GRWKG z9gaUT_BfPMbcq2u9p^(62oy!(Vkcc<;QF!wtx_jH76?h-|AO`{vzvd7i2bL00%}x? U^iaZcWdHyG07*qoM6N<$f*V|{D*ylh delta 329 zcmV-P0k;031M~urG=D2eL_t(IjbmUKXuycfxm?TgAI8>g{=%g@qa3zJ1GZ{P=MOY=$tQ3tTvTmC-@ofI(GFjp6Ovw+wIJ zzGV;=7G|)tv}Bmu)`sC7oKe+XT>M{EO^rcVSQw76xdd-q6JrR57mz_|Z!hERTesj| zfoVSY=p2KAsY3RDf-XRJ$=kPY84f-=$8hQFb%qP4uQC#C0L+jB4=*r0efR>dnPdQS bHdO%tZ@Gj*Vm0{sGzG=DTnL_t(Ijir;ZO2YsYMNa~PjVW%GK*3t5rB)#Yiy(^7#crX4 zlONEjlbiqGAUG;+uKfciafw4f(pWlJq>!jMgtkGj5~q}E(zW{-1hsW%`Hh+;bTd^Tyz{c7(rN?u= zhAsh*dgLO=T^f8qN30LO8# zZJV3sC4;^<*TGcUnx^@xs?vIXpksB}*)L%l?U|Pe9jfJ`50EQlNJt41(junO9=kDg zQ`UGoMKvD^i7ZSMM2y%+PD*sFE=oFuX|yS-dE}%thDQSCL1H-w(*Fwy k6#Hp{LWNx-w!&KZ1N3K#G(K$ztpET307*qoM6N<$f^3PNH2?qr delta 300 zcmV+{0n`5d0@nhNG=C0BL_t(IjbmV-5HK<@FfiCSnf^x>JhJaJBe4cBF)%PNeEIy1 zK~hGHK}k)XVODJy!`!yE|AaK67yttm;n@tr!om!emX<^t0yiMq+K=Jw+qVpF-@YZu z5GDo&28Ii#uQJ}gbqj6)vLWc`11K1UVj&0gm!mv@qbk{HHM`} zH!FhK!0`OZD+X-?b*zREOfZBDVIrWPfrpoi;r8_h43aWp3|BAQWY9KHXW-%Gf*VfI y0DOiJ