Merge branch 'master' into master

This commit is contained in:
HbmMods 2026-01-06 19:38:02 +01:00 committed by GitHub
commit 6141d1d24e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
85 changed files with 8269 additions and 1455 deletions

View File

@ -1,13 +1,34 @@
## Added ## Added
* Fluid valve with counter to control and count fluid that pass through. * New battery system
* Energy storage blocks, capacitors and battery items are now deprecated, but can still be used
* There is now new types of battery items, as well as capacitor items
* Instead of energy storage blocks, there is now a battery socket, which allows those new items to be connected to the power grid
* Battery sockets act like cables, they will connect power grids when two cables are plugged into them in different directions
* Self-chargers and creative batteries are still around, as well as spark batteries which are needed for the balefire bomb
* The FEnSU has been replaced by a much larger version with unlimited energy storage
* `/ntmreapnetworks`
* Deletes all active nodespace instances
* Mainly useful for server owners, in case nodespace builds up too much garbage data that isn't cleared correctly
## Changed ## Changed
* Updated italian localization
* After not being part of worldgen for a long time, oily coal is finally being removed * After not being part of worldgen for a long time, oily coal is finally being removed
* The rare metal blocks that had been unobtainable and unused for the longest time have been removed * The rare metal blocks that had been unobtainable and unused for the longest time have been removed
* The schrabidium transmutator's grace period is over, it is finally being destroyed * The schrabidium transmutator's grace period is over, it is finally being destroyed
* Most of the legacy fusion reactor components, which were unobtainable and unusable, have been removed * Most of the legacy fusion reactor components, which were unobtainable and unusable, have been removed
* The block ID economy is looking better than ever * The block ID economy is looking better than ever
* Infinite water barrels can now be crafted with any water container and not just buckets
* OpenComputers integration for the PWR can now also read the heat capacity stats
* Removed the restriction that demands that cluster ores need to be mined by hand
* Laser beams from energy weapons are now a lot more narrow
## Fixed ## Fixed
* Fixed meteors using a nonexistant keepalive timer, causing potential audio flickering in certain cases * Fixed meteors using a nonexistant keepalive timer, causing potential audio flickering in certain cases
* Fixed 528 coltan deposit config misspelling * Fixed 528 coltan deposit config misspelling
* Potentially fixed a performance issue caused by transmission networks not being deleted when they have no active links
* Fixed multi output recipe objects not deserializing right, causing the precision assembler config to not load
* Fixed pedestal recipes not using the correct register option, making custom config files wipe all clay tablets
* Fixed custom fluids breaking when using the `/ntmreload` command
* Fixed power not saving for mining lasers
* Fixed the annihilator producing blank 528 mode blueprints when 528 mode isn't even enabled
* Fixed black fire not using the skeletonizer on death

View File

@ -3,6 +3,7 @@ package api.hbm.block;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.World; import net.minecraft.world.World;
@Deprecated
public interface IDrillInteraction { public interface IDrillInteraction {
/** /**

View File

@ -1,5 +1,6 @@
package api.hbm.block; package api.hbm.block;
@Deprecated
public interface IMiningDrill { public interface IMiningDrill {
/** /**

View File

@ -2,7 +2,6 @@ package api.hbm.energymk2;
import com.hbm.handler.threading.PacketThreading; import com.hbm.handler.threading.PacketThreading;
import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.util.Compat;
import api.hbm.energymk2.Nodespace.PowerNode; import api.hbm.energymk2.Nodespace.PowerNode;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
@ -25,7 +24,7 @@ public interface IEnergyProviderMK2 extends IEnergyHandlerMK2 {
public default void tryProvide(World world, int x, int y, int z, ForgeDirection dir) { public default void tryProvide(World world, int x, int y, int z, ForgeDirection dir) {
TileEntity te = Compat.getTileStandard(world, x, y, z); TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
boolean red = false; boolean red = false;
if(te instanceof IEnergyConductorMK2) { if(te instanceof IEnergyConductorMK2) {

View File

@ -3,7 +3,6 @@ package api.hbm.energymk2;
import com.hbm.handler.threading.PacketThreading; import com.hbm.handler.threading.PacketThreading;
import com.hbm.interfaces.NotableComments; import com.hbm.interfaces.NotableComments;
import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.util.Compat;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energymk2.Nodespace.PowerNode; import api.hbm.energymk2.Nodespace.PowerNode;
@ -39,7 +38,7 @@ public interface IEnergyReceiverMK2 extends IEnergyHandlerMK2 {
public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) { public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) {
TileEntity te = Compat.getTileStandard(world, x, y, z); TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
boolean red = false; boolean red = false;
if(te instanceof IEnergyConductorMK2) { if(te instanceof IEnergyConductorMK2) {

View File

@ -5,7 +5,6 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.uninos.GenNode; import com.hbm.uninos.GenNode;
import com.hbm.uninos.UniNodespace; import com.hbm.uninos.UniNodespace;
import com.hbm.util.Compat;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority;
@ -28,7 +27,7 @@ public interface IFluidReceiverMK2 extends IFluidUserMK2 {
public default void trySubscribe(FluidType type, World world, int x, int y, int z, ForgeDirection dir) { public default void trySubscribe(FluidType type, World world, int x, int y, int z, ForgeDirection dir) {
TileEntity te = Compat.getTileStandard(world, x, y, z); TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
boolean red = false; boolean red = false;
if(te instanceof IFluidConnectorMK2) { if(te instanceof IFluidConnectorMK2) {

View File

@ -6,7 +6,6 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.uninos.GenNode; import com.hbm.uninos.GenNode;
import com.hbm.uninos.UniNodespace; import com.hbm.uninos.UniNodespace;
import com.hbm.util.Compat;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
@ -30,7 +29,7 @@ public interface IFluidStandardSenderMK2 extends IFluidProviderMK2 {
public default void tryProvide(FluidType type, int pressure, World world, int x, int y, int z, ForgeDirection dir) { public default void tryProvide(FluidType type, int pressure, World world, int x, int y, int z, ForgeDirection dir) {
TileEntity te = Compat.getTileStandard(world, x, y, z); TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
boolean red = false; boolean red = false;
if(te instanceof IFluidConnectorMK2) { if(te instanceof IFluidConnectorMK2) {

View File

@ -1,7 +1,55 @@
package api.hbm.tile; package api.hbm.tile;
import java.util.HashMap;
import java.util.Map;
import com.hbm.util.Compat;
import com.hbm.util.Tuple.Quartet;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
/** For anything that should be removed off networks when considered unloaded, only affects providers and receivers, not links. Must not necessarily be a tile. */ /** For anything that should be removed off networks when considered unloaded, only affects providers and receivers, not links. Must not necessarily be a tile. */
public interface ILoadedTile { public interface ILoadedTile {
public boolean isLoaded(); public boolean isLoaded();
// should we gunk this into the API? no, but i don't care
public static class TileAccessCache {
public static Map<Quartet, TileAccessCache> cache = new HashMap();
public static int NULL_CACHE = 20;
public static int NONNULL_CACHE = 60;
public TileEntity tile;
public long expiresOn;
public TileAccessCache(TileEntity tile, long expiresOn) {
this.tile = tile;
this.expiresOn = expiresOn;
}
public boolean hasExpired(long worldTime) {
if(tile != null && tile.isInvalid()) return true;
if(worldTime >= expiresOn) return true;
if(tile instanceof ILoadedTile && !((ILoadedTile) tile).isLoaded()) return true;
return false;
}
public static Quartet publicCumRag = new Quartet(0, 0, 0, 0);
public static TileEntity getTileOrCache(World world, int x, int y, int z) {
publicCumRag.mangle(x, y, z, world.provider.dimensionId);
TileAccessCache cache = TileAccessCache.cache.get(publicCumRag);
if(cache == null || cache.hasExpired(world.getTotalWorldTime())) {
TileEntity tile = Compat.getTileStandard(world, x, y, z);
cache = new TileAccessCache(tile, world.getTotalWorldTime() + (tile == null ? NULL_CACHE : NONNULL_CACHE));
TileAccessCache.cache.put(publicCumRag.clone(), cache);
return tile;
} else {
return cache.tile;
}
}
}
} }

View File

@ -743,20 +743,21 @@ public class ModBlocks {
public static Block machine_microwave; public static Block machine_microwave;
public static Block machine_battery_socket; public static Block machine_battery_socket;
public static Block machine_battery_redd;
@Deprecated public static Block machine_battery_potato; @Deprecated public static Block machine_battery_potato;
@Deprecated public static Block machine_battery; @Deprecated public static Block machine_battery;
@Deprecated public static Block machine_lithium_battery; @Deprecated public static Block machine_lithium_battery;
@Deprecated public static Block machine_schrabidium_battery; @Deprecated public static Block machine_schrabidium_battery;
@Deprecated public static Block machine_dineutronium_battery; @Deprecated public static Block machine_dineutronium_battery;
public static Block machine_fensu; @Deprecated public static Block machine_fensu;
public static Block capacitor_bus; @Deprecated public static Block capacitor_bus;
public static Block capacitor_copper; public static Block capacitor_copper; // neat for structures
public static Block capacitor_gold; @Deprecated public static Block capacitor_gold;
public static Block capacitor_niobium; @Deprecated public static Block capacitor_niobium;
public static Block capacitor_tantalium; @Deprecated public static Block capacitor_tantalium;
public static Block capacitor_schrabidate; @Deprecated public static Block capacitor_schrabidate;
public static Block machine_wood_burner; public static Block machine_wood_burner;
@ -1864,6 +1865,8 @@ public class ModBlocks {
machine_microwave = new MachineMicrowave(Material.iron).setBlockName("machine_microwave").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_microwave"); machine_microwave = new MachineMicrowave(Material.iron).setBlockName("machine_microwave").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_microwave");
machine_battery_socket = new MachineBatterySocket().setBlockName("machine_battery_socket").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_battery_socket = new MachineBatterySocket().setBlockName("machine_battery_socket").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_battery_redd = new MachineBatteryREDD().setBlockName("machine_battery_redd").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_battery_potato = new MachineBattery(Material.iron, 10_000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_battery_potato = new MachineBattery(Material.iron, 10_000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_battery = new MachineBattery(Material.iron, 1_000_000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_battery = new MachineBattery(Material.iron, 1_000_000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_lithium_battery = new MachineBattery(Material.iron, 50_000_000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_lithium_battery = new MachineBattery(Material.iron, 50_000_000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
@ -1871,12 +1874,12 @@ public class ModBlocks {
machine_dineutronium_battery = new MachineBattery(Material.iron, 1_000_000_000_000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_dineutronium_battery = new MachineBattery(Material.iron, 1_000_000_000_000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fensu"); machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fensu");
capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null);
capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper");
capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block"); capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName("gold_block");
capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_niobium"); capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_niobium");
capacitor_tantalium = new MachineCapacitor(Material.iron, 150_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); capacitor_tantalium = new MachineCapacitor(Material.iron, 150_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_tantalium");
capacitor_schrabidate = new MachineCapacitor(Material.iron, 50_000_000_000L, "schrabidate").setBlockName("capacitor_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); capacitor_schrabidate = new MachineCapacitor(Material.iron, 50_000_000_000L, "schrabidate").setBlockName("capacitor_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_schrabidate");
machine_wood_burner = new MachineWoodBurner(Material.iron).setBlockName("machine_wood_burner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_wood_burner = new MachineWoodBurner(Material.iron).setBlockName("machine_wood_burner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_diesel = new MachineDiesel().setBlockName("machine_diesel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_diesel = new MachineDiesel().setBlockName("machine_diesel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
@ -3264,6 +3267,7 @@ public class ModBlocks {
register(barrel_tcalloy); register(barrel_tcalloy);
register(barrel_antimatter); register(barrel_antimatter);
register(machine_battery_socket); register(machine_battery_socket);
register(machine_battery_redd);
register(machine_battery_potato); register(machine_battery_potato);
register(machine_battery); register(machine_battery);
register(machine_lithium_battery); register(machine_lithium_battery);

View File

@ -1,26 +1,15 @@
package com.hbm.blocks.generic; package com.hbm.blocks.generic;
import java.util.List;
import java.util.Random; import java.util.Random;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.util.i18n.I18nUtil;
import api.hbm.block.IDrillInteraction;
import api.hbm.block.IMiningDrill;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
public class BlockCluster extends Block implements IDrillInteraction, ITooltipProvider { public class BlockCluster extends Block {
public BlockCluster(Material mat) { public BlockCluster(Material mat) {
super(mat); super(mat);
@ -28,32 +17,7 @@ public class BlockCluster extends Block implements IDrillInteraction, ITooltipPr
@Override @Override
public Item getItemDropped(int i, Random rand, int j) { public Item getItemDropped(int i, Random rand, int j) {
return null; return getDrop();
}
@Override
public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) {
if(player instanceof FakePlayer || player == null) {
return;
}
if(!world.isRemote && world.getGameRules().getGameRuleBooleanValue("doTileDrops") && !world.restoringBlockSnapshots) {
Item drop = getDrop();
if(drop == null)
return;
float f = 0.7F;
double mX = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
double mY = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
double mZ = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
EntityItem entityitem = new EntityItem(world, (double) x + mX, (double) y + mY, (double) z + mZ, new ItemStack(drop));
entityitem.delayBeforeCanPickup = 10;
world.spawnEntityInWorld(entityitem);
}
} }
private Item getDrop() { private Item getDrop() {
@ -65,24 +29,4 @@ public class BlockCluster extends Block implements IDrillInteraction, ITooltipPr
return null; return null;
} }
@Override
public boolean canBreak(World world, int x, int y, int z, int meta, IMiningDrill drill) {
return drill.getDrillRating() > 70 || world.rand.nextFloat() < 0.05;
}
@Override
public ItemStack extractResource(World world, int x, int y, int z, int meta, IMiningDrill drill) {
return drill.getDrillRating() <= 70 ? new ItemStack(getDrop()) : null;
}
@Override
public float getRelativeHardness(World world, int x, int y, int z, int meta, IMiningDrill drill) {
return this.getBlockHardness(world, x, y, z);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.tile.cluster"));
}
} }

View File

@ -8,6 +8,7 @@ import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.Spaghetti; import com.hbm.interfaces.Spaghetti;
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import net.minecraft.block.BlockFalling; import net.minecraft.block.BlockFalling;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
@ -102,8 +103,7 @@ public class BlockCrate extends BlockFalling {
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_diesel), 8); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_diesel), 8);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_rtg_grey), 4); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_rtg_grey), 4);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.red_pylon), 9); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.red_pylon), 9);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_battery), 8); BlockCrate.addToListWithWeight(metalList, new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()), 10);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_lithium_battery), 5);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 8); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 8);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_assembly_machine), 10); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_assembly_machine), 10);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_fluidtank), 7); BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_fluidtank), 7);

View File

@ -1,7 +1,6 @@
package com.hbm.blocks.machine; package com.hbm.blocks.machine;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBattery;
import com.hbm.tileentity.machine.TileEntityRadiobox; import com.hbm.tileentity.machine.TileEntityRadiobox;
import net.minecraft.block.Block; import net.minecraft.block.Block;
@ -47,31 +46,17 @@ public class Radiobox extends BlockContainer {
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
if(i == 0) if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2);
{ if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2);
world.setBlockMetadataWithNotify(x, y, z, 2, 2); if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2);
} if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2);
if(i == 1)
{
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
}
if(i == 2)
{
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
}
if(i == 3)
{
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
}
} }
@Override @Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote) if(world.isRemote) {
{
return true; return true;
} else if(!player.isSneaking()) } else if(!player.isSneaking()) {
{
TileEntityRadiobox box = (TileEntityRadiobox)world.getTileEntity(x, y, z); TileEntityRadiobox box = (TileEntityRadiobox)world.getTileEntity(x, y, z);
if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.battery_spark && !box.infinite) { if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.battery_spark && !box.infinite) {
@ -93,37 +78,25 @@ public class Radiobox extends BlockContainer {
return true; return true;
} else { } else {
//FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_radiobox, world, x, y, z);
//return true;
return false; return false;
} }
} }
@Override @Override
public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) {
{
int te = p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_); int te = p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_);
float f = 0.0625F; float f = 0.0625F;
this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f);
switch(te) switch(te) {
{
case 4: case 4:
case 8: case 8: this.setBlockBounds(11 * f, 1 * f, 4 * f, 16 * f, 15 * f, 12 * f); break;
this.setBlockBounds(11*f, 1*f, 4*f, 16*f, 15*f, 12*f);
break;
case 2: case 2:
case 6: case 6: this.setBlockBounds(4 * f, 1 * f, 11 * f, 12 * f, 15 * f, 16 * f); break;
this.setBlockBounds(4*f, 1*f, 11*f, 12*f, 15*f, 16*f);
break;
case 5: case 5:
case 9: case 9: this.setBlockBounds(0 * f, 1 * f, 4 * f, 5 * f, 15 * f, 12 * f); break;
this.setBlockBounds(0*f, 1*f, 4*f, 5*f, 15*f, 12*f);
break;
case 3: case 3:
case 7: case 7: this.setBlockBounds(4 * f, 1 * f, 0 * f, 12 * f, 15 * f, 5 * f); break;
this.setBlockBounds(4*f, 1*f, 0*f, 12*f, 15*f, 5*f);
break;
} }
} }
@ -134,36 +107,23 @@ public class Radiobox extends BlockContainer {
float f = 0.0625F; float f = 0.0625F;
this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f);
switch(te) switch(te) {
{
case 4: case 4:
case 8: case 8: this.setBlockBounds(11 * f, 1 * f, 4 * f, 16 * f, 15 * f, 12 * f); break;
this.setBlockBounds(11*f, 1*f, 4*f, 16*f, 15*f, 12*f);
break;
case 2: case 2:
case 6: case 6: this.setBlockBounds(4 * f, 1 * f, 11 * f, 12 * f, 15 * f, 16 * f); break;
this.setBlockBounds(4*f, 1*f, 11*f, 12*f, 15*f, 16*f);
break;
case 5: case 5:
case 9: case 9: this.setBlockBounds(0 * f, 1 * f, 4 * f, 5 * f, 15 * f, 12 * f); break;
this.setBlockBounds(0*f, 1*f, 4*f, 5*f, 15*f, 12*f);
break;
case 3: case 3:
case 7: case 7: this.setBlockBounds(4 * f, 1 * f, 0 * f, 12 * f, 15 * f, 5 * f); break;
this.setBlockBounds(4*f, 1*f, 0*f, 12*f, 15*f, 5*f);
break;
} }
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
} }
public void breakBlock(World world, int x, int y, int z, Block b, int m) { public void breakBlock(World world, int x, int y, int z, Block b, int m) {
TileEntityRadiobox box = (TileEntityRadiobox)world.getTileEntity(x, y, z); TileEntityRadiobox box = (TileEntityRadiobox)world.getTileEntity(x, y, z);
if(box.infinite) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.battery_spark)));
if(box.infinite) {
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, ItemBattery.getEmptyBattery(ModItems.battery_spark)));
}
super.breakBlock(world, x, y, z, b, m); super.breakBlock(world, x, y, z, b, m);
} }

View File

@ -0,0 +1,50 @@
package com.hbm.blocks.network;
import com.hbm.blocks.BlockDummyable;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineBatteryREDD extends BlockDummyable {
public MachineBatteryREDD() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityBatteryREDD();
if(meta >= 6) return new TileEntityProxyCombo().power().conductor();
return null;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
return standardOpenBehavior(world, x, y, z, player, side);
}
@Override public int[] getDimensions() { return new int[] {9, 0, 2, 2, 4, 4}; }
@Override public int getOffset() { return 2; }
@Override
protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
x += dir.offsetX * o;
z += dir.offsetZ * o;
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
this.makeExtra(world, x + dir.offsetX * 2 + rot.offsetX * 2, y, z + dir.offsetZ * 2 + rot.offsetZ * 2);
this.makeExtra(world, x + dir.offsetX * 2 - rot.offsetX * 2, y, z + dir.offsetZ * 2 - rot.offsetZ * 2);
this.makeExtra(world, x - dir.offsetX * 2 + rot.offsetX * 2, y, z - dir.offsetZ * 2 + rot.offsetZ * 2);
this.makeExtra(world, x - dir.offsetX * 2 - rot.offsetX * 2, y, z - dir.offsetZ * 2 - rot.offsetZ * 2);
this.makeExtra(world, x + rot.offsetX * 4, y, z + rot.offsetZ * 4);
this.makeExtra(world, x - rot.offsetX * 4, y, z - rot.offsetZ * 4);
}
}

View File

@ -35,6 +35,7 @@ public class MachineBatterySocket extends BlockDummyable implements ITooltipProv
@Override public int[] getDimensions() { return new int[] {1, 0, 1, 0, 1, 0}; } @Override public int[] getDimensions() { return new int[] {1, 0, 1, 0, 1, 0}; }
@Override public int getOffset() { return 0; } @Override public int getOffset() { return 0; }
@Override
protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o); super.fillSpace(world, x, y, z, dir, o);

View File

@ -0,0 +1,49 @@
package com.hbm.commands;
import com.hbm.uninos.GenNode;
import com.hbm.uninos.UniNodespace;
import com.hbm.util.ChatBuilder;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
public class CommandReapNetworks extends CommandBase {
@Override
public String getCommandName() {
return "ntmreapnetworks";
}
@Override
public String getCommandUsage(ICommandSender sender) {
return "/ntmreapnetworks";
}
@Override
public void processCommand(ICommandSender sender, String[] args) {
try {
UniNodespace.activeNodeNets.forEach((net) -> {
net.links.forEach((link) -> { ((GenNode)link).expired = true; });
net.links.clear();
net.providerEntries.clear();
net.receiverEntries.clear();
});
UniNodespace.activeNodeNets.clear();
UniNodespace.worlds.clear();
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Nodespace cleared :)"));
} catch(Exception ex) {
sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush());
sender.addChatMessage(ChatBuilder.start("An error has occoured during network reap, consult the log for details.").color(EnumChatFormatting.RED).flush());
sender.addChatMessage(ChatBuilder.start(ex.getLocalizedMessage()).color(EnumChatFormatting.RED).flush());
sender.addChatMessage(ChatBuilder.start(ex.getStackTrace()[0].toString()).color(EnumChatFormatting.RED).flush());
sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush());
throw ex;
}
}
}

View File

@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks;
import com.hbm.config.GeneralConfig; import com.hbm.config.GeneralConfig;
import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.OreDictManager.DictFrame;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
import com.hbm.items.ItemEnums; import com.hbm.items.ItemEnums;
@ -181,9 +182,9 @@ public class ConsumableRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', CU.ingot(), 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'S', ModItems.pads_slime }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', CU.ingot(), 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'S', ModItems.pads_slime });
//Batteries //Batteries
CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery, 1), new Object[] { "PCP", "PCP", "PCP", 'P', STEEL.plate(), 'C', ModBlocks.capacitor_gold }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery, 1), new Object[] { "PCP", "PCP", "PCP", 'P', STEEL.plate(), 'C', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_GOLD.ordinal()) });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk2, 1), new Object[] { "PCP", "PCP", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModBlocks.capacitor_niobium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk2, 1), new Object[] { "PCP", "PCP", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM.ordinal()) });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk3, 1), new Object[] { "PCP", "PCP", "PCP", 'P', GOLD.plate(), 'C', ModBlocks.capacitor_tantalium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk3, 1), new Object[] { "PCP", "PCP", "PCP", 'P', GOLD.plate(), 'C', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM.ordinal()) });
//Special Mods //Special Mods
CraftingManager.addRecipeAuto(new ItemStack(ModItems.horseshoe_magnet, 1), new Object[] { "L L", "I I", "ILI", 'L', ModItems.lodestone, 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.horseshoe_magnet, 1), new Object[] { "L L", "I I", "ILI", 'L', ModItems.lodestone, 'I', IRON.ingot() });

View File

@ -9,6 +9,7 @@ import static com.hbm.inventory.OreDictManager.*;
import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemEnums.EnumPlantType;
import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.tool.ItemBlowtorch; import com.hbm.items.tool.ItemBlowtorch;
import com.hbm.items.tool.ItemModMinecart; import com.hbm.items.tool.ItemModMinecart;
@ -62,10 +63,10 @@ public class ToolRecipes {
addShovel( DESH.ingot(), ModItems.desh_shovel); addShovel( DESH.ingot(), ModItems.desh_shovel);
addHoe( DESH.ingot(), ModItems.desh_hoe); addHoe( DESH.ingot(), ModItems.desh_hoe);
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.centri_stick, 1), new Object[] { ModItems.centrifuge_element, ModItems.energy_core, KEY_STICK }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.centri_stick, 1), new Object[] { ModItems.centrifuge_element, ModItems.energy_core, KEY_STICK });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', ANY_PLASTIC.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteorite_sword, 1), new Object[] { " B", "GB ", "SG ", 'B', ModItems.blade_meteorite, 'G', GOLD.plate(), 'S', KEY_STICK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteorite_sword, 1), new Object[] { " B", "GB ", "SG ", 'B', ModItems.blade_meteorite, 'G', GOLD.plate(), 'S', KEY_STICK });
@ -136,7 +137,7 @@ public class ToolRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_generic }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', EnumBatteryPack.BATTERY_LEAD.stack() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.analysis_tool), new Object[] { " G", " S ", "S ", 'G', KEY_ANYPANE, 'S', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.analysis_tool), new Object[] { " G", " S ", "S ", 'G', KEY_ANYPANE, 'S', STEEL.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.toolbox), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.toolbox), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() });

View File

@ -12,6 +12,7 @@ import static com.hbm.inventory.OreDictManager.*;
import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ItemAmmoEnums.*;
import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ItemEnums.EnumCasingType;
import com.hbm.items.ItemEnums.EnumSecretType; import com.hbm.items.ItemEnums.EnumSecretType;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.weapon.GunB92Cell; import com.hbm.items.weapon.GunB92Cell;
@ -148,7 +149,7 @@ public class WeaponRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.DRILL_SATURNITE.ordinal()), new Object[] { " IP", "IIM", " IP", 'I', BIGMT.ingot(), 'P', ANY_HARDPLASTIC.ingot(), 'M', WEAPONSTEEL.mechanism() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.DRILL_SATURNITE.ordinal()), new Object[] { " IP", "IIM", " IP", 'I', BIGMT.ingot(), 'P', ANY_HARDPLASTIC.ingot(), 'M', WEAPONSTEEL.mechanism() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_DIESEL.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', DURA.plate(), 'P', ModItems.piston_selenium, 'S', STEEL.pipe() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_DIESEL.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', DURA.plate(), 'P', ModItems.piston_selenium, 'S', STEEL.pipe() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_AVIATION.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', DURA.plateCast(), 'P', ModItems.piston_selenium, 'S', GUNMETAL.mechanism() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_AVIATION.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', DURA.plateCast(), 'P', ModItems.piston_selenium, 'S', GUNMETAL.mechanism() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_ELECTRIC.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', ANY_PLASTIC.ingot(), 'P', GOLD.wireDense(), 'S', ModBlocks.capacitor_gold }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_ELECTRIC.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', ANY_PLASTIC.ingot(), 'P', GOLD.wireDense(), 'S', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_GOLD.ordinal()) });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_TURBO.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', ANY_BISMOIDBRONZE.plateCast(), 'P', ModItems.piston_selenium, 'S', WEAPONSTEEL.mechanism() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_TURBO.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', ANY_BISMOIDBRONZE.plateCast(), 'P', ModItems.piston_selenium, 'S', WEAPONSTEEL.mechanism() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.MAGNET.ordinal()), new Object[] { "RGR", "GBG", "RGR", 'R', RUBBER.ingot(), 'G', GOLD.wireDense(), 'B', NB.block() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.MAGNET.ordinal()), new Object[] { "RGR", "GBG", "RGR", 'R', RUBBER.ingot(), 'G', GOLD.wireDense(), 'B', NB.block() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SIFTER.ordinal()), new Object[] { "IGI", "IGI", 'I', DURA.ingot(), 'G', ModBlocks.steel_grate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SIFTER.ordinal()), new Object[] { "IGI", "IGI", 'I', DURA.ingot(), 'G', ModBlocks.steel_grate });
@ -310,6 +311,9 @@ public class WeaponRecipes {
//Nuke parts //Nuke parts
CraftingManager.addRecipeAuto(new ItemStack(ModItems.n2_charge, 1), new Object[] { " D ", "ERE", " D ", 'D', ModItems.ducttape, 'E', ModBlocks.det_charge, 'R', REDSTONE.block() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.n2_charge, 1), new Object[] { " D ", "ERE", " D ", 'D', ModItems.ducttape, 'E', ModBlocks.det_charge, 'R', REDSTONE.block() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.battery_spark, 1), new Object[] { " W ", "DSD", "DSD", 'W', MAGTUNG.wireDense(), 'D', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.battery_trixite, 1), new Object[] { " W ", "DSD", "DTD", 'W', MAGTUNG.wireDense(), 'D', BIGMT.plateCast(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.battery_trixite, 1), new Object[] { " W ", "DTD", "DSD", 'W', MAGTUNG.wireDense(), 'D', BIGMT.plateCast(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite });
//Custom nuke rods //Custom nuke rods
CraftingManager.addRecipeAuto(new ItemStack(ModItems.custom_tnt, 1), new Object[] { " C ", "TIT", "TIT", 'C', CU.plate(), 'I', IRON.plate(), 'T', ANY_HIGHEXPLOSIVE.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.custom_tnt, 1), new Object[] { " C ", "TIT", "TIT", 'C', CU.plate(), 'I', IRON.plate(), 'T', ANY_HIGHEXPLOSIVE.ingot() });

View File

@ -676,7 +676,7 @@ public class EntityEffectHandler {
FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_BLACK); FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_BLACK);
} }
if(props.fire > 0 || props.phosphorus > 0 || props.balefire > 0) if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti(living, DamageSource.onFire); if(props.fire > 0 || props.phosphorus > 0 || props.balefire > 0 || props.blackFire > 0) if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti(living, DamageSource.onFire);
} }
private static void handleDashing(Entity entity) { private static void handleDashing(Entity entity) {

View File

@ -0,0 +1,62 @@
package com.hbm.inventory.container;
import com.hbm.inventory.SlotNonRetarded;
import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerBatteryREDD extends Container {
protected TileEntityBatteryREDD socket;
public ContainerBatteryREDD(InventoryPlayer invPlayer, TileEntityBatteryREDD tedf) {
this.socket = tedf;
this.addSlotToContainer(new SlotNonRetarded(socket, 0, 26, 53));
this.addSlotToContainer(new SlotNonRetarded(socket, 1, 80, 53));
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 9; j++) {
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 99 + i * 18));
}
}
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 157));
}
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return socket.isUseableByPlayer(player);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
ItemStack copy = null;
Slot slot = (Slot) this.inventorySlots.get(index);
if(slot != null && slot.getHasStack()) {
ItemStack stack = slot.getStack();
copy = stack.copy();
if(index <= 1) {
if(!this.mergeItemStack(stack, 2, this.inventorySlots.size(), true)) return null;
} else {
if(!this.mergeItemStack(stack, 0, 2, false)) return null;
}
if(stack.stackSize == 0) {
slot.putStack((ItemStack) null);
} else {
slot.onSlotChanged();
}
}
return copy;
}
}

View File

@ -70,7 +70,12 @@ public class FluidType {
this.id = Fluids.registerSelf(this); this.id = Fluids.registerSelf(this);
} }
/** For custom fluids */
public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) { public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) {
setupCustom(name, color, p, f, r, symbol, texName, tint, id, displayName);
}
public FluidType setupCustom(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) {
this.stringId = name; this.stringId = name;
this.color = color; this.color = color;
this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US); this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US);
@ -85,6 +90,7 @@ public class FluidType {
this.id = id; this.id = id;
Fluids.register(this, id); Fluids.register(this, id);
return this;
} }
public FluidType(int forcedId, String name, int color, int p, int f, int r, EnumSymbol symbol) { public FluidType(int forcedId, String name, int color, int p, int f, int r, EnumSymbol symbol) {

View File

@ -817,7 +817,9 @@ public class Fluids {
String texture = obj.get("texture").getAsString(); String texture = obj.get("texture").getAsString();
int temperature = obj.get("temperature").getAsInt(); int temperature = obj.get("temperature").getAsInt();
FluidType type = new FluidType(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature); FluidType type = fluidMigration.get(name);
if(type == null) type = new FluidType(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature);
else type.setupCustom(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature);
customFluids.add(type); customFluids.add(type);
} }
@ -882,12 +884,15 @@ public class Fluids {
} }
} }
private static HashMap<String, FluidType> fluidMigration = new HashMap(); // since reloading would create new fluid instances, and those break existing machines
public static void reloadFluids(){ public static void reloadFluids(){
File folder = MainRegistry.configHbmDir; File folder = MainRegistry.configHbmDir;
File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json"); File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json");
if(!customTypes.exists()) initDefaultFluids(customTypes); if(!customTypes.exists()) initDefaultFluids(customTypes);
for(FluidType type : customFluids) { for(FluidType type : customFluids) {
fluidMigration.put(type.getName(), type);
idMapping.remove(type.getID()); idMapping.remove(type.getID());
registerOrder.remove(type); registerOrder.remove(type);
nameMapping.remove(type.getName()); nameMapping.remove(type.getName());

View File

@ -0,0 +1,87 @@
package com.hbm.inventory.gui;
import java.math.BigInteger;
import java.util.Locale;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import com.hbm.inventory.container.ContainerBatteryREDD;
import com.hbm.lib.RefStrings;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.toserver.NBTControlPacket;
import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation;
public class GUIBatteryREDD extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_battery_redd.png");
private TileEntityBatteryREDD battery;
public GUIBatteryREDD(InventoryPlayer invPlayer, TileEntityBatteryREDD tedf) {
super(new ContainerBatteryREDD(invPlayer, tedf));
battery = tedf;
this.xSize = 176;
this.ySize = 181;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
}
protected void mouseClicked(int x, int y, int i) {
super.mouseClicked(x, y, i);
NBTTagCompound data = new NBTTagCompound();
if(this.checkClick(x, y, 133, 16, 18, 18)) { this.click(); data.setBoolean("low", true); }
if(this.checkClick(x, y, 133, 52, 18, 18)) { this.click(); data.setBoolean("high", true); }
if(this.checkClick(x, y, 152, 35, 16, 16)) { this.click(); data.setBoolean("priority", true); }
if(!data.hasNoTags()) PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, battery.xCoord, battery.yCoord, battery.zCoord));
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
String name = this.battery.hasCustomInventoryName() ? this.battery.getInventoryName() : I18n.format(this.battery.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
GL11.glPushMatrix();
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
GL11.glScaled(0.5, 0.5, 1);
String label = String.format(Locale.US, "%,d", battery.power) + " HE";
this.fontRendererObj.drawString(label, 242 - this.fontRendererObj.getStringWidth(label), 45, 0x00ff00);
String deltaText = String.format(Locale.US, "%,d", battery.delta) + " HE/s";
int comp = battery.delta.compareTo(BigInteger.ZERO);
if(comp > 0) deltaText = EnumChatFormatting.GREEN + "+" + deltaText;
else if(comp < 0) deltaText = EnumChatFormatting.RED + deltaText;
else deltaText = EnumChatFormatting.YELLOW + "+" + deltaText;
this.fontRendererObj.drawString(deltaText, 242 - this.fontRendererObj.getStringWidth(deltaText), 65, 0x00ff00);
GL11.glPopMatrix();
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
drawTexturedModalRect(guiLeft + 133, guiTop + 16, 176, 52 + battery.redLow * 18, 18, 18);
drawTexturedModalRect(guiLeft + 133, guiTop + 52, 176, 52 + battery.redHigh * 18, 18, 18);
drawTexturedModalRect(guiLeft + 152, guiTop + 35, 194, 52 + battery.priority.ordinal() * 16 - 16, 16, 16);
}
}

View File

@ -99,6 +99,12 @@ public class GUIBatterySocket extends GuiInfoContainer {
IBatteryItem item = (IBatteryItem) battery.slots[0].getItem(); IBatteryItem item = (IBatteryItem) battery.slots[0].getItem();
long power = item.getCharge(battery.slots[0]); long power = item.getCharge(battery.slots[0]);
long maxPower = item.getMaxCharge(battery.slots[0]); long maxPower = item.getMaxCharge(battery.slots[0]);
if(power > Long.MAX_VALUE / 100) {
power /= 100;
maxPower /= 100;
}
if(maxPower <= 1) maxPower = 1;
int p = (int) (power * 52 / maxPower); // won't work then flying too close to the sun (the limits of the LONG data type) int p = (int) (power * 52 / maxPower); // won't work then flying too close to the sun (the limits of the LONG data type)
drawTexturedModalRect(guiLeft + 62, guiTop + 69 - p, 176, 52 - p, 34, p); drawTexturedModalRect(guiLeft + 62, guiTop + 69 - p, 176, 52 - p, 34, p);
} }

View File

@ -14,6 +14,7 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter; import com.google.gson.stream.JsonWriter;
import com.hbm.config.GeneralConfig;
import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.FluidType;
@ -59,6 +60,7 @@ public class AnnihilatorRecipes extends SerializableRecipe {
@Override @Override
public void registerDefaults() { public void registerDefaults() {
if(GeneralConfig.enable528) {
recipes.put(STEEL.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "steel")))); recipes.put(STEEL.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "steel"))));
recipes.put(SI.billet(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip")))); recipes.put(SI.billet(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip"))));
recipes.put(BI.nugget(), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip_bismoid")))); recipes.put(BI.nugget(), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip_bismoid"))));
@ -77,6 +79,7 @@ public class AnnihilatorRecipes extends SerializableRecipe {
recipes.put(new ComparableStack(ModItems.ammo_arty, 1, 0), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "arty")))); recipes.put(new ComparableStack(ModItems.ammo_arty, 1, 0), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "arty"))));
recipes.put(new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "controller")))); recipes.put(new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "controller"))));
} }
}
@Override public String getFileName() { return "hbmAnnihilator.json"; } @Override public String getFileName() { return "hbmAnnihilator.json"; }
@Override public Object getRecipeObject() { return recipes; } @Override public Object getRecipeObject() { return recipes; }

View File

@ -115,10 +115,6 @@ import net.minecraft.item.ItemStack;
makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()) }, 300);
makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new OreDictStack(STEEL.shell(), 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60); makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new OreDictStack(STEEL.shell(), 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60);
makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate(), 4), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate(), 4), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12) },100);
makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12) },100);
makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 16), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12) },200);
makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32) }, 300);
makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200); makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200);
makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1) }, 200);
makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor_desh) }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor_desh) }, 400);
@ -131,10 +127,8 @@ import net.minecraft.item.ItemStack;
makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150);
makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150);
makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200);
makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new OreDictStack(DURA.bolt(), 8), new ComparableStack(ModBlocks.machine_battery, 3), },400);
makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(TI.shell(), 8) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(DURA.pipe(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.turbine_tungsten, 1), new OreDictStack(GOLD.wireDense(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal()) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(TI.shell(), 8) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(DURA.pipe(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.turbine_tungsten, 1), new OreDictStack(GOLD.wireDense(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal()) }, 300);
makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal())}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal())}, 600);
makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300);
makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200);
makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200);
makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100); makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100);
@ -199,17 +193,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.part_generic, 32, EnumPartType.LDE) new ComparableStack(ModItems.part_generic, 32, EnumPartType.LDE)
},600); },600);
makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {
new OreDictStack(RUBBER.ingot(), 12),
new OreDictStack(TI.shell(), 3),
new ComparableStack(ModItems.thruster_large, 1),
new ComparableStack(ModItems.part_generic, 8, EnumPartType.LDE),
new ComparableStack(ModItems.plate_desh, 4),
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
new ComparableStack(ModItems.photo_panel, 24),
new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)
},500);
makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] { makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {
new OreDictStack(STEEL.shell(), 3), new OreDictStack(STEEL.shell(), 3),
new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.plate_desh, 4),
@ -246,39 +229,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.crystal_xen, 1), new ComparableStack(ModItems.crystal_xen, 1),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED) new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED)
},1000); },1000);
makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {
new OreDictStack(TI.shell(), 3),
new ComparableStack(ModItems.plate_desh, 8),
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()),
new ComparableStack(ModItems.photo_panel, 16),
new ComparableStack(ModItems.thruster_nuclear, 1),
new ComparableStack(ModItems.ingot_uranium_fuel, 6),
new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC),
new ComparableStack(ModItems.magnetron, 3),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)
},1200);
makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {
new OreDictStack(BIGMT.plate(), 24),
new ComparableStack(ModItems.motor_desh, 2),
new ComparableStack(ModItems.drill_titanium, 2),
new ComparableStack(ModItems.circuit, 12, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
new ComparableStack(ModItems.thruster_small, 1),
new ComparableStack(ModItems.photo_panel, 12),
new ComparableStack(ModItems.centrifuge_element, 4),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)
},600);
makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {
new ComparableStack(ModItems.ingot_meteorite, 4),
new ComparableStack(ModItems.plate_desh, 4),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.drill_titanium, 2),
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
new ComparableStack(ModItems.thruster_small, 1),
new ComparableStack(ModItems.photo_panel, 12),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)
},600);
makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] { makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] {
new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_speed_3, 1),
@ -304,19 +254,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID),
}, 500); }, 500);
makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] {
new ComparableStack(ModItems.ingot_electronium, 32),
new ComparableStack(ModBlocks.machine_dineutronium_battery, 16),
!exp ? new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 64) : new OreDictStack(ANY_RESISTANTALLOY.heavyComp(), 64),
new OreDictStack(DURA.block(), 16),
new OreDictStack(STAR.block(), 64),
new ComparableStack(ModBlocks.machine_transformer_dnt, 8),
new ComparableStack(ModItems.coil_magnetized_tungsten, 24),
new ComparableStack(ModItems.powder_magic, 64),
new ComparableStack(ModItems.plate_dineutronium, 24),
new ComparableStack(ModItems.ingot_u238m2),
new ComparableStack(ModItems.ingot_cft, 128)
}, 1200);
makeRecipe(new ComparableStack(ModBlocks.machine_combustion_engine, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_combustion_engine, 1), new AStack[] {
new OreDictStack(STEEL.plate(), 16), new OreDictStack(STEEL.plate(), 16),
new OreDictStack(CU.ingot(), 12), new OreDictStack(CU.ingot(), 12),
@ -463,18 +400,6 @@ import net.minecraft.item.ItemStack;
new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4) new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4)
}, 600); }, 600);
makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 3),
new OreDictStack(ND.wireDense(), 32),
!exp ? new OreDictStack(STEEL.ingot(), 16) : new OreDictStack(STEEL.heavyComp(), 3),
new OreDictStack(STEEL.plate(), 32),
new OreDictStack(AL.plate(), 32),
new OreDictStack(ANY_PLASTIC.ingot(), 24),
new OreDictStack(RUBBER.ingot(), 24),
new OreDictStack(CU.plateCast(), 8),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)
}, 600);
makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] {
!exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp(), 1), !exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp(), 1),
new OreDictStack(STEEL.pipe(), 8), new OreDictStack(STEEL.pipe(), 8),
@ -527,113 +452,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor, 2),
}, 200); }, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_chekhov, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new ComparableStack(ModItems.motor, 3),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
new OreDictStack(STEEL.pipe(), 3),
new OreDictStack(GUNMETAL.mechanism(), 3),
new ComparableStack(ModBlocks.crate_iron, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_friendly, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new ComparableStack(ModItems.motor, 3),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC),
new OreDictStack(STEEL.pipe(), 3),
new OreDictStack(GUNMETAL.mechanism(), 1),
new ComparableStack(ModBlocks.crate_iron, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_jeremy, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.motor_desh, 1),
new OreDictStack(STEEL.shell(), 3),
new OreDictStack(WEAPONSTEEL.mechanism(), 3),
new ComparableStack(ModBlocks.crate_steel, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_tauon, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new OreDictStack(ANY_PLASTIC.ingot(), 4),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.motor_desh, 1),
new OreDictStack(CU.ingot(), 32),
new OreDictStack(BIGMT.mechanism(), 3),
new ComparableStack(ModItems.battery_lithium, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_richard, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
new OreDictStack(ANY_PLASTIC.ingot(), 2),
new OreDictStack(STEEL.shell(), 8),
new OreDictStack(WEAPONSTEEL.mechanism(), 3),
new ComparableStack(ModBlocks.crate_steel, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_howard, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 24),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.motor_desh, 2),
new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED),
new OreDictStack(STEEL.pipe(), 10),
new OreDictStack(WEAPONSTEEL.mechanism(), 3),
new ComparableStack(ModBlocks.crate_steel, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_maxwell, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 1),
new OreDictStack(STEEL.ingot(), 24),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED),
new OreDictStack(STEEL.pipe(), 4),
new OreDictStack(BIGMT.mechanism(), 3),
new ComparableStack(ModItems.magnetron, 16),
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_fritz, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new ComparableStack(ModItems.motor, 3),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
new OreDictStack(STEEL.pipe(), 8),
new OreDictStack(GUNMETAL.mechanism(), 3),
new ComparableStack(ModBlocks.barrel_steel, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_arty, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 128),
new ComparableStack(ModItems.motor_desh, 5),
new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED),
new OreDictStack(STEEL.pipe(), 12),
new OreDictStack(WEAPONSTEEL.mechanism(), 16),
new ComparableStack(ModBlocks.machine_radar, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_himars, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 128),
new OreDictStack(ANY_PLASTIC.ingot(), 64),
new ComparableStack(ModItems.motor_desh, 5),
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED),
new OreDictStack(BIGMT.mechanism(), 8),
new ComparableStack(ModBlocks.machine_radar, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 300);
makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL), new AStack[] { makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL), new AStack[] {
new OreDictStack(STEEL.plate(), 24), new OreDictStack(STEEL.plate(), 24),
new OreDictStack(ANY_PLASTIC.ingot(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 12),
@ -707,14 +525,6 @@ import net.minecraft.item.ItemStack;
new OreDictStack(RUBBER.ingot(), 8), new OreDictStack(RUBBER.ingot(), 8),
new OreDictStack(STEEL.pipe(), 8), new OreDictStack(STEEL.pipe(), 8),
}, 400); }, 400);
makeRecipe(new ComparableStack(Item.getItemFromBlock(ModBlocks.machine_fel), 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 1),
new OreDictStack(ALLOY.wireDense(), 64),
!exp ? new OreDictStack(STEEL.plateCast(), 12) : new OreDictStack(STEEL.heavyComp(), 1),
new OreDictStack(ANY_PLASTIC.ingot(), 16),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR),
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)
}, 400);
makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] {
new ComparableStack(ModBlocks.concrete_asbestos, 4), new ComparableStack(ModBlocks.concrete_asbestos, 4),
@ -851,17 +661,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM),
}, 400); }, 400);
makeRecipe(new ComparableStack(ModBlocks.machine_exposure_chamber, 1), new AStack[] {
!exp ? new OreDictStack(AL.plateCast(), 12) : new OreDictStack(AL.heavyComp(), 1),
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),
new OreDictStack(ANY_HARDPLASTIC.ingot(), 12),
new OreDictStack(ALLOY.wireDense(), 32),
new ComparableStack(ModItems.motor_desh, 2),
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID),
new ComparableStack(ModBlocks.capacitor_tantalium, 1),
new ComparableStack(ModBlocks.glass_quartz, 16)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.launch_pad_large, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.launch_pad_large, 1), new AStack[] {
new OreDictStack(STEEL.plateCast(), 6), new OreDictStack(STEEL.plateCast(), 6),
@ -1010,20 +809,6 @@ import net.minecraft.item.ItemStack;
addTantalium(new ComparableStack(ModBlocks.turret_fritz, 1), 3); addTantalium(new ComparableStack(ModBlocks.turret_fritz, 1), 3);
addTantalium(new ComparableStack(ModBlocks.launch_pad, 1), 5); addTantalium(new ComparableStack(ModBlocks.launch_pad, 1), 5);
makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 3),
new ComparableStack(ModBlocks.hadron_coil_neodymium, 8),
new OreDictStack(ALLOY.wireFine(), 64),
new OreDictStack(STEEL.ingot(), 16),
new OreDictStack(STEEL.plate(), 32),
new OreDictStack(AL.plate(), 32),
new OreDictStack(ANY_PLASTIC.ingot(), 24),
new OreDictStack(RUBBER.ingot(), 24),
new OreDictStack(CU.plateCast(), 8),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC),
new ComparableStack(ModItems.circuit, 50, EnumCircuitType.CAPACITOR_BOARD)
}, 600);
makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] {
new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.ingot(), 16),
new OreDictStack(AL.plate(), 32), new OreDictStack(AL.plate(), 32),
@ -1040,34 +825,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC),
new ComparableStack(ModItems.circuit, 10, EnumCircuitType.CAPACITOR_BOARD), new ComparableStack(ModItems.circuit, 10, EnumCircuitType.CAPACITOR_BOARD),
}, 300); }, 300);
makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 3),
new ComparableStack(ModBlocks.steel_scaffold, 10),
new OreDictStack(STEEL.ingot(), 16),
new OreDictStack(ANY_PLASTIC.ingot(), 8),
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.circuit, 15, EnumCircuitType.CAPACITOR_BOARD),
}, 200);
makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core_large, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 5),
new ComparableStack(ModBlocks.steel_scaffold, 10),
new OreDictStack(STEEL.ingot(), 24),
new OreDictStack(ANY_PLASTIC.ingot(), 12),
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.circuit, 25, EnumCircuitType.CAPACITOR_BOARD),
}, 200);
makeRecipe(new ComparableStack(ModBlocks.struct_soyuz_core, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 5),
new ComparableStack(ModBlocks.steel_scaffold, 24),
new OreDictStack(STEEL.ingot(), 32),
new OreDictStack(ANY_PLASTIC.ingot(), 24),
new ComparableStack(ModItems.circuit, 5, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.upgrade_power_3, 3),
new ComparableStack(ModItems.circuit, 100, EnumCircuitType.CAPACITOR_BOARD),
}, 200);
} }
makeRecipe(new ComparableStack(ModBlocks.machine_fracking_tower), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_fracking_tower), new AStack[] {

View File

@ -27,6 +27,7 @@ import com.hbm.items.ItemEnums.EnumExpensiveType;
import com.hbm.items.ItemEnums.EnumSecretType; import com.hbm.items.ItemEnums.EnumSecretType;
import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.machine.ItemFluidIcon; import com.hbm.items.machine.ItemFluidIcon;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemDrillbit.EnumDrillType;
import com.hbm.items.machine.ItemPACoil.EnumCoilType; import com.hbm.items.machine.ItemPACoil.EnumCoilType;
@ -82,7 +83,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.platebismuth").setup(200, 100).outputItems(new ItemStack(ModItems.plate_bismuth, 1)) this.register(new GenericRecipe("ass.platebismuth").setup(200, 100).outputItems(new ItemStack(ModItems.plate_bismuth, 1))
.inputItems(new ComparableStack(ModItems.nugget_bismuth, 2), new OreDictStack(U238.billet(), 2), new OreDictStack(NB.dust(), 1))); .inputItems(new ComparableStack(ModItems.nugget_bismuth, 2), new OreDictStack(U238.billet(), 2), new OreDictStack(NB.dust(), 1)));
this.register(new GenericRecipe("ass.plateeuphemium").setup(600, 100).outputItems(new ItemStack(ModItems.plate_euphemium, 1)) this.register(new GenericRecipe("ass.plateeuphemium").setup(600, 100).outputItems(new ItemStack(ModItems.plate_euphemium, 1))
.inputItems(new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.dust(), 3), new OreDictStack(BI.dust(), 1), new OreDictStack(VOLCANIC.gem(), 1), new ComparableStack(ModItems.ingot_osmiridium))); .inputItems(new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.dust(), 3), new OreDictStack(BI.dust(), 1), new OreDictStack(VOLCANIC.gem(), 1), new OreDictStack(OSMIRIDIUM.ingot())));
this.register(new GenericRecipe("ass.platednt").setup(600, 100).outputItems(new ItemStack(ModItems.plate_dineutronium, 4)) this.register(new GenericRecipe("ass.platednt").setup(600, 100).outputItems(new ItemStack(ModItems.plate_dineutronium, 4))
.inputItems(new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModItems.powder_spark_mix, 2), new OreDictStack(DESH.ingot(), 1))); .inputItems(new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModItems.powder_spark_mix, 2), new OreDictStack(DESH.ingot(), 1)));
@ -306,7 +307,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC)) .inputItems(new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.part_generic, 4, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC))); .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.part_generic, 4, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)));
this.register(new GenericRecipe("ass.fel").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_fel, 1)) this.register(new GenericRecipe("ass.fel").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_fel, 1))
.inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.part_generic, 4, EnumPartType.GLASS_POLARIZED), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)) .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.part_generic, 4, EnumPartType.GLASS_POLARIZED), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.part_generic, 4, EnumPartType.GLASS_POLARIZED), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.CIRCUIT))); .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.part_generic, 4, EnumPartType.GLASS_POLARIZED), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.CIRCUIT)));
this.register(new GenericRecipe("ass.silex").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_silex, 1)) this.register(new GenericRecipe("ass.silex").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_silex, 1))
.inputItems(new ComparableStack(ModBlocks.glass_quartz, 16), new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(DESH.ingot(), 4), new OreDictStack(RUBBER.ingot(), 8), new OreDictStack(STEEL.pipe(), 8)) .inputItems(new ComparableStack(ModBlocks.glass_quartz, 16), new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(DESH.ingot(), 4), new OreDictStack(RUBBER.ingot(), 8), new OreDictStack(STEEL.pipe(), 8))
@ -339,7 +340,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new OreDictStack(STEEL.plate(), 16), new OreDictStack(TI.shell(), 4), new OreDictStack(DURA.plate(), 4), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.motor, 3)) .inputItems(new OreDictStack(STEEL.plate(), 16), new OreDictStack(TI.shell(), 4), new OreDictStack(DURA.plate(), 4), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.motor, 3))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(DURA.plate(), 4), new ComparableStack(ModItems.crystal_redstone, 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.motor_desh, 3))); .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(DURA.plate(), 4), new ComparableStack(ModItems.crystal_redstone, 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.motor_desh, 3)));
this.register(new GenericRecipe("ass.teleporter").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_teleporter, 1)) this.register(new GenericRecipe("ass.teleporter").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_teleporter, 1))
.inputItems(new OreDictStack(TI.plate(), 12), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1))); .inputItems(new OreDictStack(TI.plate(), 12), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)));
this.register(new GenericRecipe("ass.radar").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_radar, 1)) this.register(new GenericRecipe("ass.radar").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_radar, 1))
.inputItems(new OreDictStack(STEEL.plate(), 12), new OreDictStack(ANY_RUBBER.ingot(), 12), new ComparableStack(ModItems.magnetron, 5), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC.ordinal()), new ComparableStack(ModItems.crt_display, 4)) .inputItems(new OreDictStack(STEEL.plate(), 12), new OreDictStack(ANY_RUBBER.ingot(), 12), new ComparableStack(ModItems.magnetron, 5), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC.ordinal()), new ComparableStack(ModItems.crt_display, 4))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.magnetron, 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.CIRCUIT), new ComparableStack(ModItems.crt_display, 4))); .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.magnetron, 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.CIRCUIT), new ComparableStack(ModItems.crt_display, 4)));
@ -400,36 +401,49 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.motor_desh, 5), new OreDictStack(STEEL.pipe(), 24), new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 16))); .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.motor_desh, 5), new OreDictStack(STEEL.pipe(), 24), new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 16)));
// batteries // batteries
this.register(new GenericRecipe("ass.battery").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_battery, 1)) this.register(new GenericRecipe("ass.capacitorgold").setup(100, 100).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_GOLD.ordinal()))
.inputItems(new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12))); .inputItems(new OreDictStack(STEEL.plate(), 8),
this.register(new GenericRecipe("ass.batterylithium").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_lithium_battery, 1)) new OreDictStack(GOLD.wireDense(), 16)));
.inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12))); this.register(new GenericRecipe("ass.capacitorniobium").setup(100, 1_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM.ordinal()))
this.register(new GenericRecipe("ass.batteryschrabidium").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_schrabidium_battery, 1)) .inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 12),
.inputItems(new OreDictStack(DESH.ingot(), 16), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12))); new OreDictStack(NB.wireDense(), 24)));
this.register(new GenericRecipe("ass.batterydnt").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_dineutronium_battery, 1)) this.register(new GenericRecipe("ass.capacitortantalum").setup(100, 10_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM.ordinal()))
.inputItems(new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32))); .inputItems(new OreDictStack(ANY_HARDPLASTIC.ingot(), 16),
this.register(new GenericRecipe("ass.fensusan").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.machine_fensu, 1)) new OreDictStack(TA.ingot(), 24)));
.inputItems(new ComparableStack(ModItems.ingot_electronium, 32), this.register(new GenericRecipe("ass.capacitorbismuth").setup(100, 25_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_BISMUTH.ordinal()))
new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), .inputItems(new OreDictStack(ANY_HARDPLASTIC.ingot(), 24),
new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 64), new OreDictStack(BI.ingot(), 24),
new OreDictStack(DURA.block(), 16), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CHIP_QUANTUM)));
new OreDictStack(STAR.block(), 64), this.register(new GenericRecipe("ass.capacitorspark").setup(100, 100_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_SPARK.ordinal()))
new ComparableStack(ModBlocks.machine_transformer_dnt, 8), .inputItems(new OreDictStack(CMB.plateCast(), 12),
new ComparableStack(ModItems.coil_magnetized_tungsten, 24), new ComparableStack(ModItems.powder_spark_mix, 32),
new ComparableStack(ModItems.pellet_charged, 32),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CHIP_QUANTUM))
.inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 8_000))
.outputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 8_000)));
this.register(new GenericRecipe("ass.fensusan").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.machine_battery_redd, 1))
.inputItems(new ComparableStack(ModItems.ingot_electronium, 64),
new ComparableStack(ModItems.battery_pack, 16, EnumBatteryPack.BATTERY_QUANTUM),
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64),
new OreDictStack(CMB.plateCast(), 32),
new OreDictStack(MAGTUNG.wireDense(), 32),
new ComparableStack(ModItems.plate_dineutronium, 64),
new ComparableStack(ModItems.powder_magic, 64), new ComparableStack(ModItems.powder_magic, 64),
new ComparableStack(ModItems.plate_dineutronium, 24),
new ComparableStack(ModItems.ingot_u238m2), new ComparableStack(ModItems.ingot_u238m2),
new ComparableStack(ModItems.ingot_cft, 64), new ComparableStack(ModItems.ingot_cft, 64),
new ComparableStack(ModItems.ingot_cft, 64)) new ComparableStack(ModItems.ingot_cft, 64))
.inputItemsEx(new ComparableStack(ModItems.ingot_electronium, 64), .inputItemsEx(new ComparableStack(ModItems.ingot_electronium, 64),
new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), new ComparableStack(ModItems.battery_pack, 16, EnumBatteryPack.BATTERY_QUANTUM),
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES),
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.FERRO_PLATING),
new OreDictStack(STAR.block(), 64), new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new ComparableStack(ModBlocks.machine_transformer_dnt, 8), new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new ComparableStack(ModItems.coil_magnetized_tungsten, 24), new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new ComparableStack(ModItems.powder_magic, 64), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64),
new ComparableStack(ModItems.plate_dineutronium, 24), new OreDictStack(CMB.plateCast(), 64),
new ComparableStack(ModItems.ingot_u238m2), new ComparableStack(ModItems.ingot_u238m2),
new ComparableStack(ModItems.ingot_cft, 64), new ComparableStack(ModItems.ingot_cft, 64),
new ComparableStack(ModItems.ingot_cft, 64))); new ComparableStack(ModItems.ingot_cft, 64)));
@ -447,7 +461,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
// accelerators // accelerators
this.register(new GenericRecipe("ass.cyclotron").setup(600, 100).outputItems(new ItemStack(ModBlocks.machine_cyclotron, 1)) this.register(new GenericRecipe("ass.cyclotron").setup(600, 100).outputItems(new ItemStack(ModBlocks.machine_cyclotron, 1))
.inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 3), new OreDictStack(ND.wireDense(), 32), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(AL.plate(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), new OreDictStack(CU.plateCast(), 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)) .inputItems(new ComparableStack(ModItems.battery_pack, 3, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(ND.wireDense(), 32), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(AL.plate(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), new OreDictStack(CU.plateCast(), 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 32), new OreDictStack(AL.plateWelded(), 16), new OreDictStack(RUBBER.ingot(), 32), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.CIRCUIT))); .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 32), new OreDictStack(AL.plateWelded(), 16), new OreDictStack(RUBBER.ingot(), 32), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.CIRCUIT)));
this.register(new GenericRecipe("ass.beamline").setup(200, 100).outputItems(new ItemStack(ModBlocks.pa_beamline, 1)) this.register(new GenericRecipe("ass.beamline").setup(200, 100).outputItems(new ItemStack(ModBlocks.pa_beamline, 1))
.inputItems(new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(CU.plate(), 16), new OreDictStack(GOLD.wireDense(), 4)) .inputItems(new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(CU.plate(), 16), new OreDictStack(GOLD.wireDense(), 4))
@ -478,7 +492,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.pabscco").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.BSCCO.ordinal())).inputItems(new OreDictStack(BSCCO.wireDense(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64))); this.register(new GenericRecipe("ass.pabscco").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.BSCCO.ordinal())).inputItems(new OreDictStack(BSCCO.wireDense(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64)));
this.register(new GenericRecipe("ass.pachlorophyte").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.CHLOROPHYTE.ordinal())).inputItems(new OreDictStack(CU.wireDense(), 64), new OreDictStack(CU.wireDense(), 64), new ComparableStack(ModItems.powder_chlorophyte, 16))); this.register(new GenericRecipe("ass.pachlorophyte").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.CHLOROPHYTE.ordinal())).inputItems(new OreDictStack(CU.wireDense(), 64), new OreDictStack(CU.wireDense(), 64), new ComparableStack(ModItems.powder_chlorophyte, 16)));
this.register(new GenericRecipe("ass.exposurechamber").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_exposure_chamber, 1)) this.register(new GenericRecipe("ass.exposurechamber").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_exposure_chamber, 1))
.inputItems(new OreDictStack(AL.plateCast(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModBlocks.capacitor_tantalium, 1), new ComparableStack(ModBlocks.glass_quartz, 16)) .inputItems(new OreDictStack(AL.plateCast(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM), new ComparableStack(ModBlocks.glass_quartz, 16))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 24), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 24), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")); .setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum"));
@ -771,34 +785,34 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
// turrets // turrets
this.register(new GenericRecipe("ass.turretchekhov").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_chekhov, 1)) this.register(new GenericRecipe("ass.turretchekhov").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_chekhov, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1)) .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.turretfriendly").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_friendly, 1)) this.register(new GenericRecipe("ass.turretfriendly").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_friendly, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1)) .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.turretjeremy").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_jeremy, 1)) this.register(new GenericRecipe("ass.turretjeremy").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_jeremy, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(STEEL.shell(), 3), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(STEEL.shell(), 3), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.turrettauon").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_tauon, 1)) this.register(new GenericRecipe("ass.turrettauon").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_tauon, 1))
.inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(CU.ingot(), 32), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.battery_lithium, 1), new ComparableStack(ModItems.crt_display, 1)) .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(CU.ingot(), 32), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.turretrichard").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_richard, 1)) this.register(new GenericRecipe("ass.turretrichard").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_richard, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.shell(), 8), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.shell(), 8), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.turrethoward").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_howard, 1)) this.register(new GenericRecipe("ass.turrethoward").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_howard, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 10), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 10), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.maxwell").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_maxwell, 1)) this.register(new GenericRecipe("ass.maxwell").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_maxwell, 1))
.inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 4), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.magnetron, 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new ComparableStack(ModItems.crt_display, 1)) .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 4), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.magnetron, 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.fritz").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_fritz, 1)) this.register(new GenericRecipe("ass.fritz").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_fritz, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.barrel_steel)) .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.barrel_steel))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.arty").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.turret_arty, 1)) this.register(new GenericRecipe("ass.arty").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.turret_arty, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 12), new OreDictStack(WEAPONSTEEL.mechanism(), 16), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1)) .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 12), new OreDictStack(WEAPONSTEEL.mechanism(), 16), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "arty")); .setPools528(GenericRecipes.POOL_PREFIX_528 + "arty"));
this.register(new GenericRecipe("ass.himars").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.turret_himars, 1)) this.register(new GenericRecipe("ass.himars").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.turret_himars, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new OreDictStack(BIGMT.mechanism(), 8), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1)) .inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new OreDictStack(BIGMT.mechanism(), 8), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "arty")); .setPools528(GenericRecipes.POOL_PREFIX_528 + "arty"));
this.register(new GenericRecipe("ass.himarssmall").setup(100, 100).outputItems(new ItemStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL)) this.register(new GenericRecipe("ass.himarssmall").setup(100, 100).outputItems(new ItemStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL))
.inputItems(new OreDictStack(STEEL.plate(), 24), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.rocket_fuel, 48), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 48), new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC))); .inputItems(new OreDictStack(STEEL.plate(), 24), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.rocket_fuel, 48), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 48), new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC)));
@ -1023,7 +1037,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
new ComparableStack(ModItems.photo_panel, 24), new ComparableStack(ModItems.photo_panel, 24),
new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC), new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC),
new ComparableStack(ModBlocks.machine_lithium_battery, 1))); new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)));
this.register(new GenericRecipe("ass.satellitemapper").setup(600, 100).outputItems(new ItemStack(ModItems.sat_head_mapper, 1)) this.register(new GenericRecipe("ass.satellitemapper").setup(600, 100).outputItems(new ItemStack(ModItems.sat_head_mapper, 1))
.inputItems(new OreDictStack(STEEL.shell(), 3), .inputItems(new OreDictStack(STEEL.shell(), 3),
new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.plate_desh, 4),
@ -1064,7 +1078,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.ingot_uranium_fuel, 6),
new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC), new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC),
new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.magnetron, 3),
new ComparableStack(ModBlocks.machine_lithium_battery, 1))); new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)));
this.register(new GenericRecipe("ass.satelliteasteroidminer").setup(600, 100).outputItems(new ItemStack(ModItems.sat_miner, 1)) this.register(new GenericRecipe("ass.satelliteasteroidminer").setup(600, 100).outputItems(new ItemStack(ModItems.sat_miner, 1))
.inputItems(new OreDictStack(BIGMT.plate(), 24), .inputItems(new OreDictStack(BIGMT.plate(), 24),
new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.motor_desh, 2),
@ -1074,7 +1088,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.thruster_small, 1),
new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.photo_panel, 12),
new ComparableStack(ModItems.centrifuge_element, 4), new ComparableStack(ModItems.centrifuge_element, 4),
new ComparableStack(ModBlocks.machine_lithium_battery, 1))); new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)));
this.register(new GenericRecipe("ass.satellitelunarminer").setup(600, 100).outputItems(new ItemStack(ModItems.sat_lunar_miner, 1)) this.register(new GenericRecipe("ass.satellitelunarminer").setup(600, 100).outputItems(new ItemStack(ModItems.sat_lunar_miner, 1))
.inputItems(new ComparableStack(ModItems.ingot_meteorite, 4), .inputItems(new ComparableStack(ModItems.ingot_meteorite, 4),
new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.plate_desh, 4),
@ -1084,7 +1098,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.thruster_small, 1),
new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.photo_panel, 12),
new ComparableStack(ModBlocks.machine_lithium_battery, 1))); new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)));
this.register(new GenericRecipe("ass.gerald").setup(6_000, 100).outputItems(new ItemStack(ModItems.sat_gerald, 1)) this.register(new GenericRecipe("ass.gerald").setup(6_000, 100).outputItems(new ItemStack(ModItems.sat_gerald, 1))
.inputItems(new OreDictStack(SBD.plateCast(), 64), .inputItems(new OreDictStack(SBD.plateCast(), 64),
new OreDictStack(SBD.plateCast(), 64), new OreDictStack(SBD.plateCast(), 64),

View File

@ -19,6 +19,7 @@ import com.hbm.items.ItemEnums.EnumFuelAdditive;
import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemFluidIcon; import com.hbm.items.machine.ItemFluidIcon;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
@ -155,6 +156,36 @@ public class ChemicalPlantRecipes extends GenericRecipes<GenericRecipe> {
.inputFluids(new FluidStack(Fluids.BITUMEN, 1_000)) .inputFluids(new FluidStack(Fluids.BITUMEN, 1_000))
.outputItems(new ItemStack(ModBlocks.asphalt, 16))); .outputItems(new ItemStack(ModBlocks.asphalt, 16)));
/// BATTERIES ///
this.register(new GenericRecipe("chem.batterylead").setup(100, 100)
.inputItems(new OreDictStack(STEEL.plate(), 4),
new OreDictStack(PB.ingot(), 4))
.inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 8_000))
.outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal())));
this.register(new GenericRecipe("chem.batterylithium").setup(100, 1_000)
.inputItems(new OreDictStack(LI.dust(), 12),
new OreDictStack(CO.dust(), 8),
new OreDictStack(ANY_PLASTIC.ingot(), 4))
.inputFluids(new FluidStack(Fluids.OXYGEN, 2_000))
.outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM.ordinal())));
this.register(new GenericRecipe("chem.batterysodium").setup(100, 10_000)
.inputItems(new OreDictStack(NA.dust(), 24),
new OreDictStack(IRON.dust(), 24),
new OreDictStack(ANY_HARDPLASTIC.ingot(), 12))
.outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_SODIUM.ordinal())));
this.register(new GenericRecipe("chem.batteryschrabidium").setup(100, 25_000)
.inputItems(new OreDictStack(SA326.dust(), 24),
new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 8))
.inputFluids(new FluidStack(Fluids.HELIUM4, 8_000))
.outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_SCHRABIDIUM.ordinal())));
this.register(new GenericRecipe("chem.batteryquantum").setup(100, 100_000)
.inputItems(new OreDictStack(BSCCO.wireDense(), 24),
new ComparableStack(ModItems.pellet_charged, 32),
new ComparableStack(ModItems.ingot_cft, 16))
.inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 8_000))
.outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM.ordinal()))
.outputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 8_000)));
/// SOLIDS /// /// SOLIDS ///
this.register(new GenericRecipe("chem.desh").setup(100, 100) this.register(new GenericRecipe("chem.desh").setup(100, 100)
.inputItems(new ComparableStack(ModItems.powder_desh_mix)) .inputItems(new ComparableStack(ModItems.powder_desh_mix))

View File

@ -6,6 +6,7 @@ import com.hbm.interfaces.Spaghetti;
import com.hbm.inventory.FluidContainer; import com.hbm.inventory.FluidContainer;
import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidContainerRegistry;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.util.Tuple.Triplet; import com.hbm.util.Tuple.Triplet;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
@ -48,32 +49,17 @@ public class MachineRecipes {
ArrayList<ItemStack> fuels = new ArrayList<ItemStack>(); ArrayList<ItemStack> fuels = new ArrayList<ItemStack>();
fuels.add(new ItemStack(ModItems.battery_potato)); fuels.add(new ItemStack(ModItems.battery_potato));
fuels.add(new ItemStack(ModItems.battery_potatos)); fuels.add(new ItemStack(ModItems.battery_potatos));
fuels.add(new ItemStack(ModItems.battery_generic));
fuels.add(new ItemStack(ModItems.battery_red_cell));
fuels.add(new ItemStack(ModItems.battery_red_cell_6));
fuels.add(new ItemStack(ModItems.battery_red_cell_24));
fuels.add(new ItemStack(ModItems.battery_advanced));
fuels.add(new ItemStack(ModItems.battery_advanced_cell));
fuels.add(new ItemStack(ModItems.battery_advanced_cell_4));
fuels.add(new ItemStack(ModItems.battery_advanced_cell_12));
fuels.add(new ItemStack(ModItems.battery_lithium));
fuels.add(new ItemStack(ModItems.battery_lithium_cell));
fuels.add(new ItemStack(ModItems.battery_lithium_cell_3));
fuels.add(new ItemStack(ModItems.battery_lithium_cell_6));
fuels.add(new ItemStack(ModItems.battery_schrabidium));
fuels.add(new ItemStack(ModItems.battery_schrabidium_cell));
fuels.add(new ItemStack(ModItems.battery_schrabidium_cell_2));
fuels.add(new ItemStack(ModItems.battery_schrabidium_cell_4));
fuels.add(new ItemStack(ModItems.battery_trixite));
fuels.add(new ItemStack(ModItems.battery_spark));
fuels.add(new ItemStack(ModItems.battery_spark_cell_6));
fuels.add(new ItemStack(ModItems.battery_spark_cell_25));
fuels.add(new ItemStack(ModItems.battery_spark_cell_100));
fuels.add(new ItemStack(ModItems.battery_spark_cell_1000));
fuels.add(new ItemStack(ModItems.battery_spark_cell_10000));
fuels.add(new ItemStack(ModItems.battery_spark_cell_power));
fuels.add(new ItemStack(ModItems.fusion_core)); fuels.add(new ItemStack(ModItems.fusion_core));
fuels.add(new ItemStack(ModItems.energy_core)); fuels.add(new ItemStack(ModItems.energy_core));
for(EnumBatteryPack num : EnumBatteryPack.values()) fuels.add(new ItemStack(ModItems.battery_pack, 1, num.ordinal()));
fuels.add(new ItemStack(ModItems.battery_creative));
fuels.add(new ItemStack(ModItems.battery_sc_uranium));
fuels.add(new ItemStack(ModItems.battery_sc_technetium));
fuels.add(new ItemStack(ModItems.battery_sc_plutonium));
fuels.add(new ItemStack(ModItems.battery_sc_polonium));
fuels.add(new ItemStack(ModItems.battery_sc_gold));
fuels.add(new ItemStack(ModItems.battery_sc_lead));
fuels.add(new ItemStack(ModItems.battery_sc_americium));
return fuels; return fuels;
} }

View File

@ -172,7 +172,7 @@ public class PedestalRecipes extends SerializableRecipe {
rec.recipeSet = obj.get("set").getAsInt(); rec.recipeSet = obj.get("set").getAsInt();
} }
this.recipes.add(rec); this.register(rec);
} }
@Override @Override

View File

@ -740,8 +740,6 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.scrap, 1)), new AnvilOutput(new ItemStack(ModItems.scrap, 1)),
new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 1)), new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 1)),
new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F), new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F),
new AnvilOutput(new ItemStack(ModItems.battery_generic, 1), 0.25F),
new AnvilOutput(new ItemStack(ModItems.battery_advanced, 1), 0.1F),
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.01F) new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.01F)
} }
@ -753,7 +751,6 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.scrap, 1)), new AnvilOutput(new ItemStack(ModItems.scrap, 1)),
new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 2)), new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 2)),
new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F), new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F),
new AnvilOutput(new ItemStack(ModItems.battery_lithium, 1), 0.25F),
new AnvilOutput(new ItemStack(ModItems.battery_sc_uranium, 1), 0.1F), new AnvilOutput(new ItemStack(ModItems.battery_sc_uranium, 1), 0.1F),
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.05F) new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.05F)

View File

@ -327,6 +327,7 @@ public abstract class GenericRecipes<T extends GenericRecipe> extends Serializab
@Override @Override
public void deserialize(JsonArray array) { public void deserialize(JsonArray array) {
for(JsonElement element : array) { for(JsonElement element : array) {
if(element.isJsonPrimitive()) continue; // the array we get includes the "multi" tag, which is also the only primitive
ChanceOutput output = new ChanceOutput(); ChanceOutput output = new ChanceOutput();
output.deserialize(element.getAsJsonArray()); output.deserialize(element.getAsJsonArray());
pool.add(output); pool.add(output);

View File

@ -9,6 +9,7 @@ import com.hbm.items.ItemEnums.EnumCokeType;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemRTGPelletDepleted; import com.hbm.items.machine.ItemRTGPelletDepleted;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.tool.ItemBlowtorch; import com.hbm.items.tool.ItemBlowtorch;
import net.minecraft.init.Items; import net.minecraft.init.Items;
@ -45,7 +46,7 @@ public class ItemPoolsComponent {
weighted(ModItems.coil_copper_torus, 0, 1, 2, 3), weighted(ModItems.coil_copper_torus, 0, 1, 2, 3),
weighted(ModItems.wire_fine, Mats.MAT_MINGRADE.id, 1, 8, 5), weighted(ModItems.wire_fine, Mats.MAT_MINGRADE.id, 1, 8, 5),
weighted(ModItems.piston_selenium, 0, 1, 1, 3), weighted(ModItems.piston_selenium, 0, 1, 1, 3),
weighted(ModItems.battery_advanced_cell, 0, 1, 1, 3), weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_LEAD.ordinal(), 1, 1, 3),
weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 2, 4), weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 2, 4),
weighted(ModItems.circuit, EnumCircuitType.PCB.ordinal(), 1, 3, 5), weighted(ModItems.circuit, EnumCircuitType.PCB.ordinal(), 1, 3, 5),
weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 3), weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 3),
@ -81,7 +82,7 @@ public class ItemPoolsComponent {
weighted(ModItems.missile_generic, 0, 1, 1, 4), weighted(ModItems.missile_generic, 0, 1, 1, 4),
weighted(ModItems.missile_incendiary, 0, 1, 1, 4), weighted(ModItems.missile_incendiary, 0, 1, 1, 4),
weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), weighted(ModItems.gas_mask_m65, 0, 1, 1, 5),
weighted(ModItems.battery_advanced, 0, 1, 1, 5), weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_LEAD.ordinal(), 1, 1, 3),
weighted(ModItems.designator, 0, 1, 1, 5), weighted(ModItems.designator, 0, 1, 1, 5),
weighted(ModItems.thruster_small, 0, 1, 1, 5), weighted(ModItems.thruster_small, 0, 1, 1, 5),
weighted(ModItems.thruster_medium, 0, 1, 1, 4), weighted(ModItems.thruster_medium, 0, 1, 1, 4),

View File

@ -4,6 +4,7 @@ import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats;
import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ItemEnums.EnumCasingType;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType;
@ -52,8 +53,7 @@ public class ItemPoolsLegacy {
weighted(ModItems.casing, EnumCasingType.SMALL.ordinal(), 4, 10, 3), weighted(ModItems.casing, EnumCasingType.SMALL.ordinal(), 4, 10, 3),
weighted(ModItems.casing, EnumCasingType.SHOTSHELL.ordinal(), 4, 10, 3), weighted(ModItems.casing, EnumCasingType.SHOTSHELL.ordinal(), 4, 10, 3),
weighted(ModItems.cordite, 0, 4, 6, 5), weighted(ModItems.cordite, 0, 4, 6, 5),
weighted(ModItems.battery_generic, 0, 1, 1, 4), weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_REDSTONE.ordinal(), 1, 1, 1),
weighted(ModItems.battery_advanced, 0, 1, 1, 2),
weighted(ModItems.scrap, 0, 1, 3, 10), weighted(ModItems.scrap, 0, 1, 3, 10),
weighted(ModItems.dust, 0, 2, 4, 9), weighted(ModItems.dust, 0, 2, 4, 9),
weighted(ModItems.bottle_opener, 0, 1, 1, 2), weighted(ModItems.bottle_opener, 0, 1, 1, 2),
@ -79,8 +79,7 @@ public class ItemPoolsLegacy {
weighted(ModItems.wire_fine, Mats.MAT_MINGRADE.id, 2, 3, 7), weighted(ModItems.wire_fine, Mats.MAT_MINGRADE.id, 2, 3, 7),
weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 1, 4), weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 1, 4),
weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 2), weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 2),
weighted(ModItems.battery_generic, 0, 1, 1, 4), weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_REDSTONE.ordinal(), 1, 1, 1),
weighted(ModItems.battery_advanced, 0, 1, 1, 3),
weighted(ModItems.powder_iodine, 0, 1, 1, 1), weighted(ModItems.powder_iodine, 0, 1, 1, 1),
weighted(ModItems.powder_bromine, 0, 1, 1, 1), weighted(ModItems.powder_bromine, 0, 1, 1, 1),
weighted(ModBlocks.steel_poles, 0, 1, 4, 8), weighted(ModBlocks.steel_poles, 0, 1, 4, 8),
@ -116,9 +115,7 @@ public class ItemPoolsLegacy {
weighted(ModItems.grenade_smart, 0, 1, 3, 3), weighted(ModItems.grenade_smart, 0, 1, 3, 3),
weighted(ModItems.grenade_mirv, 0, 1, 1, 2), weighted(ModItems.grenade_mirv, 0, 1, 1, 2),
weighted(ModItems.stealth_boy, 0, 1, 1, 2), weighted(ModItems.stealth_boy, 0, 1, 1, 2),
weighted(ModItems.battery_advanced, 0, 1, 1, 3), weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_LITHIUM.ordinal(), 1, 1, 1),
weighted(ModItems.battery_advanced_cell, 0, 1, 1, 2),
weighted(ModItems.battery_schrabidium, 0, 1, 1, 1),
weighted(ModItems.syringe_awesome, 0, 1, 1, 1), weighted(ModItems.syringe_awesome, 0, 1, 1, 1),
weighted(ModItems.fusion_core, 0, 1, 1, 4), weighted(ModItems.fusion_core, 0, 1, 1, 4),
weighted(ModItems.bottle_nuka, 0, 1, 3, 6), weighted(ModItems.bottle_nuka, 0, 1, 3, 6),
@ -215,7 +212,7 @@ public class ItemPoolsLegacy {
//spaceship double chests //spaceship double chests
new ItemPool(POOL_SPACESHIP) {{ new ItemPool(POOL_SPACESHIP) {{
this.pool = new WeightedRandomChestContent[] { this.pool = new WeightedRandomChestContent[] {
weighted(ModItems.battery_advanced, 0, 1, 1, 5), weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_LEAD.ordinal(), 1, 1, 2),
weighted(ModItems.ingot_advanced_alloy, 0, 2, 16, 5), weighted(ModItems.ingot_advanced_alloy, 0, 2, 16, 5),
weighted(ModItems.wire_fine, Mats.MAT_ALLOY.id, 8, 32, 5), weighted(ModItems.wire_fine, Mats.MAT_ALLOY.id, 8, 32, 5),
weighted(ModItems.coil_advanced_alloy, 0, 2, 16, 5), weighted(ModItems.coil_advanced_alloy, 0, 2, 16, 5),

View File

@ -42,7 +42,6 @@ public class ItemPoolsSingle {
new ItemPool(POOL_VAULT_STANDARD) {{ new ItemPool(POOL_VAULT_STANDARD) {{
this.pool = new WeightedRandomChestContent[] { this.pool = new WeightedRandomChestContent[] {
weighted(ModItems.ingot_desh, 0, 2, 6, 1), weighted(ModItems.ingot_desh, 0, 2, 6, 1),
weighted(ModItems.battery_advanced_cell_4, 0, 1, 1, 1),
weighted(ModItems.powder_desh_mix, 0, 1, 5, 1), weighted(ModItems.powder_desh_mix, 0, 1, 5, 1),
weighted(Items.diamond, 0, 3, 6, 1), weighted(Items.diamond, 0, 3, 6, 1),
weighted(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD.ordinal(), 1, 1, 1), weighted(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD.ordinal(), 1, 1, 1),
@ -59,7 +58,6 @@ public class ItemPoolsSingle {
new ItemPool(POOL_VAULT_REINFORCED) {{ new ItemPool(POOL_VAULT_REINFORCED) {{
this.pool = new WeightedRandomChestContent[] { this.pool = new WeightedRandomChestContent[] {
weighted(ModItems.ingot_desh, 0, 6, 16, 1), weighted(ModItems.ingot_desh, 0, 6, 16, 1),
weighted(ModItems.battery_lithium, 0, 1, 1, 1),
weighted(ModItems.powder_power, 0, 1, 5, 1), weighted(ModItems.powder_power, 0, 1, 5, 1),
weighted(ModItems.sat_chip, 0, 1, 1, 1), weighted(ModItems.sat_chip, 0, 1, 1, 1),
weighted(Items.diamond, 0, 5, 9, 1), weighted(Items.diamond, 0, 5, 9, 1),
@ -81,7 +79,6 @@ public class ItemPoolsSingle {
weighted(ModItems.gun_carbine, 0, 1, 1, 1), weighted(ModItems.gun_carbine, 0, 1, 1, 1),
weighted(ModItems.ammo_standard, EnumAmmo.R762_DU.ordinal(), 16, 32, 1), weighted(ModItems.ammo_standard, EnumAmmo.R762_DU.ordinal(), 16, 32, 1),
weighted(ModItems.gun_congolake, 0, 1, 1, 1), weighted(ModItems.gun_congolake, 0, 1, 1, 1),
weighted(ModItems.battery_schrabidium_cell, 0, 1, 1, 1),
weighted(ModItems.circuit, EnumCircuitType.ADVANCED.ordinal(), 6, 12, 1) weighted(ModItems.circuit, EnumCircuitType.ADVANCED.ordinal(), 6, 12, 1)
}; };
}}; }};

View File

@ -1631,8 +1631,6 @@ public class ModItems {
@Deprecated public static Item battery_advanced; @Deprecated public static Item battery_advanced;
@Deprecated public static Item battery_lithium; @Deprecated public static Item battery_lithium;
@Deprecated public static Item battery_schrabidium; @Deprecated public static Item battery_schrabidium;
@Deprecated public static Item battery_spark;
@Deprecated public static Item battery_trixite;
@Deprecated public static Item battery_red_cell; @Deprecated public static Item battery_red_cell;
@Deprecated public static Item battery_red_cell_6; @Deprecated public static Item battery_red_cell_6;
@Deprecated public static Item battery_red_cell_24; @Deprecated public static Item battery_red_cell_24;
@ -1656,6 +1654,8 @@ public class ModItems {
public static Item battery_pack; public static Item battery_pack;
public static Item battery_creative; public static Item battery_creative;
public static Item cube_power; public static Item cube_power;
public static Item battery_spark;
public static Item battery_trixite;
public static Item battery_sc_uranium; public static Item battery_sc_uranium;
public static Item battery_sc_technetium; public static Item battery_sc_technetium;
@ -3873,8 +3873,8 @@ public class ModItems {
battery_advanced = new ItemBattery(20000, 500, 500).setUnlocalizedName("battery_advanced").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_advanced_new"); battery_advanced = new ItemBattery(20000, 500, 500).setUnlocalizedName("battery_advanced").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_advanced_new");
battery_lithium = new ItemBattery(250000, 1000, 1000).setUnlocalizedName("battery_lithium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_lithium"); battery_lithium = new ItemBattery(250000, 1000, 1000).setUnlocalizedName("battery_lithium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_lithium");
battery_schrabidium = new ItemBattery(1000000, 5000, 5000).setUnlocalizedName("battery_schrabidium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_schrabidium_new"); battery_schrabidium = new ItemBattery(1000000, 5000, 5000).setUnlocalizedName("battery_schrabidium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_schrabidium_new");
battery_spark = new ItemBattery(100000000, 2000000, 2000000).setUnlocalizedName("battery_spark").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark"); battery_spark = new Item().setUnlocalizedName("battery_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":battery_spark");
battery_trixite = new ItemBattery(5000000, 40000, 200000).setUnlocalizedName("battery_trixite").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_trixite"); battery_trixite = new Item().setUnlocalizedName("battery_trixite").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":battery_trixite");
battery_red_cell = new ItemBattery(15000, 100, 100).setUnlocalizedName("battery_red_cell").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell"); battery_red_cell = new ItemBattery(15000, 100, 100).setUnlocalizedName("battery_red_cell").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell");
battery_red_cell_6 = new ItemBattery(15000 * 6, 100, 100).setUnlocalizedName("battery_red_cell_6").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell_6"); battery_red_cell_6 = new ItemBattery(15000 * 6, 100, 100).setUnlocalizedName("battery_red_cell_6").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell_6");
battery_red_cell_24 = new ItemBattery(15000 * 24, 100, 100).setUnlocalizedName("battery_red_cell_24").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell_24"); battery_red_cell_24 = new ItemBattery(15000 * 24, 100, 100).setUnlocalizedName("battery_red_cell_24").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell_24");
@ -3896,7 +3896,7 @@ public class ModItems {
battery_spark_cell_power = new ItemBattery(100000000L * 1000000L, 200000000, 200000000).setUnlocalizedName("battery_spark_cell_power").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark_cell_power"); battery_spark_cell_power = new ItemBattery(100000000L * 1000000L, 200000000, 200000000).setUnlocalizedName("battery_spark_cell_power").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark_cell_power");
battery_pack = new ItemBatteryPack().setUnlocalizedName("battery_pack").setTextureName(RefStrings.MODID + ":battery_generic_new"); battery_pack = new ItemBatteryPack().setUnlocalizedName("battery_pack").setTextureName(RefStrings.MODID + ":battery_generic_new");
battery_creative = new Item().setUnlocalizedName("battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_creative_new"); battery_creative = new ItemBatteryCreative().setUnlocalizedName("battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_creative_new");
cube_power = new ItemBattery(1000000000000000000L, 1000000000000000L, 1000000000000000L).setUnlocalizedName("cube_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":cube_power"); cube_power = new ItemBattery(1000000000000000000L, 1000000000000000L, 1000000000000000L).setUnlocalizedName("cube_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":cube_power");
battery_sc_uranium = new ItemSelfcharger(5).setUnlocalizedName("battery_sc_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_uranium"); battery_sc_uranium = new ItemSelfcharger(5).setUnlocalizedName("battery_sc_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_uranium");

View File

@ -134,6 +134,11 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider
return target.hasDisplayName(); return target.hasDisplayName();
} }
@Override
public boolean isUseableByPlayer(EntityPlayer player) {
return player.getHeldItem() == this.target;
}
@Override @Override
public void markDirty() { // You have been blessed by the unfuck public void markDirty() { // You have been blessed by the unfuck

View File

@ -0,0 +1,18 @@
package com.hbm.items.machine;
import api.hbm.energymk2.IBatteryItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class ItemBatteryCreative extends Item implements IBatteryItem {
@Override public void chargeBattery(ItemStack stack, long i) { }
@Override public void setCharge(ItemStack stack, long i) { }
@Override public void dischargeBattery(ItemStack stack, long i) { }
@Override public long getCharge(ItemStack stack) { return Long.MAX_VALUE / 2L; }
@Override public long getMaxCharge(ItemStack stack) { return Long.MAX_VALUE; }
@Override public long getChargeRate(ItemStack stack) { return Long.MAX_VALUE / 100L; }
@Override public long getDischargeRate(ItemStack stack) { return Long.MAX_VALUE / 100L; }
}

View File

@ -4,6 +4,7 @@ import java.util.List;
import com.hbm.interfaces.IOrderedEnum; import com.hbm.interfaces.IOrderedEnum;
import com.hbm.items.ItemEnumMulti; import com.hbm.items.ItemEnumMulti;
import com.hbm.items.ModItems;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.util.BobMathUtil; import com.hbm.util.BobMathUtil;
@ -29,20 +30,34 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem {
} }
public static enum EnumBatteryPack { public static enum EnumBatteryPack {
REDSTONE ("battery_redstone", 100L), BATTERY_REDSTONE ("battery_redstone", 100L, false),
LEAD ("battery_lead", 1_000L), BATTERY_LEAD ("battery_lead", 1_000L, false),
LITHIUM ("battery_lithium", 10_000L), BATTERY_LITHIUM ("battery_lithium", 10_000L, false),
SODIUM ("battery_sodium", 50_000L), BATTERY_SODIUM ("battery_sodium", 50_000L, false),
SCHRABIDIUM ("battery_schrabidium", 250_000L), BATTERY_SCHRABIDIUM ("battery_schrabidium", 250_000L, false),
QUANTUM ("battery_quantum", 1_000_000L); BATTERY_QUANTUM ("battery_quantum", 1_000_000L, 20 * 60 * 60),
CAPACITOR_COPPER ("capacitor_copper", 1_000L, true),
CAPACITOR_GOLD ("capacitor_gold", 10_000L, true),
CAPACITOR_NIOBIUM ("capacitor_niobium", 100_000L, true),
CAPACITOR_TANTALUM ("capacitor_tantalum", 500_000L, true),
CAPACITOR_BISMUTH ("capacitor_bismuth", 2_500_000L, true),
CAPACITOR_SPARK ("capacitor_spark", 10_000_000L, true);
public ResourceLocation texture; public ResourceLocation texture;
public long capacity; public long capacity;
public long chargeRate; public long chargeRate;
public long dischargeRate; public long dischargeRate;
private EnumBatteryPack(String tex, long dischargeRate) { private EnumBatteryPack(String tex, long dischargeRate, boolean capacitor) {
this(tex, dischargeRate * 20 * 60 * 15, dischargeRate * 10, dischargeRate); this(tex,
capacitor ? (dischargeRate * 20 * 30) : (dischargeRate * 20 * 60 * 15),
capacitor ? dischargeRate : dischargeRate * 10,
dischargeRate);
}
private EnumBatteryPack(String tex, long dischargeRate, long duration) {
this(tex, dischargeRate * duration, dischargeRate * 10, dischargeRate);
} }
private EnumBatteryPack(String tex, long capacity, long chargeRate, long dischargeRate) { private EnumBatteryPack(String tex, long capacity, long chargeRate, long dischargeRate) {
@ -51,6 +66,9 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem {
this.chargeRate = chargeRate; this.chargeRate = chargeRate;
this.dischargeRate = dischargeRate; this.dischargeRate = dischargeRate;
} }
public boolean isCapacitor() { return this.ordinal() > BATTERY_QUANTUM.ordinal(); }
public ItemStack stack() { return new ItemStack(ModItems.battery_pack, 1, this.ordinal()); }
} }
@Override @Override
@ -79,7 +97,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem {
stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") - i); stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") - i);
} else { } else {
stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound = new NBTTagCompound();
stack.stackTagCompound.setLong("charge", this.getMaxCharge(stack) - i); stack.stackTagCompound.setLong("charge", 0);
} }
} }
@ -89,7 +107,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem {
return stack.stackTagCompound.getLong("charge"); return stack.stackTagCompound.getLong("charge");
} else { } else {
stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound = new NBTTagCompound();
stack.stackTagCompound.setLong("charge", getMaxCharge(stack)); stack.stackTagCompound.setLong("charge", 0);
return stack.stackTagCompound.getLong("charge"); return stack.stackTagCompound.getLong("charge");
} }
} }
@ -112,7 +130,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem {
return pack.dischargeRate; return pack.dischargeRate;
} }
@Override public boolean showDurabilityBar(ItemStack stack) { return true; } @Override public boolean showDurabilityBar(ItemStack stack) { return getDurabilityForDisplay(stack) != 0; }
@Override public double getDurabilityForDisplay(ItemStack stack) { return 1D - (double) getCharge(stack) / (double) getMaxCharge(stack); } @Override public double getDurabilityForDisplay(ItemStack stack) { return 1D - (double) getCharge(stack) / (double) getMaxCharge(stack); }
@Override @Override
@ -124,7 +142,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem {
if(itemstack.hasTagCompound()) charge = getCharge(itemstack); if(itemstack.hasTagCompound()) charge = getCharge(itemstack);
list.add(EnumChatFormatting.GREEN + "Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE"); list.add(EnumChatFormatting.GREEN + "Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE (" + (charge * 1000 / maxCharge / 10D) + "%)");
list.add(EnumChatFormatting.YELLOW + "Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t"); list.add(EnumChatFormatting.YELLOW + "Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t");
list.add(EnumChatFormatting.YELLOW + "Discharge rate: " + BobMathUtil.getShortNumber(dischargeRate) + "HE/t"); list.add(EnumChatFormatting.YELLOW + "Discharge rate: " + BobMathUtil.getShortNumber(dischargeRate) + "HE/t");
list.add(EnumChatFormatting.GOLD + "Time for full charge: " + (maxCharge / chargeRate / 20 / 60D) + "min"); list.add(EnumChatFormatting.GOLD + "Time for full charge: " + (maxCharge / chargeRate / 20 / 60D) + "min");

View File

@ -7,6 +7,7 @@ import com.hbm.interfaces.Spaghetti;
import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.OreDictManager.DictFrame;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
@ -180,10 +181,6 @@ public class ItemStarterKit extends Item {
player.inventory.addItemStackToInventory(new ItemStack(ModItems.piston_selenium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.piston_selenium, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_full, 16, Fluids.DIESEL.getID())); player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_full, 16, Fluids.DIESEL.getID()));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_full, 16, Fluids.BIOFUEL.getID())); player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_full, 16, Fluids.BIOFUEL.getID()));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_advanced_cell_4, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_advanced_cell_4, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_lithium, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_lithium, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_potato, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_potato, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.screwdriver, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.screwdriver, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_excavator, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_excavator, 1));
@ -191,8 +188,8 @@ public class ItemStarterKit extends Item {
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_cable, 64)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_cable, 64));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_wire_coated, 16)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_wire_coated, 16));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_pylon, 8)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_pylon, 8));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_battery, 4)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_battery_socket, 4));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_lithium_battery, 2)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_pack, 4, EnumBatteryPack.BATTERY_LEAD.ordinal()));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_converter_he_rf, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_converter_he_rf, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_converter_rf_he, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_converter_rf_he, 1));
} }
@ -382,7 +379,6 @@ public class ItemStarterKit extends Item {
player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator_range, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator_range, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator_manual, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator_manual, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_schrabidium_cell_4, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_generic, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_generic, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_strong, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_strong, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_burst, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_burst, 1));

View File

@ -443,7 +443,7 @@ public class LegoClient {
double age = MathHelper.clamp_double(1D - ((double) bullet.ticksExisted - 2 + interp) / (double) bullet.getBulletConfig().expires, 0, 1); double age = MathHelper.clamp_double(1D - ((double) bullet.ticksExisted - 2 + interp) / (double) bullet.getBulletConfig().expires, 0, 1);
GL11.glScaled(age / 2 + 0.5, 1, age / 2 + 0.5); GL11.glScaled(age / 2 + 0.5, 1, age / 2 + 0.5);
int colorInner = ((int)(r * age) << 16) | ((int)(g * age) << 8) | (int) (b * age); int colorInner = ((int)(r * age) << 16) | ((int)(g * age) << 8) | (int) (b * age);
BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, bullet.ticksExisted / 3, (int)(bullet.beamLength / 2 + 1), 0F, 8, 0.0625F); BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, bullet.ticksExisted / 3, (int)(bullet.beamLength / 2 + 1), 0F, 4, 0.025F);
GL11.glPopMatrix(); GL11.glPopMatrix();
RenderArcFurnace.fullbright(false); RenderArcFurnace.fullbright(false);
} }

View File

@ -42,7 +42,7 @@ public class MagazineElectricEngine implements IMagazine {
@Override public void reloadAction(ItemStack stack, IInventory inventory) { } @Override public void reloadAction(ItemStack stack, IInventory inventory) { }
@Override public SpentCasing getCasing(ItemStack stack, IInventory inventory) { return null; } @Override public SpentCasing getCasing(ItemStack stack, IInventory inventory) { return null; }
@Override public ItemStack getIconForHUD(ItemStack stack, EntityPlayer player) { return new ItemStack(ModItems.battery_generic); } @Override public ItemStack getIconForHUD(ItemStack stack, EntityPlayer player) { return new ItemStack(ModItems.battery_creative); }
@Override public String reportAmmoStateForHUD(ItemStack stack, EntityPlayer player) { return BobMathUtil.getShortNumber(getAmount(stack, player.inventory)) + "/" + BobMathUtil.getShortNumber(this.capacity) + "HE"; } @Override public String reportAmmoStateForHUD(ItemStack stack, EntityPlayer player) { return BobMathUtil.getShortNumber(getAmount(stack, player.inventory)) + "/" + BobMathUtil.getShortNumber(this.capacity) + "HE"; }
@Override public void setAmountBeforeReload(ItemStack stack, int amount) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_PREV + index, amount); } @Override public void setAmountBeforeReload(ItemStack stack, int amount) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_PREV + index, amount); }

View File

@ -307,6 +307,7 @@ public class ClientProxy extends ServerProxy {
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityForceField.class, new RenderMachineForceField()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityForceField.class, new RenderMachineForceField());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFENSU.class, new RenderFENSU()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFENSU.class, new RenderFENSU());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBatterySocket.class, new RenderBatterySocket()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBatterySocket.class, new RenderBatterySocket());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBatteryREDD.class, new RenderBatteryREDD());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLargeTurbine.class, new RenderBigTurbine()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLargeTurbine.class, new RenderBigTurbine());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineReactorBreeding.class, new RenderBreeder()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineReactorBreeding.class, new RenderBreeder());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySolarBoiler.class, new RenderSolarBoiler()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySolarBoiler.class, new RenderSolarBoiler());

View File

@ -30,6 +30,7 @@ import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.food.ItemConserve.EnumFoodType;
import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType; import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType;
import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemBattery;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.machine.ItemFluidIDMulti; import com.hbm.items.machine.ItemFluidIDMulti;
import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType;
@ -257,13 +258,6 @@ public class CraftingManager {
addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_wood_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_wood, ModItems.plate_polymer, ModItems.coil_copper }); addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_wood_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_wood, ModItems.plate_polymer, ModItems.coil_copper });
addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_steel, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', STEEL.pipe(), 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE }); addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_steel, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', STEEL.pipe(), 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE });
addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_steel_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_steel, ModItems.plate_polymer, ModItems.coil_copper }); addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_steel_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_steel, ModItems.plate_polymer, ModItems.coil_copper });
addRecipeAuto(new ItemStack(ModBlocks.machine_battery_potato, 1), new Object[] { "PCP", "WRW", "PCP", 'P', ItemBattery.getEmptyBattery(ModItems.battery_potato), 'C', CU.ingot(), 'R', REDSTONE.block(), 'W', KEY_PLANKS });
addRecipeAuto(new ItemStack(ModBlocks.capacitor_bus, 1), new Object[] { "PIP", "PIP", "PIP", 'P', ModItems.plate_polymer, 'I', MINGRADE.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.capacitor_copper, 1), new Object[] { "PPP", "PCP", "WWW", 'P', STEEL.plate(), 'C', CU.block(), 'W', KEY_PLANKS });
addRecipeAuto(new ItemStack(ModBlocks.capacitor_gold, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_PLASTIC.ingot(), 'C', GOLD.block(), 'W', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.capacitor_niobium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', RUBBER.ingot(), 'C', NB.block(), 'W', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.capacitor_tantalium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', TA.block(), 'W', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.capacitor_schrabidate, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', SBD.block(), 'W', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CFC", "I I" , 'P', STEEL.plate(), 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'F', Blocks.furnace}); addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CFC", "I I" , 'P', STEEL.plate(), 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'F', Blocks.furnace});
addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "RRR", "WWW", "III", 'R', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'W', REDSTONE.dust(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "RRR", "WWW", "III", 'R', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'W', REDSTONE.dust(), 'I', STEEL.ingot() });
@ -272,6 +266,11 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', IRON.plate(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', IRON.plate(), 'I', IRON.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.crate_steel, 1), new Object[] { "PPP", "I I", "III", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_steel, 1), new Object[] { "PPP", "I I", "III", 'P', STEEL.plate(), 'I', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.machine_battery_socket), new Object[] { "I I", "I I", "IRI", 'I', ModItems.plate_polymer, 'R', ModItems.coil_copper });
addRecipeAuto(new ItemStack(ModBlocks.machine_battery_socket), new Object[] { "PRP", 'P', STEEL.plate(), 'R', MINGRADE.ingot() });
addRecipeAuto(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_REDSTONE.ordinal()), new Object[] { "IRI", "PRP", "IRI", 'I', IRON.plate(), 'R', REDSTONE.block(), 'P', ModItems.plate_polymer });
addRecipeAuto(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_COPPER.ordinal()), new Object[] { "IRI", "PRP", "IRI", 'I', STEEL.plate(), 'R', CU.block(), 'P', ModItems.plate_polymer });
GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel })); GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel }));
GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', CU.plateCast(), 'C', ModBlocks.crate_steel })); GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', CU.plateCast(), 'C', ModBlocks.crate_steel }));
// Note: voids the last few slots when placed, because a safe's inventory is smaller than a crate's one // Note: voids the last few slots when placed, because a safe's inventory is smaller than a crate's one
@ -526,18 +525,6 @@ public class CraftingManager {
addShapelessAuto(new ItemStack(ModBlocks.charge_semtex, 1), new Object[] { ModItems.stick_semtex, ModItems.stick_semtex, ModItems.stick_semtex, ModItems.ducttape }); addShapelessAuto(new ItemStack(ModBlocks.charge_semtex, 1), new Object[] { ModItems.stick_semtex, ModItems.stick_semtex, ModItems.stick_semtex, ModItems.ducttape });
addShapelessAuto(new ItemStack(ModBlocks.charge_c4, 1), new Object[] { ModItems.stick_c4, ModItems.stick_c4, ModItems.stick_c4, ModItems.ducttape }); addShapelessAuto(new ItemStack(ModBlocks.charge_c4, 1), new Object[] { ModItems.stick_c4, ModItems.stick_c4, ModItems.stick_c4, ModItems.ducttape });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_generic), new Object[] { " A ", "PRP", "PRP", 'A', AL.wireFine(), 'P', AL.plate(), 'R', REDSTONE.dust() });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "sulfur", 'L', PB.dust() });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PLP", "PSP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "sulfur", 'L', PB.dust() });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "dustSulfur", 'L', PB.dust() });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PLP", "PSP", 'A', MINGRADE.wireFine(), 'P', CU.plate(), 'S', "dustSulfur", 'L', PB.dust() });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium), new Object[] { "A A", "PSP", "PLP", 'A', GOLD.wireFine(), 'P', TI.plate(), 'S', LI.dust(), 'L', CO.dust() });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium), new Object[] { "A A", "PLP", "PSP", 'A', GOLD.wireFine(), 'P', TI.plate(), 'S', LI.dust(), 'L', CO.dust() });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PNP", "PSP", 'A', SA326.wireFine(), 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PSP", "PNP", 'A', SA326.wireFine(), 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark), new Object[] { "P", "S", "S", 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PSP", "PTP", 'A', AL.wireFine(), 'P', AL.plate(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PTP", "PSP", 'A', AL.wireFine(), 'P', AL.plate(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite });
addRecipeAuto(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TRD", "PCW", 'P', ALLOY.plate(), 'C', ModItems.coil_advanced_alloy, 'W', ALLOY.wireFine(), 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() }); addRecipeAuto(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TRD", "PCW", 'P', ALLOY.plate(), 'C', ModItems.coil_advanced_alloy, 'W', ALLOY.wireFine(), 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() });
addRecipeAuto(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TDR", "PCW", 'P', ALLOY.plate(), 'C', ModItems.coil_advanced_alloy, 'W', ALLOY.wireFine(), 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() }); addRecipeAuto(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TDR", "PCW", 'P', ALLOY.plate(), 'C', ModItems.coil_advanced_alloy, 'W', ALLOY.wireFine(), 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() });
addRecipeAuto(new ItemStack(ModItems.hev_battery, 4), new Object[] { " W ", "IEI", "ICI", 'W', GOLD.wireFine(), 'I', ModItems.plate_polymer, 'E', REDSTONE.dust(), 'C', CO.dust() }); addRecipeAuto(new ItemStack(ModItems.hev_battery, 4), new Object[] { " W ", "IEI", "ICI", 'W', GOLD.wireFine(), 'I', ModItems.plate_polymer, 'E', REDSTONE.dust(), 'C', CO.dust() });
@ -545,26 +532,6 @@ public class CraftingManager {
addShapelessAuto(new ItemStack(ModItems.hev_battery, 1), new Object[] { ModBlocks.hev_battery }); addShapelessAuto(new ItemStack(ModItems.hev_battery, 1), new Object[] { ModBlocks.hev_battery });
addShapelessAuto(new ItemStack(ModBlocks.hev_battery, 1), new Object[] { ModItems.hev_battery }); addShapelessAuto(new ItemStack(ModBlocks.hev_battery, 1), new Object[] { ModItems.hev_battery });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell), new Object[] { "WBW", "PBP", "WBW", 'W', AL.wireFine(), 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_generic) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell), new Object[] { "WBW", "PBP", "WBW", 'W', MINGRADE.wireFine(), 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell), new Object[] { "WBW", "PBP", "WBW", 'W', GOLD.wireFine(), 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell), new Object[] { "WBW", "PBP", "WBW", 'W', SA326.wireFine(), 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell_6), new Object[] { "BBB", "WPW", "BBB", 'W', AL.wireFine(), 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_red_cell) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_4), new Object[] { "BWB", "WPW", "BWB", 'W', MINGRADE.wireFine(), 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_3), new Object[] { "WPW", "BBB", "WPW", 'W', GOLD.wireFine(), 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_2), new Object[] { "WPW", "BWB", "WPW", 'W', SA326.wireFine(), 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_red_cell_24), new Object[] { "BWB", "WPW", "BWB", 'W', AL.wireFine(), 'P', AL.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_red_cell_6) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_12), new Object[] { "WPW", "BBB", "WPW", 'W', MINGRADE.wireFine(), 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_4) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_6), new Object[] { "WPW", "BWB", "WPW", 'W', GOLD.wireFine(), 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_3) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_4), new Object[] { "WPW", "BWB", "WPW", 'W', SA326.wireFine(), 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_2) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6), new Object[] { "BW", "PW", "BW", 'W', MAGTUNG.wireFine(), 'P', ModItems.powder_spark_mix, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25), new Object[] { "W W", "SCS", "PSP", 'W', MAGTUNG.wireFine(), 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), new Object[] { "W W", "BPB", "SSS", 'W', MAGTUNG.wireFine(), 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), new Object[] { "PCP", "CSC", "PCP", 'S', ModItems.singularity_spark, 'P', ModItems.powder_spark_mix, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100) });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), new Object[] { "SCS", "CVC", "SCS", 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), 'S', ModItems.powder_spark_mix });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), new Object[] { "OSO", "SVS", "OSO", 'S', ModItems.singularity_spark, 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), 'O', ModItems.ingot_osmiridium });
addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_power), new Object[] { "YSY", "SCS", "YSY", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), 'Y', ModItems.billet_yharonite });
addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, AL.wireFine(), CU.wireFine() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, AL.wireFine(), CU.wireFine() });
addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() });
@ -626,7 +593,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.fluid_barrel_empty, 2), new Object[] { "121", "1G1", "121", '1', STEEL.plate(), '2', AL.plate(), 'G', KEY_ANYPANE }); addRecipeAuto(new ItemStack(ModItems.fluid_barrel_empty, 2), new Object[] { "121", "1G1", "121", '1', STEEL.plate(), '2', AL.plate(), 'G', KEY_ANYPANE });
if(!GeneralConfig.enable528) { if(!GeneralConfig.enable528) {
addRecipeAuto(new ItemStack(ModItems.inf_water, 1), new Object[] { "222", "131", "222", '1', Items.water_bucket, '2', AL.plate(), '3', DIAMOND.gem() }); addRecipeAuto(new ItemStack(ModItems.inf_water, 1), new Object[] { "222", "131", "222", '1', Fluids.WATER.getDict(1_000), '2', AL.plate(), '3', DIAMOND.gem() });
addRecipeAuto(new ItemStack(ModItems.inf_water_mk2, 1), new Object[] { "BPB", "PTP", "BPB", 'B', ModItems.inf_water, 'P', STEEL.pipe(), 'T', STEEL.shell() }); addRecipeAuto(new ItemStack(ModItems.inf_water_mk2, 1), new Object[] { "BPB", "PTP", "BPB", 'B', ModItems.inf_water, 'P', STEEL.pipe(), 'T', STEEL.shell() });
} }
@ -638,7 +605,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.ams_core_sing, 1), new Object[] { "EAE", "ASA", "EAE", 'E', ModItems.plate_euphemium, 'A', ModItems.cell_anti_schrabidium, 'S', ModItems.singularity }); addRecipeAuto(new ItemStack(ModItems.ams_core_sing, 1), new Object[] { "EAE", "ASA", "EAE", 'E', ModItems.plate_euphemium, 'A', ModItems.cell_anti_schrabidium, 'S', ModItems.singularity });
addRecipeAuto(new ItemStack(ModItems.ams_core_wormhole, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.plate_dineutronium, 'P', ModItems.powder_spark_mix, 'S', ModItems.singularity }); addRecipeAuto(new ItemStack(ModItems.ams_core_wormhole, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.plate_dineutronium, 'P', ModItems.powder_spark_mix, 'S', ModItems.singularity });
addRecipeAuto(new ItemStack(ModItems.ams_core_eyeofharmony, 1), new Object[] { "ALA", "LSL", "ALA", 'A', ModItems.plate_dalekanium, 'L', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.LAVA.getID()), 'S', ModItems.black_hole }); addRecipeAuto(new ItemStack(ModItems.ams_core_eyeofharmony, 1), new Object[] { "ALA", "LSL", "ALA", 'A', ModItems.plate_dalekanium, 'L', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.LAVA.getID()), 'S', ModItems.black_hole });
addRecipeAuto(new ItemStack(ModItems.ams_core_thingy), new Object[] { "NSN", "NGN", "G G", 'N', GOLD.nugget(), 'G', GOLD.ingot(), 'S', ModItems.battery_spark_cell_10000 }); addRecipeAuto(new ItemStack(ModItems.ams_core_thingy), new Object[] { "NSN", "NGN", "G G", 'N', GOLD.nugget(), 'G', GOLD.ingot(), 'S', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM.ordinal()) });
addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', NETHERQUARTZ.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB) }); addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', NETHERQUARTZ.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB) });
addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip });
addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS });
@ -1044,9 +1011,9 @@ public class CraftingManager {
} }
if(!GeneralConfig.enable528) { if(!GeneralConfig.enable528) {
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'B', ModBlocks.struct_launcher, 'E', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()) });
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.struct_launcher, 'E', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()) });
addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.machine_lithium_battery }); addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM.ordinal()) });
addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', W.wireFine(), 'P', PB.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'M', ModItems.magnetron }); addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', W.wireFine(), 'P', PB.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'M', ModItems.magnetron });
addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) });
addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) });

View File

@ -664,6 +664,7 @@ public class MainRegistry {
event.registerServerCommand(new CommandReloadServer()); event.registerServerCommand(new CommandReloadServer());
event.registerServerCommand(new CommandLocate()); event.registerServerCommand(new CommandLocate());
event.registerServerCommand(new CommandCustomize()); event.registerServerCommand(new CommandCustomize());
event.registerServerCommand(new CommandReapNetworks());
ArcFurnaceRecipes.registerFurnaceSmeltables(); // because we have to wait for other mods to take their merry ass time to register recipes ArcFurnaceRecipes.registerFurnaceSmeltables(); // because we have to wait for other mods to take their merry ass time to register recipes
} }

View File

@ -271,6 +271,7 @@ public class ResourceManager {
//FENSU //FENSU
public static final IModelCustom battery_socket = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/battery.obj")).asVBO(); public static final IModelCustom battery_socket = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/battery.obj")).asVBO();
public static final IModelCustom battery_redd = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fensu2.obj")).asVBO();
public static final IModelCustom fensu = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fensu.obj")).asVBO(); public static final IModelCustom fensu = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fensu.obj")).asVBO();
//Radar //Radar
@ -739,6 +740,7 @@ public class ResourceManager {
//FENSU //FENSU
public static final ResourceLocation battery_socket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/battery_socket.png"); public static final ResourceLocation battery_socket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/battery_socket.png");
public static final ResourceLocation battery_redd_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensu2.png");
public static final ResourceLocation fensu_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensu.png"); public static final ResourceLocation fensu_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensu.png");
//Radar //Radar

View File

@ -22,7 +22,7 @@ public class ItemRenderBatteryPack extends ItemRenderBase {
EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, item.getItemDamage()); EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, item.getItemDamage());
GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().getTextureManager().bindTexture(pack.texture); Minecraft.getMinecraft().getTextureManager().bindTexture(pack.texture);
ResourceManager.battery_socket.renderPart("Battery"); ResourceManager.battery_socket.renderPart(pack.isCapacitor() ? "Capacitor" : "Battery");
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
} }
} }

View File

@ -0,0 +1,264 @@
package com.hbm.render.tileentity;
import java.util.Random;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.MainRegistry;
import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase;
import com.hbm.render.util.BeamPronter;
import com.hbm.render.util.BeamPronter.EnumBeamType;
import com.hbm.render.util.BeamPronter.EnumWaveType;
import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD;
import com.hbm.util.BobMathUtil;
import com.hbm.util.Clock;
import com.hbm.util.Vec3NT;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Vec3;
import net.minecraftforge.client.IItemRenderer;
public class RenderBatteryREDD extends TileEntitySpecialRenderer implements IItemRendererProvider {
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5, y, z + 0.5);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_CULL_FACE);
switch(tile.getBlockMetadata() - 10) {
case 2: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 4: GL11.glRotatef(0, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(90, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(180, 0F, 1F, 0F); break;
}
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.battery_redd_tex);
ResourceManager.battery_redd.renderPart("Base");
GL11.glPushMatrix();
GL11.glTranslated(0, 5.5, 0);
TileEntityBatteryREDD redd = (TileEntityBatteryREDD) tile;
float speed = redd.getSpeed();
double rot = redd.prevRotation + (redd.rotation - redd.prevRotation) * interp;
GL11.glRotated(rot, 1, 0, 0);
GL11.glTranslated(0, -5.5, 0);
ResourceManager.battery_redd.renderPart("Wheel");
RenderArcFurnace.fullbright(true);
ResourceManager.battery_redd.renderPart("Lights");
RenderArcFurnace.fullbright(false);
GL11.glPushMatrix();
GL11.glTranslated(0, 5.5, 0);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glPushAttrib(GL11.GL_LIGHTING_BIT);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
GL11.glDepthMask(false);
Vec3NT vec = new Vec3NT(0, 0, 4);
Tessellator tess = Tessellator.instance;
tess.startDrawingQuads();
double len = 4.25D;
double width = 0.125D;
double span = speed * 0.75;
if(span > 0) for(int j = -1; j <= 1; j += 2) {
for(int i = 0; i < 8; i++) {
double xOffset = 0.8125 * j;
vec.setComponents(0, 1, 0);
vec.rotateAroundXDeg(i * 45D);
tess.setColorRGBA_F(1F, 1F, 0F, 0.75F);
tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width);
tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width);
vec.rotateAroundXDeg(span);
tess.setColorRGBA_F(1F, 1F, 0F, 0.5F);
tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width);
tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width);
tess.setColorRGBA_F(1F, 1F, 0F, 0.5F);
tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width);
tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width);
vec.rotateAroundXDeg(span);
tess.setColorRGBA_F(1F, 1F, 0F, 0.25F);
tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width);
tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width);
tess.setColorRGBA_F(1F, 1F, 0F, 0.25F);
tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width);
tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width);
vec.rotateAroundXDeg(span);
tess.setColorRGBA_F(1F, 1F, 0F, 0F);
tess.addVertex(xOffset, vec.yCoord * len + vec.yCoord * width, vec.zCoord * len + vec.zCoord * width);
tess.addVertex(xOffset, vec.yCoord * len - vec.yCoord * width, vec.zCoord * len - vec.zCoord * width);
}
}
tess.draw();
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glDisable(GL11.GL_BLEND);
GL11.glDepthMask(true);
GL11.glPopAttrib();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glPopMatrix();
renderSparkle(tile);
GL11.glPopMatrix();
if(speed > 0) renderZaps(tile);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
protected void renderSparkle(TileEntity tile) {
TileEntityBatteryREDD redd = (TileEntityBatteryREDD) tile;
long time = Clock.get_ms();
float alpha = 0.45F + (float) (Math.sin(time / 1000D) * 0.15F);
float alphaMult = redd.getSpeed() / 15F;
float r = 1.0F;
float g = 0.25F;
float b = 0.75F;
double mainOsc = BobMathUtil.sps(time / 1000D) % 1D;
double sparkleSpin = time / 250D * -1 % 1D;
double sparkleOsc = Math.sin(time / 1000D) * 0.5D % 1D;
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glPushAttrib(GL11.GL_LIGHTING_BIT);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
GL11.glDepthMask(false);
GL11.glColor4f(r, g, b, alpha * alphaMult);
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glLoadIdentity();
bindTexture(ResourceManager.fusion_plasma_tex);
GL11.glTranslated(0, mainOsc, 0);
ResourceManager.battery_redd.renderPart("Plasma");
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glLoadIdentity();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
// cost-cutting measure, don't render extra layers from more than 100m away
if(MainRegistry.proxy.me().getDistanceSq(tile.xCoord + 0.5, tile.yCoord + 2.5, tile.zCoord + 0.5) < 100 * 100) {
GL11.glColor4f(r * 2, g * 2, b * 2, 0.75F * alphaMult);
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glLoadIdentity();
bindTexture(ResourceManager.fusion_plasma_sparkle_tex);
GL11.glTranslated(sparkleSpin, sparkleOsc, 0);
ResourceManager.battery_redd.renderPart("Plasma");
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glLoadIdentity();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
}
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glDisable(GL11.GL_BLEND);
GL11.glDepthMask(true);
GL11.glPopAttrib();
GL11.glEnable(GL11.GL_CULL_FACE);
}
protected void renderZaps(TileEntity tile) {
Random rand = new Random(tile.getWorldObj().getTotalWorldTime() / 5);
rand.nextBoolean();
if(rand.nextBoolean()) {
GL11.glPushMatrix();
GL11.glTranslated(3.125, 5.5, 0);
BeamPronter.prontBeam(Vec3.createVectorHelper(-1.375, -2.625, 3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.25F, 3, 0.0625F);
BeamPronter.prontBeam(Vec3.createVectorHelper(-1.375, -2.625, 3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 1, 0, 3, 0.0625F);
GL11.glPopMatrix();
}
if(rand.nextBoolean()) {
GL11.glPushMatrix();
GL11.glTranslated(-3.125, 5.5, 0);
BeamPronter.prontBeam(Vec3.createVectorHelper(1.375, -2.625, 3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.25F, 3, 0.0625F);
BeamPronter.prontBeam(Vec3.createVectorHelper(1.375, -2.625, 3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 1, 0, 3, 0.0625F);
GL11.glPopMatrix();
}
if(rand.nextBoolean()) {
GL11.glPushMatrix();
GL11.glTranslated(3.125, 5.5, 0);
BeamPronter.prontBeam(Vec3.createVectorHelper(-1.375, -2.625, -3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.25F, 3, 0.0625F);
BeamPronter.prontBeam(Vec3.createVectorHelper(-1.375, -2.625, -3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 1, 0, 3, 0.0625F);
GL11.glPopMatrix();
}
if(rand.nextBoolean()) {
GL11.glPushMatrix();
GL11.glTranslated(-3.125, 5.5, 0);
BeamPronter.prontBeam(Vec3.createVectorHelper(1.375, -2.625, -3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.25F, 3, 0.0625F);
BeamPronter.prontBeam(Vec3.createVectorHelper(1.375, -2.625, -3.75), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 1, 0, 3, 0.0625F);
GL11.glPopMatrix();
}
}
@Override
public Item getItemForRenderer() {
return Item.getItemFromBlock(ModBlocks.machine_battery_redd);
}
@Override
public IItemRenderer getRenderer() {
return new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0, -3, 0);
GL11.glScaled(2.5, 2.5, 2.5);
}
public void renderCommon() {
GL11.glRotated(-90, 0, 1, 0);
GL11.glScaled(0.5, 0.5, 0.5);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.battery_redd_tex);
ResourceManager.battery_redd.renderPart("Base");
ResourceManager.battery_redd.renderPart("Wheel");
GL11.glDisable(GL11.GL_LIGHTING);
ResourceManager.battery_redd.renderPart("Lights");
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glShadeModel(GL11.GL_FLAT);
}};
}
}

View File

@ -41,7 +41,7 @@ public class RenderBatterySocket extends TileEntitySpecialRenderer implements II
if(socket.renderPack >= 0) { if(socket.renderPack >= 0) {
EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, socket.renderPack); EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, socket.renderPack);
bindTexture(pack.texture); bindTexture(pack.texture);
ResourceManager.battery_socket.renderPart("Battery"); ResourceManager.battery_socket.renderPart(pack.isCapacitor() ? "Capacitor" : "Battery");
} }
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);

View File

@ -10,6 +10,8 @@ import net.minecraft.util.Vec3;
public class BeamPronter { public class BeamPronter {
public static Random rand = new Random();
public static enum EnumWaveType { public static enum EnumWaveType {
RANDOM, SPIRAL RANDOM, SPIRAL
} }
@ -51,7 +53,7 @@ public class BeamPronter {
Tessellator tessellator = Tessellator.instance; Tessellator tessellator = Tessellator.instance;
Vec3 unit = Vec3.createVectorHelper(0, 1, 0); Vec3 unit = Vec3.createVectorHelper(0, 1, 0);
Random rand = new Random(start); rand.setSeed(start);
double length = skeleton.lengthVector(); double length = skeleton.lengthVector();
double segLength = length / segments; double segLength = length / segments;
double lastX = 0; double lastX = 0;

View File

@ -82,6 +82,7 @@ public class TileMappings {
put(TileEntityDecoPoleSatelliteReceiver.class, "tileentity_satellitereceicer"); put(TileEntityDecoPoleSatelliteReceiver.class, "tileentity_satellitereceicer");
put(TileEntityMachineBattery.class, "tileentity_battery"); put(TileEntityMachineBattery.class, "tileentity_battery");
put(TileEntityBatterySocket.class, "tileentity_battery_socket"); put(TileEntityBatterySocket.class, "tileentity_battery_socket");
put(TileEntityBatteryREDD.class, "tileentity_battery_redd");
put(TileEntityCapacitor.class, "tileentity_capacitor"); put(TileEntityCapacitor.class, "tileentity_capacitor");
put(TileEntityMachineWoodBurner.class, "tileentity_wood_burner"); put(TileEntityMachineWoodBurner.class, "tileentity_wood_burner");
put(TileEntityRedBarrel.class, "tileentity_barrel"); put(TileEntityRedBarrel.class, "tileentity_barrel");

View File

@ -122,6 +122,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro
if(stack.stackSize == 1) { if(stack.stackSize == 1) {
slots[i] = stack.copy(); slots[i] = stack.copy();
item.setDead(); item.setDead();
item.delayBeforeCanPickup = 60;
break; break;
} else { } else {
slots[i] = stack.copy(); slots[i] = stack.copy();

View File

@ -662,6 +662,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements
if(stack.stackSize <= 0) { if(stack.stackSize <= 0) {
item.setDead(); item.setDead();
item.delayBeforeCanPickup = 60; // seems fucking stupid, but prevents frame-perfect dupe exploit
continue outer; continue outer;
} }
} }
@ -676,6 +677,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements
slots[i] = stack.copy(); slots[i] = stack.copy();
item.setDead(); item.setDead();
item.delayBeforeCanPickup = 60;
break; break;
} }
} }

View File

@ -28,8 +28,6 @@ import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import com.hbm.util.i18n.I18nUtil; import com.hbm.util.i18n.I18nUtil;
import api.hbm.block.IDrillInteraction;
import api.hbm.block.IMiningDrill;
import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.fluid.IFluidStandardSender; import api.hbm.fluid.IFluidStandardSender;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
@ -53,7 +51,7 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider {
public long power; public long power;
public int age = 0; public int age = 0;
@ -325,17 +323,6 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
} }
} }
if(normal && b instanceof IDrillInteraction) {
IDrillInteraction in = (IDrillInteraction) b;
ItemStack drop = in.extractResource(worldObj, targetX, targetY, targetZ, meta, this);
if(drop != null) {
worldObj.spawnEntityInWorld(new EntityItem(worldObj, targetX + 0.5, targetY + 0.5, targetZ + 0.5, drop.copy()));
}
doesBreak = in.canBreak(worldObj, targetX, targetY, targetZ, meta, this);
}
if(doesBreak) { if(doesBreak) {
if(normal) b.dropBlockAsItem(worldObj, targetX, targetY, targetZ, meta, fortune); if(normal) b.dropBlockAsItem(worldObj, targetX, targetY, targetZ, meta, fortune);
worldObj.func_147480_a(targetX, targetY, targetZ, false); worldObj.func_147480_a(targetX, targetY, targetZ, false);
@ -386,6 +373,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
if(nullifier && bad.contains(item.getEntityItem().getItem())) { if(nullifier && bad.contains(item.getEntityItem().getItem())) {
item.setDead(); item.setDead();
item.delayBeforeCanPickup = 60;
continue; continue;
} }
@ -398,16 +386,19 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
tank.setFill(tank.getMaxFill()); tank.setFill(tank.getMaxFill());
item.setDead(); item.setDead();
item.delayBeforeCanPickup = 60;
continue; continue;
} }
ItemStack stack = InventoryUtil.tryAddItemToInventory(slots, 9, 29, item.getEntityItem().copy()); ItemStack stack = InventoryUtil.tryAddItemToInventory(slots, 9, 29, item.getEntityItem().copy());
if(stack == null) if(stack == null) {
item.setDead(); item.setDead();
else item.delayBeforeCanPickup = 60;
} else {
item.setEntityItemStack(stack.copy()); //copy is not necessary but i'm paranoid due to the kerfuffle of the old drill item.setEntityItemStack(stack.copy()); //copy is not necessary but i'm paranoid due to the kerfuffle of the old drill
} }
}
List<EntityLivingBase> mobs = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox( List<EntityLivingBase> mobs = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(
targetX + 0.5 - 1, targetX + 0.5 - 1,
@ -460,106 +451,68 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
} }
public int getRange() { public int getRange() {
int range = 1; int range = 1;
for(int i = 1; i < 9; i++) { for(int i = 1; i < 9; i++) {
if(slots[i] != null) { if(slots[i] != null) {
if(slots[i].getItem() == ModItems.upgrade_effect_1) range += 2;
if(slots[i].getItem() == ModItems.upgrade_effect_1) else if(slots[i].getItem() == ModItems.upgrade_effect_2) range += 4;
range += 2; else if(slots[i].getItem() == ModItems.upgrade_effect_3) range += 6;
else if(slots[i].getItem() == ModItems.upgrade_effect_2)
range += 4;
else if(slots[i].getItem() == ModItems.upgrade_effect_3)
range += 6;
} }
} }
return Math.min(range, 25); return Math.min(range, 25);
} }
public boolean hasNullifier() { public boolean hasNullifier() {
for(int i = 1; i < 9; i++) { for(int i = 1; i < 9; i++) {
if(slots[i] != null) { if(slots[i] != null) {
if(slots[i].getItem() == ModItems.upgrade_nullifier) return true;
if(slots[i].getItem() == ModItems.upgrade_nullifier)
return true;
} }
} }
return false; return false;
} }
public boolean hasSmelter() { public boolean hasSmelter() {
for(int i = 1; i < 9; i++) { for(int i = 1; i < 9; i++) {
if(slots[i] != null) { if(slots[i] != null) {
if(slots[i].getItem() == ModItems.upgrade_smelter) return true;
if(slots[i].getItem() == ModItems.upgrade_smelter)
return true;
} }
} }
return false; return false;
} }
public boolean hasShredder() { public boolean hasShredder() {
for(int i = 1; i < 9; i++) { for(int i = 1; i < 9; i++) {
if(slots[i] != null) { if(slots[i] != null) {
if(slots[i].getItem() == ModItems.upgrade_shredder) return true;
if(slots[i].getItem() == ModItems.upgrade_shredder)
return true;
} }
} }
return false; return false;
} }
public boolean hasCentrifuge() { public boolean hasCentrifuge() {
for(int i = 1; i < 9; i++) { for(int i = 1; i < 9; i++) {
if(slots[i] != null) { if(slots[i] != null) {
if(slots[i].getItem() == ModItems.upgrade_centrifuge) return true;
if(slots[i].getItem() == ModItems.upgrade_centrifuge)
return true;
} }
} }
return false; return false;
} }
public boolean hasCrystallizer() { public boolean hasCrystallizer() {
for(int i = 1; i < 9; i++) { for(int i = 1; i < 9; i++) {
if(slots[i] != null) { if(slots[i] != null) {
if(slots[i].getItem() == ModItems.upgrade_crystallizer) return true;
if(slots[i].getItem() == ModItems.upgrade_crystallizer)
return true;
} }
} }
return false; return false;
} }
public boolean doesScream() { public boolean doesScream() {
for(int i = 1; i < 9; i++) { for(int i = 1; i < 9; i++) {
if(slots[i] != null) { if(slots[i] != null) {
if(slots[i].getItem() == ModItems.upgrade_screm) return true;
if(slots[i].getItem() == ModItems.upgrade_screm)
return true;
} }
} }
return false; return false;
} }
@ -642,6 +595,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
super.readFromNBT(nbt); super.readFromNBT(nbt);
tank.readFromNBT(nbt, "oil"); tank.readFromNBT(nbt, "oil");
power = nbt.getLong("power");
isOn = nbt.getBoolean("isOn"); isOn = nbt.getBoolean("isOn");
redstonePowered = false; redstonePowered = false;
} }
@ -651,19 +605,10 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
super.writeToNBT(nbt); super.writeToNBT(nbt);
tank.writeToNBT(nbt, "oil"); tank.writeToNBT(nbt, "oil");
nbt.setLong("power", power);
nbt.setBoolean("isOn", isOn); nbt.setBoolean("isOn", isOn);
} }
@Override
public DrillType getDrillTier() {
return DrillType.HITECH;
}
@Override
public int getDrillRating() {
return 100;
}
@Override @Override
public FluidTank[] getSendingTanks() { public FluidTank[] getSendingTanks() {
return new FluidTank[] { tank }; return new FluidTank[] { tank };

View File

@ -582,7 +582,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG
@Callback(direct = true) @Callback(direct = true)
@Optional.Method(modid = "OpenComputers") @Optional.Method(modid = "OpenComputers")
public Object[] getHeat(Context context, Arguments args) { public Object[] getHeat(Context context, Arguments args) {
return new Object[] {coreHeat, hullHeat}; return new Object[] {coreHeat, hullHeat, coreHeatCapacity, hullHeatCapacityBase};
} }
@Callback(direct = true) @Callback(direct = true)
@ -612,7 +612,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG
@Callback(direct = true) @Callback(direct = true)
@Optional.Method(modid = "OpenComputers") @Optional.Method(modid = "OpenComputers")
public Object[] getInfo(Context context, Arguments args) { public Object[] getInfo(Context context, Arguments args) {
return new Object[] {coreHeat, hullHeat, flux, rodTarget, rodLevel, amountLoaded, progress, processTime, tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; return new Object[] {coreHeat, hullHeat, coreHeatCapacity, hullHeatCapacityBase, flux, rodTarget, rodLevel, amountLoaded, progress, processTime, tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()};
} }
@Callback(direct = true, limit = 4) @Callback(direct = true, limit = 4)

View File

@ -68,9 +68,13 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I
feed.setFill(feed.getFill() - step.amountReq * ops); feed.setFill(feed.getFill() - step.amountReq * ops);
steam.setFill(steam.getFill() + step.amountProduced * ops); steam.setFill(steam.getFill() + step.amountProduced * ops);
this.heat -= (step.heatReq * ops / TU_PER_DEGREE) * trait.getEfficiency(HeatingType.HEATEXCHANGER); this.heat -= (step.heatReq * ops / TU_PER_DEGREE) * trait.getEfficiency(HeatingType.HEATEXCHANGER);
} else {
feed.setTankType(Fluids.NONE);
steam.setTankType(Fluids.NONE);
} }
} else { } else {
feed.setTankType(Fluids.NONE);
steam.setTankType(Fluids.NONE); steam.setTankType(Fluids.NONE);
} }

View File

@ -0,0 +1,184 @@
package com.hbm.tileentity.machine.storage;
import com.hbm.interfaces.IControlReceiver;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.uninos.UniNodespace;
import com.hbm.util.EnumUtil;
import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energymk2.IBatteryItem;
import api.hbm.energymk2.IEnergyConductorMK2;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.energymk2.Nodespace;
import api.hbm.energymk2.Nodespace.PowerNode;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.MathHelper;
public abstract class TileEntityBatteryBase extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IControlReceiver, IGUIProvider {
public byte lastRedstone = 0;
public long prevPowerState = 0;
public static final int mode_input = 0;
public static final int mode_buffer = 1;
public static final int mode_output = 2;
public static final int mode_none = 3;
public short redLow = 0;
public short redHigh = 2;
public ConnectionPriority priority = ConnectionPriority.LOW;
protected PowerNode node;
public TileEntityBatteryBase(int slotCount) {
super(slotCount);
}
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
if(priority == null || priority.ordinal() == 0 || priority.ordinal() == 4) {
priority = ConnectionPriority.LOW;
}
if(this.node == null || this.node.expired) {
this.node = (PowerNode) UniNodespace.getNode(worldObj, xCoord, yCoord, zCoord, Nodespace.THE_POWER_PROVIDER);
if(this.node == null || this.node.expired) {
this.node = this.createNode();
UniNodespace.createNode(worldObj, this.node);
}
}
if(this.node != null && this.node.hasValidNet()) switch(this.getRelevantMode(false)) {
case mode_input: this.node.net.removeProvider(this); this.node.net.addReceiver(this); break;
case mode_output: this.node.net.addProvider(this); this.node.net.removeReceiver(this); break;
case mode_buffer: this.node.net.addProvider(this); this.node.net.addReceiver(this); break;
case mode_none: this.node.net.removeProvider(this); this.node.net.removeReceiver(this); break;
}
byte comp = this.getComparatorPower();
if(comp != this.lastRedstone) this.markDirty();
this.lastRedstone = comp;
prevPowerState = this.getPower();
this.networkPackNT(100);
}
}
public byte getComparatorPower() {
double frac = (double) this.getPower() / (double) this.getMaxPower() * 15D;
return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); //to combat eventual rounding errors with the FEnSU's stupid maxPower
}
@Override
public PowerNode createNode() {
return new PowerNode(this.getPortPos()).setConnections(this.getConPos());
}
@Override
public void invalidate() {
super.invalidate();
if(!worldObj.isRemote) {
if(this.node != null) {
UniNodespace.destroyNode(worldObj, xCoord, yCoord, zCoord, Nodespace.THE_POWER_PROVIDER);
}
}
}
@Override
public boolean isItemValidForSlot(int i, ItemStack stack) {
return stack.getItem() instanceof IBatteryItem;
}
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
buf.writeShort(redLow);
buf.writeShort(redHigh);
buf.writeByte(priority.ordinal());
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
redLow = buf.readShort();
redHigh = buf.readShort();
priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, buf.readByte());
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.redLow = nbt.getShort("redLow");
this.redHigh = nbt.getShort("redHigh");
this.lastRedstone = nbt.getByte("lastRedstone");
this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, nbt.getByte("priority"));
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setShort("redLow", redLow);
nbt.setShort("redHigh", redHigh);
nbt.setByte("lastRedstone", lastRedstone);
nbt.setByte("priority", (byte) this.priority.ordinal());
}
@Override public boolean allowDirectProvision() { return false; }
@Override public ConnectionPriority getPriority() { return this.priority; }
public abstract BlockPos[] getPortPos();
public abstract DirPos[] getConPos();
private short modeCache = 0;
public short getRelevantMode(boolean useCache) {
if(useCache) return this.modeCache;
boolean powered = false;
for(BlockPos pos : getPortPos()) if(worldObj.isBlockIndirectlyGettingPowered(pos.getX(), pos.getY(), pos.getZ())) { powered = true; break; }
this.modeCache = powered ? this.redHigh : this.redLow;
return this.modeCache;
}
@Override public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); }
@Override
public void receiveControl(NBTTagCompound data) {
if(data.hasKey("low")) {
this.redLow++;
if(this.redLow > 3) this.redLow = 0;
}
if(data.hasKey("high")) {
this.redHigh++;
if(this.redHigh > 3) this.redHigh = 0;
}
if(data.hasKey("priority")) {
int ordinal = this.priority.ordinal();
ordinal++;
if(ordinal > ConnectionPriority.HIGH.ordinal()) ordinal = ConnectionPriority.LOW.ordinal();
this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, ordinal);
}
}
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
}

View File

@ -0,0 +1,219 @@
package com.hbm.tileentity.machine.storage;
import java.math.BigInteger;
import com.hbm.inventory.container.ContainerBatteryREDD;
import com.hbm.inventory.gui.GUIBatteryREDD;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityBatteryREDD extends TileEntityBatteryBase {
public float prevRotation = 0F;
public float rotation = 0F;
public BigInteger[] log = new BigInteger[20];
public BigInteger delta = BigInteger.valueOf(0);
public BigInteger power = BigInteger.valueOf(0);
private AudioWrapper audio;
public TileEntityBatteryREDD() {
super(2);
}
@Override public String getName() { return "container.batteryREDD"; }
@Override
public void updateEntity() {
BigInteger prevPower = new BigInteger(power.toByteArray());
super.updateEntity();
if(!worldObj.isRemote) {
long toAdd = Library.chargeTEFromItems(slots, 0, 0, this.getMaxPower());
if(toAdd > 0) this.power = this.power.add(BigInteger.valueOf(toAdd));
long toRemove = this.getPower() - Library.chargeItemsFromTE(slots, 1, this.getPower(), this.getMaxPower());
if(toRemove > 0)this.power = this.power.subtract(BigInteger.valueOf(toRemove));
// same implementation as for batteries, however retooled to use bigints because fuck
BigInteger avg = this.power.add(prevPower).divide(BigInteger.valueOf(2));
this.delta = avg.subtract(this.log[0] == null ? BigInteger.ZERO : this.log[0]);
for(int i = 1; i < this.log.length; i++) {
this.log[i - 1] = this.log[i];
}
this.log[19] = avg;
} else {
this.prevRotation = this.rotation;
this.rotation += this.getSpeed();
if(rotation >= 360) {
rotation -= 360;
prevRotation -= 360;
}
float pitch = 0.5F + this.getSpeed() / 15F * 1.5F;
if(this.prevRotation != this.rotation && MainRegistry.proxy.me().getDistanceSq(xCoord + 0.5, yCoord + 5.5, zCoord + 0.5) < 50 * 50) {
if(this.audio == null || !this.audio.isPlaying()) {
this.audio = MainRegistry.proxy.getLoopedSound("hbm:block.fensuHum", xCoord, yCoord, zCoord, this.getVolume(1.5F), 25F, pitch, 5);
this.audio.startSound();
}
this.audio.updatePitch(pitch);
this.audio.keepAlive();
} else {
if(this.audio != null) {
this.audio.stopSound();
this.audio = null;
}
}
}
}
public float getSpeed() {
return (float) Math.min(Math.pow(Math.log(this.power.doubleValue() * 0.05 + 1) * 0.05F, 5), 15F);
}
@Override
public void onChunkUnload() {
super.onChunkUnload();
if(audio != null) {
audio.stopSound();
audio = null;
}
}
@Override
public void invalidate() {
super.invalidate();
if(audio != null) {
audio.stopSound();
audio = null;
}
}
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
byte[] array0 = this.power.toByteArray();
buf.writeInt(array0.length);
for(byte b : array0) buf.writeByte(b);
byte[] array1 = this.delta.toByteArray();
buf.writeInt(array1.length);
for(byte b : array1) buf.writeByte(b);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
byte[] array0 = new byte[buf.readInt()];
for(int i = 0 ; i < array0.length; i++) array0[i] = buf.readByte();
this.power = new BigInteger(array0);
byte[] array1 = new byte[buf.readInt()];
for(int i = 0 ; i < array1.length; i++) array1[i] = buf.readByte();
this.delta = new BigInteger(array1);
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.power = new BigInteger(nbt.getByteArray("power"));
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setByteArray("power", this.power.toByteArray());
}
@Override
public BlockPos[] getPortPos() {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
return new BlockPos[] {
new BlockPos(xCoord + dir.offsetX * 2 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 2),
new BlockPos(xCoord + dir.offsetX * 2 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2 - rot.offsetZ * 2),
new BlockPos(xCoord - dir.offsetX * 2 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 2),
new BlockPos(xCoord - dir.offsetX * 2 - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 2),
new BlockPos(xCoord + rot.offsetX * 4, yCoord, zCoord + rot.offsetZ * 4),
new BlockPos(xCoord - rot.offsetX * 4, yCoord, zCoord - rot.offsetZ * 4),
};
}
@Override
public DirPos[] getConPos() {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
return new DirPos[] {
new DirPos(xCoord + dir.offsetX * 3 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 3 + rot.offsetZ * 2, dir),
new DirPos(xCoord + dir.offsetX * 3 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 3 - rot.offsetZ * 2, dir),
new DirPos(xCoord - dir.offsetX * 3 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 3 + rot.offsetZ * 2, dir.getOpposite()),
new DirPos(xCoord - dir.offsetX * 3 - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 3 - rot.offsetZ * 2, dir.getOpposite()),
new DirPos(xCoord + rot.offsetX * 5, yCoord, zCoord + rot.offsetZ * 5, rot),
new DirPos(xCoord - rot.offsetX * 5, yCoord, zCoord - rot.offsetZ * 5, rot.getOpposite()),
};
}
@Override
public void usePower(long power) {
this.power = this.power.subtract(BigInteger.valueOf(power));
}
@Override
public long transferPower(long power) {
this.power = this.power.add(BigInteger.valueOf(power));
return 0L;
}
@Override public long getPower() { return this.power.min(BigInteger.valueOf(getMaxPower() / 2)).longValue(); } // for provision
@Override public void setPower(long power) { } // not needed since we use transferPower and usePower directly
@Override public long getMaxPower() { return Long.MAX_VALUE / 100L; } // for connection speed
@Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerBatteryREDD(player.inventory, this); }
@Override public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBatteryREDD(player.inventory, this); }
AxisAlignedBB bb = null;
@Override
public AxisAlignedBB getRenderBoundingBox() {
if(bb == null) {
bb = AxisAlignedBB.getBoundingBox(
xCoord - 4,
yCoord,
zCoord - 4,
xCoord + 5,
yCoord + 10,
zCoord + 5
);
}
return bb;
}
}

View File

@ -1,50 +1,27 @@
package com.hbm.tileentity.machine.storage; package com.hbm.tileentity.machine.storage;
import com.hbm.interfaces.IControlReceiver;
import com.hbm.inventory.container.ContainerBatterySocket; import com.hbm.inventory.container.ContainerBatterySocket;
import com.hbm.inventory.gui.GUIBatterySocket; import com.hbm.inventory.gui.GUIBatterySocket;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.uninos.UniNodespace;
import com.hbm.util.EnumUtil;
import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energymk2.IBatteryItem; import api.hbm.energymk2.IBatteryItem;
import api.hbm.energymk2.IEnergyConductorMK2;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.energymk2.IEnergyReceiverMK2;
import api.hbm.energymk2.Nodespace;
import api.hbm.energymk2.Nodespace.PowerNode;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityBatterySocket extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IControlReceiver, IGUIProvider { public class TileEntityBatterySocket extends TileEntityBatteryBase {
public long[] log = new long[20]; public long[] log = new long[20];
public long delta = 0; public long delta = 0;
public byte lastRedstone = 0;
public long prevPowerState = 0;
public static final int mode_input = 0;
public static final int mode_buffer = 1;
public static final int mode_output = 2;
public static final int mode_none = 3;
public short redLow = 0;
public short redHigh = 2;
public ConnectionPriority priority = ConnectionPriority.LOW;
public int renderPack = -1; public int renderPack = -1;
protected PowerNode node;
public TileEntityBatterySocket() { public TileEntityBatterySocket() {
super(1); super(1);
} }
@ -53,35 +30,11 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
@Override @Override
public void updateEntity() { public void updateEntity() {
if(!worldObj.isRemote) {
if(priority == null || priority.ordinal() == 0 || priority.ordinal() == 4) {
priority = ConnectionPriority.LOW;
}
long prevPower = this.getPower(); long prevPower = this.getPower();
if(this.node == null || this.node.expired) { super.updateEntity();
this.node = (PowerNode) UniNodespace.getNode(worldObj, xCoord, yCoord, zCoord, Nodespace.THE_POWER_PROVIDER); if(!worldObj.isRemote) {
if(this.node == null || this.node.expired) {
this.node = this.createNode();
UniNodespace.createNode(worldObj, this.node);
}
}
if(this.node != null && this.node.hasValidNet()) switch(this.getRelevantMode(false)) {
case mode_input: this.node.net.removeProvider(this); this.node.net.addReceiver(this); break;
case mode_output: this.node.net.addProvider(this); this.node.net.removeReceiver(this); break;
case mode_buffer: this.node.net.addProvider(this); this.node.net.addReceiver(this); break;
case mode_none: this.node.net.removeProvider(this); this.node.net.removeReceiver(this); break;
}
byte comp = this.getComparatorPower();
if(comp != this.lastRedstone) this.markDirty();
this.lastRedstone = comp;
long avg = (this.getPower() + prevPower) / 2; long avg = (this.getPower() + prevPower) / 2;
this.delta = avg - this.log[0]; this.delta = avg - this.log[0];
@ -91,31 +44,6 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
} }
this.log[19] = avg; this.log[19] = avg;
prevPowerState = this.getPower();
this.networkPackNT(100);
}
}
@Override
public PowerNode createNode() {
return new PowerNode(this.getPortPos()).setConnections(this.getConPos());
}
public byte getComparatorPower() {
double frac = (double) this.getPower() / (double) this.getMaxPower() * 15D;
return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); //to combat eventual rounding errors with the FEnSU's stupid maxPower
}
@Override
public void invalidate() {
super.invalidate();
if(!worldObj.isRemote) {
if(this.node != null) {
UniNodespace.destroyNode(worldObj, xCoord, yCoord, zCoord, Nodespace.THE_POWER_PROVIDER);
}
} }
} }
@ -127,43 +55,15 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
if(slots[0] != null && slots[0].getItem() == ModItems.battery_pack) { if(slots[0] != null && slots[0].getItem() == ModItems.battery_pack) {
renderPack = slots[0].getItemDamage(); renderPack = slots[0].getItemDamage();
} }
buf.writeInt(renderPack); buf.writeInt(renderPack);
buf.writeLong(delta); buf.writeLong(delta);
buf.writeShort(redLow);
buf.writeShort(redHigh);
buf.writeByte(priority.ordinal());
} }
@Override @Override
public void deserialize(ByteBuf buf) { public void deserialize(ByteBuf buf) {
super.deserialize(buf); super.deserialize(buf);
renderPack = buf.readInt(); renderPack = buf.readInt();
delta = buf.readLong(); delta = buf.readLong();
redLow = buf.readShort();
redHigh = buf.readShort();
priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, buf.readByte());
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.redLow = nbt.getShort("redLow");
this.redHigh = nbt.getShort("redHigh");
this.lastRedstone = nbt.getByte("lastRedstone");
this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, nbt.getByte("priority"));
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setShort("redLow", redLow);
nbt.setShort("redHigh", redHigh);
nbt.setByte("lastRedstone", lastRedstone);
nbt.setByte("priority", (byte) this.priority.ordinal());
} }
@Override @Override
@ -175,11 +75,6 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
return false; return false;
} }
@Override
public boolean isItemValidForSlot(int i, ItemStack stack) {
return stack.getItem() instanceof IBatteryItem;
}
@Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] {0}; } @Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] {0}; }
@Override @Override
@ -200,9 +95,6 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
return ((IBatteryItem) slots[0].getItem()).getMaxCharge(slots[0]); return ((IBatteryItem) slots[0].getItem()).getMaxCharge(slots[0]);
} }
@Override public boolean allowDirectProvision() { return false; }
@Override public ConnectionPriority getPriority() { return this.priority; }
@Override public long getProviderSpeed() { @Override public long getProviderSpeed() {
if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return 0; if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return 0;
int mode = this.getRelevantMode(true); int mode = this.getRelevantMode(true);
@ -215,6 +107,7 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
return mode == mode_input || mode == mode_buffer ? ((IBatteryItem) slots[0].getItem()).getChargeRate(slots[0]) : 0; return mode == mode_input || mode == mode_buffer ? ((IBatteryItem) slots[0].getItem()).getChargeRate(slots[0]) : 0;
} }
@Override
public BlockPos[] getPortPos() { public BlockPos[] getPortPos() {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP); ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
@ -226,6 +119,7 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
}; };
} }
@Override
public DirPos[] getConPos() { public DirPos[] getConPos() {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP); ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
@ -244,36 +138,25 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
}; };
} }
private short modeCache = 0;
public short getRelevantMode(boolean useCache) {
if(useCache) return this.modeCache;
boolean powered = false;
for(BlockPos pos : getPortPos()) if(worldObj.isBlockIndirectlyGettingPowered(pos.getX(), pos.getY(), pos.getZ())) { powered = true; break; }
this.modeCache = powered ? this.redHigh : this.redLow;
return this.modeCache;
}
@Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerBatterySocket(player.inventory, this); } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerBatterySocket(player.inventory, this); }
@Override public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBatterySocket(player.inventory, this); } @Override public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBatterySocket(player.inventory, this); }
@Override public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); } AxisAlignedBB bb = null;
@Override @Override
public void receiveControl(NBTTagCompound data) { public AxisAlignedBB getRenderBoundingBox() {
if(data.hasKey("low")) {
this.redLow++; if(bb == null) {
if(this.redLow > 3) this.redLow = 0; bb = AxisAlignedBB.getBoundingBox(
} xCoord - 1,
if(data.hasKey("high")) { yCoord,
this.redHigh++; zCoord - 1,
if(this.redHigh > 3) this.redHigh = 0; xCoord + 2,
} yCoord + 2,
if(data.hasKey("priority")) { zCoord + 2
int ordinal = this.priority.ordinal(); );
ordinal++;
if(ordinal > ConnectionPriority.HIGH.ordinal()) ordinal = ConnectionPriority.LOW.ordinal();
this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, ordinal);
} }
return bb;
} }
} }

View File

@ -3,6 +3,7 @@ package com.hbm.uninos;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.Map.Entry; import java.util.Map.Entry;
@ -23,7 +24,7 @@ import net.minecraft.world.World;
*/ */
public class UniNodespace { public class UniNodespace {
public static HashMap<World, UniNodeWorld> worlds = new HashMap(); public static Map<World, UniNodeWorld> worlds = new HashMap();
public static Set<NodeNet> activeNodeNets = new HashSet(); public static Set<NodeNet> activeNodeNets = new HashSet();
public static GenNode getNode(World world, int x, int y, int z, INetworkProvider type) { public static GenNode getNode(World world, int x, int y, int z, INetworkProvider type) {
@ -54,6 +55,7 @@ public class UniNodespace {
} }
} }
private static int reapTimer = 0;
public static void updateNodespace() { public static void updateNodespace() {
for(World world : MinecraftServer.getServer().worldServers) { for(World world : MinecraftServer.getServer().worldServers) {
@ -72,12 +74,23 @@ public class UniNodespace {
} }
updateNetworks(); updateNetworks();
updateReapTimer();
} }
private static void updateNetworks() { private static void updateNetworks() {
for(NodeNet net : activeNodeNets) net.resetTrackers(); //reset has to be done before everything else for(NodeNet net : activeNodeNets) net.resetTrackers(); //reset has to be done before everything else
for(NodeNet net : activeNodeNets) net.update(); for(NodeNet net : activeNodeNets) net.update();
if(reapTimer <= 0) {
activeNodeNets.forEach((net) -> { net.links.removeIf((link) -> { return ((GenNode) link).expired; }); });
activeNodeNets.removeIf((net) -> { return net.links.size() <= 0; }); // reap empty networks
}
}
private static void updateReapTimer() {
if(reapTimer <= 0) reapTimer = 5 * 60 * 20; // 5 minutes is more than plenty
else reapTimer--;
} }
/** Goes over each connection point of the given node, tries to find neighbor nodes and to join networks with them */ /** Goes over each connection point of the given node, tries to find neighbor nodes and to join networks with them */

View File

@ -194,6 +194,17 @@ public class Tuple {
public Z getZ() { public Z getZ() {
return this.z; return this.z;
} }
/// flavor town ///
public void mangle(W w, X x, Y y, Z z) {
this.w = w;
this.x = x;
this.y = y;
this.z = z;
}
public Quartet<W,X,Y,Z> clone() {
return new Quartet(w, x, y, z);
}
} }
public static class Quintet<V,W,X,Y,Z> { public static class Quintet<V,W,X,Y,Z> {

View File

@ -22,31 +22,7 @@ public class DesertAtom001 extends WorldGenerator
Block Block2 = ModBlocks.yellow_barrel; Block Block2 = ModBlocks.yellow_barrel;
Block Block3 = ModBlocks.reinforced_sand; Block Block3 = ModBlocks.reinforced_sand;
Block Block4 = ModBlocks.crashed_balefire; Block Block4 = ModBlocks.crashed_balefire;
Block Block5 = ModBlocks.deco_steel;
Block Block6 = ModBlocks.brick_light;
Block Block7 = ModBlocks.deco_tungsten; Block Block7 = ModBlocks.deco_tungsten;
Block Block8 = ModBlocks.steel_poles;
Block Block9 = ModBlocks.tape_recorder;
Block Block10 = ModBlocks.machine_rtg_furnace_off;
Block Block11 = ModBlocks.reinforced_glass;
Block Block12 = ModBlocks.reinforced_lamp_off;
Block Block13 = ModBlocks.pole_satellite_receiver;
Block Block14 = ModBlocks.pwr_fuel;
Block Block15 = ModBlocks.deco_titanium;
Block Block16 = ModBlocks.block_lead;
Block Block17 = ModBlocks.ore_schrabidium;
Block Block18 = ModBlocks.waste_planks;
Block Block19 = ModBlocks.machine_centrifuge;
Block Block20 = ModBlocks.machine_uf6_tank;
Block Block21 = ModBlocks.machine_puf6_tank;
Block Block22 = ModBlocks.reinforced_brick;
Block Block23 = ModBlocks.waste_earth;
Block Block24 = ModBlocks.deco_lead;
Block Block25 = ModBlocks.red_wire_coated;
Block Block26 = ModBlocks.block_uranium;
Block Block27 = ModBlocks.pole_top;
Block Block28 = ModBlocks.machine_battery;
Block Block29 = ModBlocks.machine_electric_furnace_off;
protected Block[] GetValidSpawnBlocks() protected Block[] GetValidSpawnBlocks()
{ {

View File

@ -21,7 +21,6 @@ public class DesertAtom002
{ {
Block Block2 = ModBlocks.yellow_barrel; Block Block2 = ModBlocks.yellow_barrel;
Block Block3 = ModBlocks.reinforced_sand; Block Block3 = ModBlocks.reinforced_sand;
Block Block4 = ModBlocks.nuke_man;
Block Block5 = ModBlocks.deco_steel; Block Block5 = ModBlocks.deco_steel;
Block Block6 = ModBlocks.brick_light; Block Block6 = ModBlocks.brick_light;
Block Block7 = ModBlocks.deco_tungsten; Block Block7 = ModBlocks.deco_tungsten;
@ -35,18 +34,6 @@ public class DesertAtom002
Block Block15 = ModBlocks.deco_titanium; Block Block15 = ModBlocks.deco_titanium;
Block Block16 = ModBlocks.block_lead; Block Block16 = ModBlocks.block_lead;
Block Block17 = ModBlocks.ore_nether_plutonium; Block Block17 = ModBlocks.ore_nether_plutonium;
Block Block18 = ModBlocks.waste_planks;
Block Block19 = ModBlocks.machine_centrifuge;
Block Block20 = ModBlocks.machine_uf6_tank;
Block Block21 = ModBlocks.machine_puf6_tank;
Block Block22 = ModBlocks.reinforced_brick;
Block Block23 = ModBlocks.waste_earth;
Block Block24 = ModBlocks.deco_lead;
Block Block25 = ModBlocks.red_wire_coated;
Block Block26 = ModBlocks.block_uranium;
Block Block27 = ModBlocks.pole_top;
Block Block28 = ModBlocks.machine_battery;
Block Block29 = ModBlocks.machine_electric_furnace_off;
public boolean generate_r00(World world, Random rand, int x, int y, int z) public boolean generate_r00(World world, Random rand, int x, int y, int z)
{ {

View File

@ -48,7 +48,7 @@ public class DesertAtom003
Block Block25 = ModBlocks.red_wire_coated; Block Block25 = ModBlocks.red_wire_coated;
Block Block26 = ModBlocks.block_uranium; Block Block26 = ModBlocks.block_uranium;
Block Block27 = ModBlocks.pole_top; Block Block27 = ModBlocks.pole_top;
Block Block28 = ModBlocks.machine_battery; Block Block28 = ModBlocks.capacitor_copper;
Block Block29 = ModBlocks.machine_electric_furnace_off; Block Block29 = ModBlocks.machine_electric_furnace_off;
public boolean generate_r00(World world, Random rand, int x, int y, int z) public boolean generate_r00(World world, Random rand, int x, int y, int z)
@ -1424,10 +1424,10 @@ public class DesertAtom003
world.setBlock(x + 19, y + 8, z + 9, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 19, y + 8, z + 9, ModBlocks.fence_metal, 0, 3);
world.setBlock(x + 23, y + 8, z + 9, Block25, 0, 3); world.setBlock(x + 23, y + 8, z + 9, Block25, 0, 3);
world.setBlock(x + 24, y + 8, z + 9, Block25, 0, 3); world.setBlock(x + 24, y + 8, z + 9, Block25, 0, 3);
world.setBlock(x + 25, y + 8, z + 9, Block28, 3, 3); world.setBlock(x + 25, y + 8, z + 9, Block28, 0, 3);
world.setBlock(x + 26, y + 8, z + 9, Block25, 0, 3); world.setBlock(x + 26, y + 8, z + 9, Block25, 0, 3);
world.setBlock(x + 27, y + 8, z + 9, Block25, 0, 3); world.setBlock(x + 27, y + 8, z + 9, Block25, 0, 3);
world.setBlock(x + 28, y + 8, z + 9, Block28, 3, 3); world.setBlock(x + 28, y + 8, z + 9, Block28, 0, 3);
world.setBlock(x + 29, y + 8, z + 9, Block25, 0, 3); world.setBlock(x + 29, y + 8, z + 9, Block25, 0, 3);
world.setBlock(x + 30, y + 8, z + 9, Block25, 0, 3); world.setBlock(x + 30, y + 8, z + 9, Block25, 0, 3);
world.setBlock(x + 31, y + 8, z + 9, Block29, 3, 3); world.setBlock(x + 31, y + 8, z + 9, Block29, 3, 3);

View File

@ -779,16 +779,15 @@ public class Relay extends WorldGenerator
world.setBlock(x + 10, y + 1, z + 9, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 10, y + 1, z + 9, ModBlocks.fence_metal, 0, 3);
world.setBlock(x + 0, y + 1, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 0, y + 1, z + 10, Library.getRandomConcrete(), 0, 3);
world.setBlock(x + 4, y + 1, z + 10, Block5, 0, 3); world.setBlock(x + 4, y + 1, z + 10, Block5, 0, 3);
world.setBlock(x + 7, y + 1, z + 10, ModBlocks.machine_battery, 4, 3); world.setBlock(x + 7, y + 1, z + 10, ModBlocks.capacitor_copper, 0, 3);
world.setBlock(x + 8, y + 1, z + 10, ModBlocks.red_wire_coated, 0, 3); world.setBlock(x + 8, y + 1, z + 10, ModBlocks.red_wire_coated, 0, 3);
world.setBlock(x + 10, y + 1, z + 10, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 10, y + 1, z + 10, ModBlocks.fence_metal, 0, 3);
world.setBlock(x + 4, y + 1, z + 11, Blocks.brick_block, 0, 3); world.setBlock(x + 4, y + 1, z + 11, Blocks.brick_block, 0, 3);
world.setBlock(x + 7, y + 1, z + 11, ModBlocks.machine_battery, 4, 3); world.setBlock(x + 7, y + 1, z + 11, ModBlocks.capacitor_copper, 0, 3);
world.setBlock(x + 8, y + 1, z + 11, ModBlocks.red_wire_coated, 0, 3); world.setBlock(x + 8, y + 1, z + 11, ModBlocks.red_wire_coated, 0, 3);
world.setBlock(x + 10, y + 1, z + 11, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 10, y + 1, z + 11, ModBlocks.fence_metal, 0, 3);
world.setBlock(x + 0, y + 1, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 0, y + 1, z + 12, Library.getRandomConcrete(), 0, 3);
//world.setBlock(x + 4, y + 1, z + 12, Blocks.iron_door, 8, 3); world.setBlock(x + 7, y + 1, z + 12, ModBlocks.capacitor_copper, 0, 3);
world.setBlock(x + 7, y + 1, z + 12, ModBlocks.machine_battery, 4, 3);
world.setBlock(x + 8, y + 1, z + 12, ModBlocks.red_wire_coated, 0, 3); world.setBlock(x + 8, y + 1, z + 12, ModBlocks.red_wire_coated, 0, 3);
world.setBlock(x + 10, y + 1, z + 12, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 10, y + 1, z + 12, ModBlocks.fence_metal, 0, 3);
world.setBlock(x + 0, y + 1, z + 13, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 0, y + 1, z + 13, ModBlocks.fence_metal, 0, 3);

View File

@ -592,10 +592,10 @@ public class Spaceship extends WorldGenerator
world.setBlock(x + 2, y + -2, z + 35, Blocks.air, 0, 3); world.setBlock(x + 2, y + -2, z + 35, Blocks.air, 0, 3);
world.setBlock(x + 3, y + -2, z + 35, Block4, 0, 3); world.setBlock(x + 3, y + -2, z + 35, Block4, 0, 3);
world.setBlock(x + 4, y + -2, z + 35, Block3, 0, 3); world.setBlock(x + 4, y + -2, z + 35, Block3, 0, 3);
world.setBlock(x + 5, y + -2, z + 35, ModBlocks.machine_battery, 5, 3); world.setBlock(x + 5, y + -2, z + 35, ModBlocks.capacitor_copper, 0, 3);
world.setBlock(x + 6, y + -2, z + 35, Blocks.air, 0, 3); world.setBlock(x + 6, y + -2, z + 35, Blocks.air, 0, 3);
world.setBlock(x + 7, y + -2, z + 35, Blocks.air, 0, 3); world.setBlock(x + 7, y + -2, z + 35, Blocks.air, 0, 3);
world.setBlock(x + 8, y + -2, z + 35, ModBlocks.machine_battery, 4, 3); world.setBlock(x + 8, y + -2, z + 35, ModBlocks.capacitor_copper, 0, 3);
world.setBlock(x + 9, y + -2, z + 35, Block3, 0, 3); world.setBlock(x + 9, y + -2, z + 35, Block3, 0, 3);
world.setBlock(x + 10, y + -2, z + 35, Block4, 0, 3); world.setBlock(x + 10, y + -2, z + 35, Block4, 0, 3);
world.setBlock(x + 11, y + -2, z + 35, Blocks.air, 0, 3); world.setBlock(x + 11, y + -2, z + 35, Blocks.air, 0, 3);

View File

@ -884,7 +884,7 @@ public class BunkerComponents {
fillWithMetadataBlocks(world, box, 1, 3, 1, 1, 3, 5, ModBlocks.concrete_smooth_stairs, stairMetaW); fillWithMetadataBlocks(world, box, 1, 3, 1, 1, 3, 5, ModBlocks.concrete_smooth_stairs, stairMetaW);
placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer, 0, 1, 2, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer, 0, 1, 2, 1, box);
placeBlockAtCurrentPosition(world, ModBlocks.cable_diode, decoMetaN, 1, 2, 2, box); placeBlockAtCurrentPosition(world, ModBlocks.cable_diode, decoMetaN, 1, 2, 2, box);
placeBlockAtCurrentPosition(world, ModBlocks.machine_battery, decoMetaE, 1, 2, 3, box); placeBlockAtCurrentPosition(world, ModBlocks.capacitor_copper, 0, 1, 2, 3, box);
placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 1, 2, 4, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 1, 2, 4, box);
placeBlockAtCurrentPosition(world, ModBlocks.cable_switch, 0, 1, 2, 5, box); placeBlockAtCurrentPosition(world, ModBlocks.cable_switch, 0, 1, 2, 5, box);
//machine //machine

View File

@ -22,7 +22,12 @@ local mt = {
} }
setmetatable(const, mt) setmetatable(const, mt)
const.fullCoreHeatMAX = 9000000 for address, _ in component.list("ntm_pwr_control") do
pwrController = address
end
_, _, const.coreHeatCapacity = call(pwrController, "getHeat")
const.fullCoreHeatMAX = const.coreHeatCapacity * 0.9
const.coldCoolantLevelMIN = 10000 const.coldCoolantLevelMIN = 10000
const.hotCoolantLevelMAX = 0.5 const.hotCoolantLevelMAX = 0.5
@ -88,10 +93,6 @@ buttons[9] = newButton(94, 9, 12, 2, 0x00FF00, 0x00AA00, function() coolantLossE
buttons[10] = newButton(107, 8, 5, 3, 0xFF0000, 0xAA0000, function() runSig = false end) buttons[10] = newButton(107, 8, 5, 3, 0xFF0000, 0xAA0000, function() runSig = false end)
for address, _ in component.list("ntm_pwr_control") do
pwrController = address
end
gpu.setForeground(0xAAAAAA) gpu.setForeground(0xAAAAAA)
--Control rods --Control rods
@ -203,7 +204,7 @@ while (runSig == true) do
rodLevel = call(pwrController, "getLevel") rodLevel = call(pwrController, "getLevel")
coreHeat, _ = call(pwrController, "getHeat") coreHeat, _ = call(pwrController, "getHeat")
coreHeat = coreHeat//1000000 coreHeat = coreHeat // (const.coreHeatCapacity / 10)
for _, b in pairs(buttons) do for _, b in pairs(buttons) do
drawButton(b, b.colorUp) drawButton(b, b.colorUp)

View File

@ -322,6 +322,8 @@ container.autocrafter=Automatische Werkbank
container.barrel=Fass container.barrel=Fass
container.bat9000=Big-Ass Tank 9000 container.bat9000=Big-Ass Tank 9000
container.battery=Energiespeicher container.battery=Energiespeicher
container.batteryREDD=FEnSU
container.batterySocket=Batteriesockel
container.bombMulti=Mehrzweckbombe container.bombMulti=Mehrzweckbombe
container.casingBag=Hülsentasche container.casingBag=Hülsentasche
container.catalyticReformer=Katalytischer Reformer container.catalyticReformer=Katalytischer Reformer
@ -1315,6 +1317,18 @@ item.battery_lithium.name=Lithium-Ionen-Batterie
item.battery_lithium_cell.name=Lithium-Ionen-Energiezelle item.battery_lithium_cell.name=Lithium-Ionen-Energiezelle
item.battery_lithium_cell_3.name=Dreifache Lithium-Ionen-Energiezelle item.battery_lithium_cell_3.name=Dreifache Lithium-Ionen-Energiezelle
item.battery_lithium_cell_6.name=Sechsfache Lithium-Ionen-Energiezelle item.battery_lithium_cell_6.name=Sechsfache Lithium-Ionen-Energiezelle
item.battery_pack.battery_lead.name=Bleisäure-Akku
item.battery_pack.battery_lithium.name=Lithium-Ionen-Akku
item.battery_pack.battery_quantum.name=Quantenakku
item.battery_pack.battery_redstone.name=Redstoneakku
item.battery_pack.battery_schrabidium.name=Schrabidiumakku
item.battery_pack.battery_sodium.name=Natrium-Eisen-Akku
item.battery_pack.capacitor_bismuth.name=Bismutkondensator
item.battery_pack.capacitor_copper.name=Kupferkondensator
item.battery_pack.capacitor_gold.name=Goldkondensator
item.battery_pack.capacitor_niobium.name=Niobkondensator
item.battery_pack.capacitor_spark.name=Spark-Kondensator
item.battery_pack.capacitor_tantalum.name=Tantalkondensator
item.battery_potato.name=Katoffelbatterie item.battery_potato.name=Katoffelbatterie
item.battery_potatos.name=PotatOS item.battery_potatos.name=PotatOS
item.battery_red_cell.name=Redstone-Energiezelle item.battery_red_cell.name=Redstone-Energiezelle
@ -4043,13 +4057,13 @@ tile.c4.name=C4
tile.cable_detector.name=Redstone-Stromschalter tile.cable_detector.name=Redstone-Stromschalter
tile.cable_diode.name=Rote Kupferdiode tile.cable_diode.name=Rote Kupferdiode
tile.cable_switch.name=Stromschalter tile.cable_switch.name=Stromschalter
tile.capacitor_bus.name=Kondensator-Bus tile.capacitor_bus.name=Kondensator-Bus (LEGACY)
tile.capacitor_bus.desc=Output für Kondensatoren$Kann in einer geraden Linie aneinandergereit werden tile.capacitor_bus.desc=Output für Kondensatoren$Kann in einer geraden Linie aneinandergereit werden
tile.capacitor_copper.name=Kupferkondensator tile.capacitor_copper.name=Alter Kondensator
tile.capacitor_gold.name=Goldkondensator tile.capacitor_gold.name=Goldkondensator (LEGACY)
tile.capacitor_niobium.name=Niobkondensator tile.capacitor_niobium.name=Niobkondensator (LEGACY)
tile.capacitor_schrabidate.name=Schrabidatkondensator tile.capacitor_schrabidate.name=Schrabidatkondensator (LEGACY)
tile.capacitor_tantalium.name=Tantalkondensator tile.capacitor_tantalium.name=Tantalkondensator (LEGACY)
tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus
tile.charge_c4.name=Abrissladung tile.charge_c4.name=Abrissladung
tile.charge_dynamite.name=Zeitbombe tile.charge_dynamite.name=Zeitbombe
@ -4456,8 +4470,10 @@ tile.machine_autosaw.name=Automatische Kreissäge
tile.machine_autosaw.desc=Schneidet Pflanzen nieder, pflanzt Bäume nach$Akzeptiert:$-Holzöl$-Ethanol$-Fischöl$-Schweröl tile.machine_autosaw.desc=Schneidet Pflanzen nieder, pflanzt Bäume nach$Akzeptiert:$-Holzöl$-Ethanol$-Fischöl$-Schweröl
tile.machine_autosaw.suspended=Angehalten tile.machine_autosaw.suspended=Angehalten
tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_bat9000.name=Big-Ass Tank 9000
tile.machine_battery.name=Energiespeicherblock tile.machine_battery.name=Energiespeicherblock (LEGACY)
tile.machine_battery_potato.name=Kartoffelbatterieblock tile.machine_battery_potato.name=Kartoffelbatterieblock (LEGACY)
tile.machine_battery_redd.name=FEnSU
tile.machine_battery_socket.name=Batteriesockel
tile.machine_boiler.name=Boiler tile.machine_boiler.name=Boiler
tile.machine_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.01 TU/t tile.machine_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.01 TU/t
tile.machine_boiler_electric_off.name=Elektrischer Ölwärmer tile.machine_boiler_electric_off.name=Elektrischer Ölwärmer
@ -4499,7 +4515,7 @@ tile.machine_difurnace_off.name=Hochofen
tile.machine_difurnace_on.name=Hochofen tile.machine_difurnace_on.name=Hochofen
tile.machine_difurnace_rtg_off.name=Atomarer Hochofen tile.machine_difurnace_rtg_off.name=Atomarer Hochofen
tile.machine_difurnace_rtg_on.name=Atomarer Hochofen tile.machine_difurnace_rtg_on.name=Atomarer Hochofen
tile.machine_dineutronium_battery.name=Spark Energiespeicherblock tile.machine_dineutronium_battery.name=Spark Energiespeicherblock (LEGACY)
tile.machine_drain.name=Ausgussrohr tile.machine_drain.name=Ausgussrohr
tile.machine_drill.name=Automatischer Minenbohrer tile.machine_drill.name=Automatischer Minenbohrer
tile.machine_electric_furnace_off.name=Elektrischer Ofen tile.machine_electric_furnace_off.name=Elektrischer Ofen
@ -4509,7 +4525,7 @@ tile.machine_epress.name=Hydraulische Presse
tile.machine_exposure_chamber.name=Bestrahlungskammer tile.machine_exposure_chamber.name=Bestrahlungskammer
tile.machine_excavator.name=Großer Minenbohrer tile.machine_excavator.name=Großer Minenbohrer
tile.machine_fel.name=FEL tile.machine_fel.name=FEL
tile.machine_fensu.name=FEnSU tile.machine_fensu.name=FEnSU (LEGACY)
tile.machine_flare.name=Abfackelturm tile.machine_flare.name=Abfackelturm
tile.machine_fluidtank.name=Tank tile.machine_fluidtank.name=Tank
tile.machine_forcefield.name=Kraftfeldgenerator tile.machine_forcefield.name=Kraftfeldgenerator
@ -4529,7 +4545,7 @@ tile.machine_intake.name=Lufteinlass
tile.machine_keyforge.name=Schlossertisch tile.machine_keyforge.name=Schlossertisch
tile.machine_large_turbine.name=Industrielle Dampfturbine tile.machine_large_turbine.name=Industrielle Dampfturbine
tile.machine_large_turbine.desc=Effizienz: 100%% tile.machine_large_turbine.desc=Effizienz: 100%%
tile.machine_lithium_battery.name=Li-Ion-Energiespeicherblock tile.machine_lithium_battery.name=Li-Ion-Energiespeicherblock (LEGACY)
tile.machine_microwave.name=Mikrowelle tile.machine_microwave.name=Mikrowelle
tile.machine_mining_laser.name=Bergbaulaser tile.machine_mining_laser.name=Bergbaulaser
tile.machine_minirtg.name=Radioisotopenzelle tile.machine_minirtg.name=Radioisotopenzelle
@ -4569,7 +4585,7 @@ tile.machine_rtg_yellow.name=Australium Supergenerator
tile.machine_satlinker.name=Satelliten-ID-Manager tile.machine_satlinker.name=Satelliten-ID-Manager
tile.machine_sawmill.name=Stirling-Sägemühle tile.machine_sawmill.name=Stirling-Sägemühle
tile.machine_sawmill.desc=Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Minimalaufnahme: 100 TU/t, Maximalaufnahme: 300 TU/t tile.machine_sawmill.desc=Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Minimalaufnahme: 100 TU/t, Maximalaufnahme: 300 TU/t
tile.machine_schrabidium_battery.name=Schrabidium-Energiespeicherblock tile.machine_schrabidium_battery.name=Schrabidium-Energiespeicherblock (LEGACY)
tile.machine_schrabidium_transmutator.name=Schrabidium-Transmutationsgerät (LEGACY) tile.machine_schrabidium_transmutator.name=Schrabidium-Transmutationsgerät (LEGACY)
tile.machine_selenium.name=Hochleistungs-Sternmotor tile.machine_selenium.name=Hochleistungs-Sternmotor
tile.machine_shredder.name=Brecher tile.machine_shredder.name=Brecher

View File

@ -308,7 +308,7 @@ book.starter.page15=Finally, you can create your first §oreal§r source of ener
book.starter.title16=Conclusion book.starter.title16=Conclusion
book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir!
book.starter.title18=About the Author book.starter.title18=About the Author
book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Heads' §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out.
#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction #book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction
#book.rbmk.title1=Introduction #book.rbmk.title1=Introduction
@ -339,7 +339,7 @@ book.starter.page18=vær is just a guy who has been trapped in the grey void fea
#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. #book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all.
#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. #book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert.
#book.rbmk.title15=Fuel #book.rbmk.title15=Fuel
#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. #book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectiveness of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r.
#book.rbmk.title16=Meltdown #book.rbmk.title16=Meltdown
#book.rbmk.page16=§4§lAvoid. #book.rbmk.page16=§4§lAvoid.
@ -727,6 +727,8 @@ container.autocrafter=Automatic Crafting Table
container.barrel=Barrel container.barrel=Barrel
container.bat9000=Big-Ass Tank 9000 container.bat9000=Big-Ass Tank 9000
container.battery=Energy Storage container.battery=Energy Storage
container.batteryREDD=FEnSU
container.batterySocket=Battery Socket
container.bombMulti=Multi Purpose Bomb container.bombMulti=Multi Purpose Bomb
container.casingBag=Bullet Casing Bag container.casingBag=Bullet Casing Bag
container.catalyticReformer=Catalytic Reformer container.catalyticReformer=Catalytic Reformer
@ -2073,6 +2075,18 @@ item.battery_lithium.name=Lithium-Ion Battery
item.battery_lithium_cell.name=Lithium-Ion Power Cell item.battery_lithium_cell.name=Lithium-Ion Power Cell
item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell
item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell
item.battery_pack.battery_lead.name=Lead-Acid Battery
item.battery_pack.battery_lithium.name=Lithium-Ion Battery
item.battery_pack.battery_quantum.name=Quantum Battery
item.battery_pack.battery_redstone.name=Redstone Battery
item.battery_pack.battery_schrabidium.name=Schrabidium Battery
item.battery_pack.battery_sodium.name=Sodium-Iron Battery
item.battery_pack.capacitor_bismuth.name=Bismuth Capacitor
item.battery_pack.capacitor_copper.name=Copper Capacitor
item.battery_pack.capacitor_gold.name=Gold Capacitor
item.battery_pack.capacitor_niobium.name=Niobium Capacitor
item.battery_pack.capacitor_spark.name=Spark Capacitor
item.battery_pack.capacitor_tantalum.name=Tantalum Capacitor
item.battery_potato.name=Potato Battery item.battery_potato.name=Potato Battery
item.battery_potatos.name=PotatOS item.battery_potatos.name=PotatOS
item.battery_red_cell.name=Redstone Power Cell item.battery_red_cell.name=Redstone Power Cell
@ -5259,13 +5273,13 @@ tile.c4.name=C-4
tile.cable_detector.name=Redstone Power Switch tile.cable_detector.name=Redstone Power Switch
tile.cable_diode.name=Red Copper Diode tile.cable_diode.name=Red Copper Diode
tile.cable_switch.name=Power Switch tile.cable_switch.name=Power Switch
tile.capacitor_bus.name=Capacitor Bus tile.capacitor_bus.name=Capacitor Bus (LEGACY)
tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a straight line tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a straight line
tile.capacitor_copper.name=Copper Capacitor tile.capacitor_copper.name=Old Capacitor
tile.capacitor_gold.name=Golden Capacitor tile.capacitor_gold.name=Golden Capacitor (LEGACY)
tile.capacitor_niobium.name=Niobium Capacitor tile.capacitor_niobium.name=Niobium Capacitor (LEGACY)
tile.capacitor_schrabidate.name=Schrabidate Capacitor tile.capacitor_schrabidate.name=Schrabidate Capacitor (LEGACY)
tile.capacitor_tantalium.name=Tantalum Capacitor tile.capacitor_tantalium.name=Tantalum Capacitor (LEGACY)
tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus
tile.charge_c4.name=Demolition Charge tile.charge_c4.name=Demolition Charge
tile.charge_dynamite.name=Time Bomb tile.charge_dynamite.name=Time Bomb
@ -5719,8 +5733,10 @@ tile.machine_autosaw.name=Automatic Buzz Saw
tile.machine_autosaw.desc=Cuts down nearby plants, re-plants trees$Accepts:$-Wood oil$-Ethanol$-Fish oil$-Heavy oil tile.machine_autosaw.desc=Cuts down nearby plants, re-plants trees$Accepts:$-Wood oil$-Ethanol$-Fish oil$-Heavy oil
tile.machine_autosaw.suspended=Suspended tile.machine_autosaw.suspended=Suspended
tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_bat9000.name=Big-Ass Tank 9000
tile.machine_battery.name=Energy Storage Block tile.machine_battery.name=Energy Storage Block (LEGACY)
tile.machine_battery_potato.name=Potato Battery Block tile.machine_battery_potato.name=Potato Battery Block (LEGACY)
tile.machine_battery_redd.name=FEnSU
tile.machine_battery_socket.name=Battery Socket
tile.machine_boiler.name=Boiler tile.machine_boiler.name=Boiler
tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t
tile.machine_boiler_electric_off.name=Electric Oil Heater tile.machine_boiler_electric_off.name=Electric Oil Heater
@ -5763,7 +5779,7 @@ tile.machine_difurnace_off.name=Blast Furnace
tile.machine_difurnace_on.name=Blast Furnace tile.machine_difurnace_on.name=Blast Furnace
tile.machine_difurnace_rtg_off.name=Nuclear Blast Furnace tile.machine_difurnace_rtg_off.name=Nuclear Blast Furnace
tile.machine_difurnace_rtg_on.name=Nuclear Blast Furnace tile.machine_difurnace_rtg_on.name=Nuclear Blast Furnace
tile.machine_dineutronium_battery.name=Spark Energy Storage Block tile.machine_dineutronium_battery.name=Spark Energy Storage Block (LEGACY)
tile.machine_drain.name=Drainage Pipe tile.machine_drain.name=Drainage Pipe
tile.machine_drill.name=Automatic Mining Drill tile.machine_drill.name=Automatic Mining Drill
tile.machine_electric_furnace_off.name=Electric Furnace tile.machine_electric_furnace_off.name=Electric Furnace
@ -5773,7 +5789,7 @@ tile.machine_epress.name=Electric Press
tile.machine_excavator.name=Large Mining Drill tile.machine_excavator.name=Large Mining Drill
tile.machine_exposure_chamber.name=Exposure Chamber tile.machine_exposure_chamber.name=Exposure Chamber
tile.machine_fel.name=FEL tile.machine_fel.name=FEL
tile.machine_fensu.name=FEnSU tile.machine_fensu.name=FEnSU (LEGACY)
tile.machine_flare.name=Flare Stack tile.machine_flare.name=Flare Stack
tile.machine_fluidtank.name=Tank tile.machine_fluidtank.name=Tank
tile.machine_forcefield.name=Forcefield Emitter tile.machine_forcefield.name=Forcefield Emitter
@ -5796,7 +5812,7 @@ tile.machine_large_turbine.name=Industrial Steam Turbine
tile.machine_large_turbine.desc=Efficiency: 100%% tile.machine_large_turbine.desc=Efficiency: 100%%
tile.machine_liquefactor.name=Industrial Liquefaction Machine tile.machine_liquefactor.name=Industrial Liquefaction Machine
tile.machine_liquefactor.desc=Powerful universal machine to turn items into fluids.$Comes with versatile catalytic components, heating elements$and a built-in hydrator for petrochemical liquefaction. tile.machine_liquefactor.desc=Powerful universal machine to turn items into fluids.$Comes with versatile catalytic components, heating elements$and a built-in hydrator for petrochemical liquefaction.
tile.machine_lithium_battery.name=Li-Ion Energy Storage Block tile.machine_lithium_battery.name=Li-Ion Energy Storage Block (LEGACY)
tile.machine_microwave.name=Microwave tile.machine_microwave.name=Microwave
tile.machine_mining_laser.name=Mining Laser tile.machine_mining_laser.name=Mining Laser
tile.machine_minirtg.name=Radio Isotope Cell tile.machine_minirtg.name=Radio Isotope Cell
@ -5836,7 +5852,7 @@ tile.machine_rtg_yellow.name=Australium Superfuel Reactor
tile.machine_satlinker.name=Satellite ID Manager tile.machine_satlinker.name=Satellite ID Manager
tile.machine_sawmill.name=Stirling Sawmill tile.machine_sawmill.name=Stirling Sawmill
tile.machine_sawmill.desc=Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Min intake: 100 TU/t, Max intake: 300 TU/t tile.machine_sawmill.desc=Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Min intake: 100 TU/t, Max intake: 300 TU/t
tile.machine_schrabidium_battery.name=Schrabidium Energy Storage Block tile.machine_schrabidium_battery.name=Schrabidium Energy Storage Block (LEGACY)
tile.machine_schrabidium_transmutator.name=Schrabidium Transmutation Device (LEGACY) tile.machine_schrabidium_transmutator.name=Schrabidium Transmutation Device (LEGACY)
tile.machine_selenium.name=Radial Performance Engine tile.machine_selenium.name=Radial Performance Engine
tile.machine_shredder.name=Shredder tile.machine_shredder.name=Shredder

View File

@ -238,40 +238,40 @@ book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The part
book.error.title9=Error 0x09 [BT] book.error.title9=Error 0x09 [BT]
book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured.
book.rbmk.cover=Il mio primo RBMK:$Basi per$costruire un$reattore book.rbmk.cover=HOW 2 RBMK:$Aspetti Fondamentali$ della Costruzione $Dei Reattori
book.rbmk.title1=Introduzione book.rbmk.title1=Introduzione
book.rbmk.page1=§lRBMK§r è un reattore nucleare completamente modulare. A differenza degli altri reattori, non c'è nessun nucleo o limite di costruzione, piuttosto il comportamento e l'efficienza e data da com'è costruito il reattore e come interagiscono le parti tra loro. book.rbmk.page1=L'§lRBMK§r è un reattore nucleare modulare. Ciò che lo contraddistingue dagli altri reattori è l'assenza di un vero e proprio "nocciolo" e la mancanza di restrizioni delle dimensioni. L'efficienza ed il comportamento del reattore deriva dunque dalla costruzione e dalle interazioni dei vari componenti.
book.rbmk.title2=Calore book.rbmk.title2=Calore
book.rbmk.page2=Come il reattore va, tende a generare §lcalore§r. Il calore si diffonderà tra le parti, diminuendo lentamente nel processo di fissione. L'obiettivo è quello di generare più calore possibile senza fondere il reattore, e trasferire esso nelle caldaie per raffreddate il reattore e produrre vapore. book.rbmk.page2=Durante loperazione del reattore, verrà generato del §lcalore§r. Il calore si propagherà attraverso i componenti del reattore, decrementando nel contempo. Lobiettivo è di produrre la maggior quantità di calore possibile senza fondere il reattore e di spostare tale calore verso dei §lcanali per vapore§r, componente che raffredda il reattore e produce vapore.
book.rbmk.title3=Barre di combustibile book.rbmk.title3=Carburante
book.rbmk.page3=Le §lbarre di combustibile§r tendono a catturare il flusso di neutroni, causando al combustibile di reagire, rilasciando neutroni nel processo. I neutroni sono rilasciati in tutte e 4 le principali vie per un massimo di 5 blocchi. Il quantitativo di neutroni rilasciati, dipende dal combustibile usato. book.rbmk.page3=Le §lbarre di carburante§r cattureranno il flusso di neutroni, causando una reazione fissile allinterno della barra che a sua volta rilascerà neutroni. I neutroni vengono irradiati in tutte e quattro le direzioni cardinali con una distanza massima di 5 blocchi. La quantità totale di neutroni rilasciati dipende dal tipo di §lcarburante§r utilizzato.
book.rbmk.title4=Barre di regolazione book.rbmk.title4=Barre di Controllo
book.rbmk.page4=Le §lbarre di regolazione§r tendono a ridurre il numero di neutroni durante il passaggio. Quando sono completamente inserite, bloccano il passaggio di neutroni; Quando sono le barre sono parzialmente inserite, ne bloccano la metà di essi. Le barre di controllo sono un metodo per regolare i neutroni e anche per spengere il reattore. book.rbmk.page4=Le §lbarre di controllo§r decrementeranno la quantità di neutroni che vi passa attraverso. Se inserite pienamente, bloccheranno tutti i neutroni, se inserite a metà bloccherà il flusso della metà dei neutroni. Le barre di controllo vengono usate per regolare la reattività o per spegnere il reattore.
book.rbmk.title5=Barre di regolazione - Usi book.rbmk.title5=Barre di Controllo
book.rbmk.title5.scale=0.9 book.rbmk.page5=In mezzo allinterfaccia cè lindicatore dellinserimento attuale delle barre. I pulsanti colorati a sinistra aggiungeranno la barra ad un gruppo, per poter selezionare le barre in gruppo nella §lconsole RBMK§r. I pulsanti a destra permettono di inserire le barre manualmente ad incrementi del 25%.
book.rbmk.page5=La barra attualmente inserita verrà visualizzata al centro della GUI. I bottoni colorati, alla sinistra della barra di controllo, gli daranno il gruppo di quel colore, e ciò può tornare utile quando si devono selezionare le barre, apparteneti a un certo gruppo, del §lRBMK§r dalla console di comando. I bottoni a destra permettono di inserire manualmente le barre con un incrementi del 25%%. book.rbmk.title6=Barre Automatiche
book.rbmk.title6=Barre di controllo automatiche book.rbmk.page6=Le §lbarre di controllo automatiche§r funzionano in maniera quasi identica alla loro controparte normale, tuttavia si regoleranno automaticamente e non manualmente in base alla temperatura attuale. Prima va definita la funzione da utilizzare per determinare linserimento e la profondità da raggiungere.
book.rbmk.page6=§lLe barre di controllo automatiche§r sono quasi identiche a quelle normali, ma non possono essere aggiustate manualmente, infatti si aggiusteranno da sole in base alla temperatura. Innanzitutto è necessario determinare quale funzione utilizzare, a quale profondità inserirla e a quale temperatura. book.rbmk.title7=Canali per Vapore
book.rbmk.title7=Caldaie book.rbmk.page7=I §lcanali per vapore§r sono lunico componente che riduce attivamente la temperatura del reattore. Se la temperatura raggiunge il punto di ebollizione del tipo di vapore selezionato, il canale agirà come un bollitore e tenterà di consumare abbastanza acqua per poter tornare a temperature inferiori, producendo vapore.
book.rbmk.page7=Le §lcaldaie§r è lu'unica parte attiva per il raffreddamento del reattore. Se il componente è al di sopra della temperature di ebollizione richiesta dal tipo di vapore, consumerà il quantitativo d'acqua necessario per portare la temperatura al di sotto di quella di ebollizione. book.rbmk.title8=Riflettore Neutronico
book.rbmk.title8=Riflettore di neutroni book.rbmk.page8=Il §lriflettore neutronico§r bloccherà i neutroni che vi passano attraverso, riflettendoli verso la loro direzione darrivo. Sono utili per utilizzare flussi che altrimenti verrebbero sprecati.
book.rbmk.page8=il §lriflettore di neutroni§r bloccherà il passaggio di neutroni, di fatto verranno riflessi indietro, dalla barra di combustibile da cui provenivano. Può tornare molto utile per non sprecare neutroni inutilmente. book.rbmk.title9=Catturatore di Neutroni
book.rbmk.title9=Assorbitore di neutroni book.rbmk.page9=Il §lcatturatore di neutroni§r assorbisce i neutroni, incredibilmente. I neutroni assorbiti non genereranno calore. Questo è utile per separare barre di carburante che altrimenti sarebbero a contatto.
book.rbmk.page9=L'§lassorbitore di neutroni§r blocca i neutroni. I neutroni assorbiti non genereranno calore e saranno distrutti efficientemente. Questa funzionalità è utile per evitare di far reagire i neutroni con gli atomi del combustibile. book.rbmk.title10=Moderatori di Grafite
book.rbmk.title10=Ritardante in grafite book.rbmk.page10=I §lmoderatori di grafite§r convertono flussi di di neutroni veloci in flussi lenti. La maggior parte dei carburanti si scindono in neutroni veloci e richiedono flussi lenti per scindersi, rendendo i moderatori fondamentali.
book.rbmk.page10=Il §lmoderatore in grafite§r converte i neutroni veloci in lenti quando essi ci passano attraverso. Molti conbustibili nucleari tendono a rilasciare neutroni veloci, mentre i neutroni lenti sono quelli necessari per la fissione, quindi l'uso di moderatori è altamente consigliato. book.rbmk.title11=Colonna Strutturale
book.rbmk.title11=Colonne strutturali book.rbmk.page11=Le §lcolonne strutturali§r non trasferiscono calore né interagiscono con i neutroni. Non ha usi speciali, e può soltanto condurre calore, pertanto conviene utilizzarle per riempire i reattori.
book.rbmk.page11=Le §lcolonne strutturali§r non fanno nulla ai neutroni e non hanno nessun effetto speciale. E' raccomandato di riempire le parti vuote del reattore con le colonne strutturali, siccome possono trasferire il calore. book.rbmk.title12=Console
book.rbmk.title12=Console di comando book.rbmk.page12=La §lconsole RBMK§r permette di controllare il reattore da lontano. Utilizzando l§laccoppiatore di console RBMK§r su un componente di un RBMK e poi sulla console si può collegare i due dispositivi. La console può gestire solo segmenti di 15x15 componenti, tuttavia è possibile usare più console per controllare reattori più grandi.
book.rbmk.page12=La §lconsole di comando§r del RBMK permette di controllare il reattore a distanza. Usando il §ldispositivo per connettere la console§r su una parte del RBMK e successivamente alla console, il reattore sarà collegato ad esso. La console di comando può controllare fino ad un massimo di 15x15 (per reattori più grandi dovrai usare più console). book.rbmk.title13=Utilizzare la Console
book.rbmk.title13=Usi della console book.rbmk.page13=Cliccare sulle parti per selezionarle/deselezionarle. Utilizzando i pulsanti colorati si può selezionare il gruppo corrispondente e controllare il gruppo simultaneamente. Il pulsante A seleziona ogni barra di controllo, X deseleziona tutto.
book.rbmk.page13=Cliccare sulle parti del reattore permette di selezionare o deselezionare essa. Con i bottoni colorati potrai selezionare velocemente tutte le barre di controllo apparteneti a quel gruppo colorato. Il bottone "A" selezionerà tutte le barre di controllo, invece la "X" le deselezionerà. book.rbmk.page14=Inserendo un numero da 0 a 100 nel riquadro verde e premendo il pulsante adiacente si può impostare il livello di inserimento delle barre. Il pulsante AZ-5 causa linserimento totale di tutte le barre.
book.rbmk.page14=Inserendo un numero da 0 a 100 innalzera tutte le barre di controllo selezionate a quella percentuale. Il bottone "AZ-5" inserirà tutte le barre, fino a raggiungere lo 0%%. book.rbmk.title15=Carburante
book.rbmk.title15=Combustibile nucleare book.rbmk.page15=La reattività del §lcarburante§r dipende da diversi fattori e supercazzole. Quelli principali sono l§larricchimento§r, §lavvelenamento da xeno§r ed il §lflusso di neutroni§r. Lo xeno si accumula quando il carburante riceve pochi neutroni e viene bruciato durante loperazione normale. Lefficacia dei neutroni dipende dal tipo, la maggior parte dei carburanti si §lscinde in neutroni lenti§r.
book.rbmk.page15=La risposta del §lcombustibile nucleare§r dipende da molti fattori. Alcuni dei pricipali sono la §lfortificazione§r, §ll'avvelenamento da xenon§r e il numero di §lneutrons§r in arrivo. Lo xenon tende a formarsi quando il combustibile non ha abbastanza neutroni e durante le normali operazioni, esso brucia. L'efficenza dei neutroni dipende dal combustibile, molti combustibili §lsi scissionano meglio con§r i §lneutroni lenti§r.
book.rbmk.title16=Fusione book.rbmk.title16=Fusione
book.rbmk.page16=§4§lEVITALA. book.rbmk.page16=§4§lAò, non lo fare, te scongiuro...
#TODO: Riscrivere sta merda
book.starter.cover=$Guida su come ricostruore$una società industrializzata book.starter.cover=$Guida su come ricostruore$una società industrializzata
book.starter.title1=Introduzione book.starter.title1=Introduzione
book.starter.page1=Se stai leggendo questo libro, significa che molto probabilmente, in un modo o in un altro, la società è collassata. Governi, paesi e autorità sono concetti del passato - insieme ai servizi della vita civilizzata. Questa guida ti insegnerà a ricostruire la società e tutti la tecnologia e le macchine che ti cambieranno la vita. book.starter.page1=Se stai leggendo questo libro, significa che molto probabilmente, in un modo o in un altro, la società è collassata. Governi, paesi e autorità sono concetti del passato - insieme ai servizi della vita civilizzata. Questa guida ti insegnerà a ricostruire la società e tutti la tecnologia e le macchine che ti cambieranno la vita.
@ -280,7 +280,7 @@ book.starter.page2=Mentre è impossibile definire lo stato del mondo in un tempo
book.starter.title3=Incudini e presse book.starter.title3=Incudini e presse
book.starter.page3=La quintessenza per iniziare a revitalizzare l'industria, è un §lincudine§r e una §lpressa§r. L'incudine ti permette di creare machinnari iniziali come ad esempio l'asseblatore, mentre la pressa ti permette di creare piastre, fili e circuitit che non puoi assemblarli nell'incudine. book.starter.page3=La quintessenza per iniziare a revitalizzare l'industria, è un §lincudine§r e una §lpressa§r. L'incudine ti permette di creare machinnari iniziali come ad esempio l'asseblatore, mentre la pressa ti permette di creare piastre, fili e circuitit che non puoi assemblarli nell'incudine.
book.starter.title4=Modelli book.starter.title4=Modelli
book.starter.page4=In ordine per stampare i metalli in forme utili, assemblare macchinari ed eseguire reazioni chimiche, avrai bisogno di creare una §lcartella per modelli macchina§r per creare vari stampi e modelli. book.starter.page4=Per poter stampare i metalli in forme utili, assemblare macchinari ed eseguire reazioni chimiche, avrai bisogno di creare una §lcartella per modelli macchina§r per creare vari stampi e modelli.
book.starter.title5=Scavo book.starter.title5=Scavo
book.starter.page5=A seconda di quanto grave sia stato l'evento apocalittico iniziale per le strutture preesistenti del mondo, c'è una buona probabilità che pezzi e macchine possono essere riparati o salvati. Leghe metalliche come l'acciaio, parti come circuiti, e anche materiali fissili da centrali nucleari ti aspettano. Tuttavia, attenzione ad alcune rovine, ci puo essere un eccesso di pericolo come ad esempio un serpente nell'erba; pronto a mandarti K.O. con le radiazioni, trappole, o orrori indescrivibili... book.starter.page5=A seconda di quanto grave sia stato l'evento apocalittico iniziale per le strutture preesistenti del mondo, c'è una buona probabilità che pezzi e macchine possono essere riparati o salvati. Leghe metalliche come l'acciaio, parti come circuiti, e anche materiali fissili da centrali nucleari ti aspettano. Tuttavia, attenzione ad alcune rovine, ci puo essere un eccesso di pericolo come ad esempio un serpente nell'erba; pronto a mandarti K.O. con le radiazioni, trappole, o orrori indescrivibili...
book.starter.title6=Primi macchinari book.starter.title6=Primi macchinari
@ -302,92 +302,17 @@ book.starter.page12a=§oIl resto del libro involverà materiali riguardanti le
book.starter.page12b=Un alta esposizione alle radiazioni può e ti causera danni corporei. Il primo passo per la prevenzione; è di assicurarsi di limitare l'esposizione ed indossare indumenti protettivi, come la §lTuta hazmat§r, o applicare §lRivestimenti§r sui vestiti o armature; puoi anche prendere il §lRad-X§r per limitare assunzione. Grazie alla medicina moderna, il secondo step può essere rimosso in caso di necessità; per esempio, un §lDecontaminatore del §lplayer§r riduce lentamente le radiazioni assorbite dal tuo corpo. §lRad-Away§r può essere utilizzato anche come profilassi post-esposizione, riduce velocemente ed effettivamente il danno da esposizione da radiazioni. book.starter.page12b=Un alta esposizione alle radiazioni può e ti causera danni corporei. Il primo passo per la prevenzione; è di assicurarsi di limitare l'esposizione ed indossare indumenti protettivi, come la §lTuta hazmat§r, o applicare §lRivestimenti§r sui vestiti o armature; puoi anche prendere il §lRad-X§r per limitare assunzione. Grazie alla medicina moderna, il secondo step può essere rimosso in caso di necessità; per esempio, un §lDecontaminatore del §lplayer§r riduce lentamente le radiazioni assorbite dal tuo corpo. §lRad-Away§r può essere utilizzato anche come profilassi post-esposizione, riduce velocemente ed effettivamente il danno da esposizione da radiazioni.
book.starter.title13=Arricchimento dell'uranio book.starter.title13=Arricchimento dell'uranio
book.starter.page13=Ci sono alcuni metodi facili per alimentare un reattore nucleare; ad esempio, l'§luranio naturale§r o il §lcombustibile al torio§r. Tuttavia, se stai cercando per qualcosa di più potente, puoi creare una cascata di arricchimento di due §lcentrifughe a gas§r per produrre §lcombustibile all'uranio§r con uno scarto di §lUranio-238§r. Dovrai trasmutare l'uranio in §lpangaillo§r, poi in §lesafluoruro di §luranio§r. book.starter.page13=Ci sono alcuni metodi facili per alimentare un reattore nucleare; ad esempio, l'§luranio naturale§r o il §lcombustibile al torio§r. Tuttavia, se stai cercando per qualcosa di più potente, puoi creare una cascata di arricchimento di due §lcentrifughe a gas§r per produrre §lcombustibile all'uranio§r con uno scarto di §lUranio-238§r. Dovrai trasmutare l'uranio in §lpangaillo§r, poi in §lesafluoruro di §luranio§r.
book.starter.title14=La pila Chicago book.starter.title14=La Chicago Pile
book.starter.page14=Alternativamente, puoi generare il §lplutonio di grado reattore§r, un combustibile più potente, dall'uranio naturale usando la §lpila Chicago§r. Sovrapponendo blocchi di grafite e trivellandoli, puoi inserire barre di combustibile da riproduzione per generare plutonio e fonti di neutroni, come il §lRadio-Berillio§r, per iniziare la reazione. Assicurati di testare i tuoi design; potrebbe essere necessario distanziare o limitare la quantità di blocchi per evitare il surriscaldamento. book.starter.page14=Alternativamente, puoi generare il §lplutonio di grado reattore§r, un combustibile più potente, dall'uranio naturale usando la §lChicago Pile§r. Sovrapponendo blocchi di grafite e trivellandoli, puoi inserire barre di combustibile da riproduzione per generare plutonio e fonti di neutroni, come il §lRadio-Berillio§r, per iniziare la reazione. Assicurati di testare i tuoi design; potrebbe essere necessario distanziare o limitare la quantità di blocchi per evitare il surriscaldamento.
book.starter.title15=ZIRNOX GCR book.starter.title15=ZIRNOX GCR
book.starter.page15=Finalmente, puoi creare la tua prima §overa§r fonte di energia: Il reattore nucleare §lZIRNOX§r. I reattori nucleari richiedono una sistemazione maggiore rispetto alle altre fonti di energia; per primo, avrai bisogno di una buona risorsa d'aqua, come il §lSerbatoio dell'acqua infinito pesante§r. Per rimuovere calore da reattore e per far bollire l'acqua, avrai bisogno di §lmonossido di carbonio§r. Dovrai creare una forte pressione, ma non §otroppa§r. Avrai anche bisogno di 3 turbine a vapore per produrre energia dal vapore prodotto; le §lturbine a vapore§r o le §lturbine a vapore industriali§r saranno ottime. Infine, un §lCondensatore§r o una §ltorre di raffreddamento ausiliaria§r servirà per condensare il vapore rimasto in acqua, dove può essere eliminato o riciclato in un circuito di raffreddamento. book.starter.page15=Finalmente, puoi creare la tua prima §overa§r fonte di energia: Il reattore nucleare §lZIRNOX§r. I reattori nucleari richiedono una sistemazione maggiore rispetto alle altre fonti di energia; per primo, avrai bisogno di una buona risorsa d'aqua, come il §lSerbatoio dell'acqua infinito pesante§r. Per rimuovere calore da reattore e per far bollire l'acqua, avrai bisogno di §lmonossido di carbonio§r. Dovrai creare una forte pressione, ma non §otroppa§r. Avrai anche bisogno di 3 turbine a vapore per produrre energia dal vapore prodotto; le §lturbine a vapore§r o le §lturbine a vapore industriali§r saranno ottime. Infine, un §lCondensatore§r o una §ltorre di raffreddamento ausiliaria§r servirà per condensare il vapore rimasto in acqua, dove può essere eliminato o riciclato in un circuito di raffreddamento.
book.starter.title16=Conclusione book.starter.title16=Conclusione
book.starter.page16=Se sei arrivato così lontano, sei sulla strada per la ricostruzione della civilizzazione. Hai ricreato macchinari avanzati pre-apocalittici - con energia nucleare, prodotti petrolchimici e di più. Non posso sapere §ocome§r utilizzerai questi nuovi vantaggi, ma è mia personale speranza che tu li usi per il bene tuo e degli altri - o almeno per legittima difesa. Au revoir! book.starter.page16=Se sei arrivato così lontano, sei sulla strada per la ricostruzione della civilizzazione. Hai ricreato macchinari avanzati pre-apocalittici - con energia nucleare, prodotti petrolchimici e di più. Non posso sapere §ocome§r utilizzerai questi nuovi vantaggi, ma è mia personale speranza che tu li usi per il bene tuo e degli altri - o almeno per legittima difesa. Au revoir!
book.starter.title18=Qualcosa sull'autore book.starter.title18=Qualcosa sull'autore
book.starter.page18=vær è solo un ragazzo rimasto intrappolato nel vuoto grigio presente nei Talking Head §oUna volta nella vita§r molto a lungo. Una volta trovò la porta di uno studio, ma con suo sgomento scoprì che era un ritaglio di cartone. book.starter.page18=vær è solo un ragazzo rimasto intrappolato nel vuoto grigio del video musicale de §oOnce in a Lifetime§r dei Talking Heads molto a lungo. Una volta trovò la porta di uno studio, ma con suo sgomento scoprì che era un ritaglio di cartone.
book.starter.cover=An Industrialist's$Guide to Rebuilding$Society
book.starter.title1=Introduction
book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life.
book.starter.title2=Coal & Mustard Gas
book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either.
book.starter.title3=Anvils & Presses
book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil.
book.starter.title4=Templates
book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right.
book.starter.title5=Scavenging
book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors...
book.starter.title6=Early Machinery
book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more.
book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r.
book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits.
book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more.
book.starter.title8=Black Gold
book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time.
book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r.
book.starter.title9=Petrochemicals
book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more.
book.starter.title10=Advanced Machinery
book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor.
book.starter.title11=Strata
book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest.
book.starter.title12=Radiation
book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it.
book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation.
book.starter.title13=Uranium Enrichment
book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so.
book.starter.title14=The Chicago Pile
book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating.
book.starter.title15=ZIRNOX GCR
book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop.
book.starter.title16=Conclusion
book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir!
book.starter.title18=About the Author
book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out.
#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction
#book.rbmk.title1=Introduction
#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other.
#book.rbmk.title2=Heat
#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam.
#book.rbmk.title3=Fuel Rod
#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used.
#book.rbmk.title4=Control Rod
#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off.
#book.rbmk.title5=Control Rod - Usage
#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%.
#book.rbmk.title6=Automatic Control Rod
#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first.
#book.rbmk.title7=Steam Channel
#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point.
#book.rbmk.title8=Neutron Reflector
#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor.
#book.rbmk.title9=Neutron Absorber
#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range.
#book.rbmk.title10=Graphite Moderator
#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended.
#book.rbmk.title11=Structural Column
#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat.
#book.rbmk.title12=Console
#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles.
#book.rbmk.title13=Console Usage
#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all.
#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert.
#book.rbmk.title15=Fuel
#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r.
#book.rbmk.title16=Meltdown
#book.rbmk.page16=§4§lAvoid.
#TODO: Rivedere, correggere errori di battitura
book_lore.author=Di %s book_lore.author=Di %s
book_lore.test.name=questo libro non funziona...
book_lore.test.author=io ti ho trollato eheh :3c
book_lore.test.page.0=>ciao anonimi, prima di iniziare vorrei chiarire che non sono gay. >Sii me >Questa notte >18 > Uscendo con il mio migliore amico senza i miei genitori per alcuni giornis >Siamo migliori amici ormai da un anno >Abbiamo bevuto un po', giocato a molti videogiochi e ordinato una pizza >Ci stavamo divertendo molto >A un certo punto della notte, verso le 9:00, fa una cosa davvero divertente battuta che non ricordo ma so che ci ha fatto ridere tantissimo tutti e due > Senza pensarci passo la mano destra tra i suoi capelli neri semiricci e lo chiamo ragazzo simpatico > Lui arrossisce > Mi rendo conto che mi sento agitato >Siamo abbastanza vicini >All'improvviso lui mi bacia e per qualche motivo io lo bacio >Facciamo l'amore >Ci coccoliamo insieme e ci addormentiamo >Svegliarsi nel cuore della notte con la sua testa rannicchiata sul mio petto e zona del collo >È stato bello ma non sono omosessuale.
book_lore.test.page.1=Lo scrivo mentre lui dorme tra le mie braccia. Come posso deludere bene il mio migliore amico? Non voglio essere un [censurato] /b/
book_lore.author=By %s
book_lore.test.name=this book doesn't work... book_lore.test.name=this book doesn't work...
book_lore.test.author=me i trolled you hehe :3c book_lore.test.author=me i trolled you hehe :3c
book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual
@ -1777,139 +1702,140 @@ hbmpseudofluid.pf6=Plutonium Hexafluoride
hbmpseudofluid.mud_heavy=Heavy Sludge Fraction hbmpseudofluid.mud_heavy=Heavy Sludge Fraction
hbmpseudofluid.mud=Poisonous Sludge Gas hbmpseudofluid.mud=Poisonous Sludge Gas
hbmmat.actinium227=Actinium-227 #TODO: Translate all this
hbmmat.advancedalloy=Advanced Alloy hbmmat.actinium227=Attinio-227
hbmmat.aluminum=Aluminium hbmmat.advancedalloy=Lega Avanzata
hbmmat.americiumrg=Reactor-Grade Americium hbmmat.aluminum=Alluminio
hbmmat.americium241=Americium-241 hbmmat.americiumrg=Americio da Reattore
hbmmat.americium242=Americium-242 hbmmat.americium241=Americio-241
hbmmat.arsenic=Arsenic hbmmat.americium242=Americio-242
hbmmat.arsenicbronze=Arsenic Bronze hbmmat.arsenic=Arsenico
hbmmat.asbestos=Asbestos hbmmat.arsenicbronze=Bronzo Arsenicale
hbmmat.asbestos=Amianto
hbmmat.bakelite=Bakelite hbmmat.bakelite=Bakelite
hbmmat.beryllium=Beryllium hbmmat.beryllium=Berillio
hbmmat.bismuth=Bismuth hbmmat.bismuth=Bismuto
hbmmat.bismuthbronze=Bismuth Bronze hbmmat.bismuthbronze=Bronzo di Bismuto
hbmmat.borax=Borax hbmmat.borax=Borace
hbmmat.boron=Boron hbmmat.boron=Boro
hbmmat.cadmium=Cadmium hbmmat.cadmium=Cadmio
hbmmat.calcium=Calcium hbmmat.calcium=Calcio
hbmmat.carbon=Carbon hbmmat.carbon=Carbonio
hbmmat.cdalloy=Cadmium Steel hbmmat.cdalloy=Acciaio di Cadmio
hbmmat.cinnabar=Cinnabar hbmmat.cinnabar=Cinabro
hbmmat.cmbsteel=Combine Steel hbmmat.cmbsteel=Acciaio Combine
hbmmat.coal=Coal hbmmat.coal=Carbone
hbmmat.coalcoke=Coal Coke hbmmat.coalcoke=Coke di Carbone
hbmmat.cobalt=Cobalt hbmmat.cobalt=Cobalto
hbmmat.cobalt60=Cobalt-60 hbmmat.cobalt60=Cobalto-60
hbmmat.coltan=Coltan hbmmat.coltan=Coltan
hbmmat.copper=Copper hbmmat.copper=Rame
hbmmat.desh=Desh hbmmat.desh=Desh
hbmmat.dineutronium=Dineutronium hbmmat.dineutronium=Dineutronio
hbmmat.durasteel=High-Speed Steel hbmmat.durasteel=Acciaio Super Rapido
hbmmat.euphemium=Euphemium hbmmat.euphemium=Euphemio
hbmmat.ferrouranium=Ferrouranium hbmmat.ferrouranium=Ferrouranio
hbmmat.fiberglass=Fiberglass hbmmat.fiberglass=Vetroresina
hbmmat.fluorite=Fluorite hbmmat.fluorite=Fluorite
hbmmat.flux=Flux hbmmat.flux=Flussante
hbmmat.ghiorsium336=Ghiorsium-336 hbmmat.ghiorsium336=Ghiorsio-336
hbmmat.gold=Gold hbmmat.gold=Oro
hbmmat.gold198=Gold-198 hbmmat.gold198=Oro-198
hbmmat.graphene=Graphene hbmmat.graphene=Grafene
hbmmat.graphite=Graphite hbmmat.graphite=Grafite
hbmmat.hematite=Hematite hbmmat.hematite=Ematite
hbmmat.iron=Iron hbmmat.iron=Ferro
hbmmat.lapis=Lapis Lazuli hbmmat.lapis=Lapis Lazulo
hbmmat.lead=Lead hbmmat.lead=Piombo
hbmmat.lead209=Lead-209 hbmmat.lead209=Piombo-209
hbmmat.lignitecoke=Lignite Coke hbmmat.lignitecoke=Coke di Lignite
hbmmat.lignite=Lignite hbmmat.lignite=Lignite
hbmmat.lithium=Lithium hbmmat.lithium=Litio
hbmmat.magnetizedtungsten=Magnetized Tungsten hbmmat.magnetizedtungsten=Tungsteno Magnetizzato
hbmmat.malachite=Malachite hbmmat.malachite=Malachite
hbmmat.meteoriciron=Meteoric Iron hbmmat.meteoriciron=Ferro Meteorico
hbmmat.mingrade=Minecraft Grade Copper hbmmat.mingrade=Rame Minecraft-Grade
hbmmat.neodymium=Neodymium hbmmat.neodymium=Neodimio
hbmmat.neptunium237=Neptunium-237 hbmmat.neptunium237=Nettunio-237
hbmmat.niobium=Niobium hbmmat.niobium=Niobio
hbmmat.obsidian=Obsidian hbmmat.obsidian=Ossidiana
hbmmat.osmiridium=Osmiridium hbmmat.osmiridium=Osmiridio
hbmmat.petcoke=Petroleum Coke hbmmat.petcoke=Coke di Petrolio
hbmmat.pigiron=Pig Iron hbmmat.pigiron=Ferro del Porco
hbmmat.plutonium=Plutonium hbmmat.plutonium=Plutonio
hbmmat.plutonium238=Plutonium-238 hbmmat.plutonium238=Plutonio-238
hbmmat.plutonium239=Plutonium-239 hbmmat.plutonium239=Plutonio-239
hbmmat.plutonium240=Plutonium-240 hbmmat.plutonium240=Plutonio-240
hbmmat.plutonium241=Plutonium-241 hbmmat.plutonium241=Plutonio-241
hbmmat.plutoniumrg=Reactor-Grade Plutonium hbmmat.plutoniumrg=Plutonio da Reattore
hbmmat.polonium210=Polonium-210 hbmmat.polonium210=Polonio-210
hbmmat.polymer=Polymer hbmmat.polymer=Polimero
hbmmat.radium226=Radium-226 hbmmat.radium226=Radio-226
hbmmat.redphosphorus=Red Phosphorus hbmmat.redphosphorus=Fosforo Rosso
hbmmat.redstone=Redstone hbmmat.redstone=Pietrarossa
hbmmat.rubber=Rubber hbmmat.rubber=Gomma
hbmmat.saltpeter=Niter hbmmat.saltpeter=Salnitro
hbmmat.saturnite=Saturnite hbmmat.saturnite=Saturnite
hbmmat.schrabidate=Ferric Schrabidate hbmmat.schrabidate=Schrabidio Ferrico
hbmmat.schrabidium=Schrabidium hbmmat.schrabidium=Schrabidio
hbmmat.schraranium=Schraranium hbmmat.schraranium=Schraranio
hbmmat.silicon=Silicon hbmmat.silicon=Silicio
hbmmat.slag=Slag hbmmat.slag=Scorie
hbmmat.sodium=Sodium hbmmat.sodium=Sodio
hbmmat.solinium=Solinium hbmmat.solinium=Solinio
hbmmat.starmetal=Starmetal hbmmat.starmetal=Starmetal
hbmmat.steel=Steel hbmmat.steel=Acciaio
hbmmat.stone=Stone hbmmat.stone=Pietra
hbmmat.sulfur=Sulfur hbmmat.sulfur=Zolfo
hbmmat.tantalum=Tantalum hbmmat.tantalum=Tantalio
hbmmat.tcalloy=Technetium Steel hbmmat.tcalloy=Acciaio di Tecnezio
hbmmat.technetium99=Technetium-99 hbmmat.technetium99=Tecnezio-99
hbmmat.titanium=Titanium hbmmat.titanium=Titanio
hbmmat.thorium232=Thorium-232 hbmmat.thorium232=Torio-232
hbmmat.tungsten=Tungsten hbmmat.tungsten=Tungsteno
hbmmat.uranium=Uranium hbmmat.uranium=Uranio
hbmmat.uranium233=Uranium-233 hbmmat.uranium233=Uranio-233
hbmmat.uranium235=Uranium-235 hbmmat.uranium235=Uranio-235
hbmmat.uranium238=Uranium-238 hbmmat.uranium238=Uranio-238
hbmmat.watzmud=Poisonous Mud hbmmat.watzmud=Fango Tossico
hbmmat.whitephosphorus=White Phosphorus hbmmat.whitephosphorus=Fosforo Bianco
hbmmat.workersalloy=Desh hbmmat.workersalloy=Desh
hbmmat.wroughtiron=Wroght Iron hbmmat.wroughtiron=Ferro Battuto
hbmmat.zirconium=Zirconium hbmmat.zirconium=Zirconio
matshape.block=%s Block matshape.block=%s Blocco
matshape.blocks=%s Blocks matshape.blocks=%s Blocchi
matshape.ingot=%s Ingot matshape.ingot=%s Lingotto
matshape.ingots=%s Ingots matshape.ingots=%s Lingotti
matshape.nugget=%s Nugget matshape.nugget=%s Pepita
matshape.nuggets=%s Nuggets matshape.nuggets=%s Pepite
matshape.quantum=%s Quantum matshape.quantum=%s Quanto
matshape.quanta=%s Quanta matshape.quanta=%s Quanti
icffuel.beryllium=Beryllium icffuel.beryllium=Berillio
icffuel.boron=Boron icffuel.boron=Boro
icffuel.carbon=Carbon icffuel.carbon=Carbonio
icffuel.calcium=Calcium icffuel.calcium=Calcio
icffuel.chlorine=Chlorine icffuel.chlorine=Cloro
icffuel.deuterium=Deuterium icffuel.deuterium=Deuterio
icffuel.helium3=Helium-3 icffuel.helium3=Elio-3
icffuel.helium4=Helium-4 icffuel.helium4=Elio-4
icffuel.hydrogen=Hydrogen icffuel.hydrogen=Idrogeno
icffuel.lithium=Lithium icffuel.lithium=Litio
icffuel.oxygen=Oxygen icffuel.oxygen=Ossigeno
icffuel.sodium=Sodium icffuel.sodium=Sodio
icffuel.tritium=Tritium icffuel.tritium=Trizio
info.asbestos=My lungs are burning. info.asbestos=I miei polmoni bruciano.
info.coaldust=It's hard to breathe here. info.coaldust=È faticoso respirare qua.
info.coil=Coil Strength info.coil=Potenza Bobina
info.templatefolder=Created with %s info.templatefolder=Creato con %s
info.template_in=Input: info.template_in=Input:
info.template_in_p=Inputs: info.template_in_p=Input:
info.template_out=Output: info.template_out=Output:
info.template_out_p=Outputs: info.template_out_p=Output:
info.template_seconds=seconds info.template_seconds=secondi
info.template_time=Production Time: info.template_time=Tempo di Produzione:
item.acetylene_torch.name=Acetylene Welding Torch item.acetylene_torch.name=Acetylene Welding Torch
item.ajr_boots.name=Steel Ranger Boots item.ajr_boots.name=Steel Ranger Boots

View File

@ -0,0 +1,15 @@
{
"name": "Crude Oil",
"icon": ["hbm:item.fluid_icon", 1, 10],
"trigger": [],
"title": {
"en_US": "Crude Oil",
"ru_RU": "сырая нефть",
"zh_CN": "原油"
},
"content": {
"en_US": "Fluid obtained after extracting [[oil deposits|Oil Collection]]. Used as the base material for all oil products, it must first be [[heated|Boiler]] and [[processed|Oil Refinery]] to obtain products such as: <br>[[Heavy Oil]] <br>[[Naphtha]] <br>[[Light Oil]] <br>[[Petroleum Gas]] <br><br>It is also used to obtain [[Cracked Oil]] and related byproducts through processing with a [[cracking tower|Catalytic Cracking Tower]]. Other methods of processing include [[vacuum refining|Vacuum Refinery]], [[radiolysis|Radiolysis]], [[hydrotreating|Hydrotreater]] and [[solidification|Solidification]].<br><br>See also:<br>[[Basic Oil Processing]]<br>[[Advanced Oil Processing]]<br>[[Vacuum Oil Processing]]",
"ru_RU": "Жидкость, получаемая после добычи [[нефтяных месторождений|Oil Collection]]. Используется в качестве базового сырья для всех нефтепродуктов и перед применением должна быть [[нагретой|Boiler]] и [[переработанной|Oil Refinery]] для получения таких продуктов, как:<br>[[Тяжёлая нефть|Heavy Oil]]<br>[[Нафта|Naphtha]]<br>[[Лёгкая нефть|Light Oil]]<br>[[Нефтяной газ|Petroleum Gas]]<br><br>Также используется для получения [[крекированной нефти|Cracked Oil]] и связанных побочных продуктов при переработке в [[установке крекинга|Catalytic Cracking Tower]]. Другие методы переработки включают [[вакуумную переработку|Vacuum Refinery]], [[радиолиз|Radiolysis]], [[гидроочистку|Hydrotreater]] и [[твёрдофазную обработку|Solidification]].<br><br>См. также:<br>[[Базовая нефтепереработка|Basic Oil Processing]]<br>[[Продвинутая нефтепереработка|Advanced Oil Processing]]<br>[[Вакуумная нефтепереработка|Vacuum Oil Processing]]",
"zh_CN": "从[[油田开采|Oil Collection]]中获得的流体。作为所有石油产品的基础原料,在使用前必须先经过[[加热|Boiler]]和[[精炼|Oil Refinery]],以获得以下产品:<br>[[重油|Heavy Oil]]<br>[[石脑油|Naphtha]]<br>[[轻油|Light Oil]]<br>[[石油气|Petroleum Gas]]<br><br>还可以通过[[裂化塔|Catalytic Cracking Tower]]的处理获得[[裂化油|Cracked Oil]]及其相关副产品。其他处理方式包括[[真空精炼|Vacuum Refinery]]、[[辐解|Radiolysis]]、[[加氢处理|Hydrotreater]]以及[[固化|Solidification]]。<br><br>另见:<br>[[基础石油处理|Basic Oil Processing]]<br>[[高级石油处理|Advanced Oil Processing]]<br>[[真空石油处理|Vacuum Oil Processing]]"
}
}

View File

@ -1,5 +1,121 @@
# Blender v2.79 (sub 0) OBJ File: 'battery.blend' # Blender v2.79 (sub 0) OBJ File: 'battery.blend'
# www.blender.org # www.blender.org
o Capacitor
v -0.875000 0.125000 0.875000
v 0.875000 0.125000 0.875000
v -0.875000 0.125000 -0.875000
v 0.875000 0.125000 -0.875000
v -0.875000 1.875000 -0.875000
v -0.875000 1.875000 0.875000
v 0.875000 1.875000 0.875000
v 0.875000 1.875000 -0.875000
v -0.750000 0.250000 0.750000
v 0.750000 0.250000 0.750000
v -0.750000 0.250000 -0.750000
v 0.750000 0.250000 -0.750000
v -0.750000 1.750000 -0.750000
v -0.750000 1.750000 0.750000
v 0.750000 1.750000 0.750000
v 0.750000 1.750000 -0.750000
v -0.875000 0.125000 0.875000
v 0.875000 0.125000 0.875000
v -0.875000 0.125000 -0.875000
v 0.875000 0.125000 -0.875000
v -0.875000 1.875000 -0.875000
v -0.875000 1.875000 0.875000
v 0.875000 1.875000 0.875000
v 0.875000 1.875000 -0.875000
vt 0.269231 0.000000
vt 0.000000 0.333333
vt 0.000000 0.000000
vt 0.000000 0.666667
vt 0.269231 1.000000
vt 0.000000 1.000000
vt 0.269231 0.333333
vt -0.000000 0.666667
vt -0.000000 0.333333
vt 0.538462 0.333333
vt 0.269231 0.666667
vt 0.269231 0.333333
vt 0.538462 0.333333
vt 0.269231 0.666667
vt 0.769231 -0.000000
vt 0.538462 0.285714
vt 0.538462 -0.000000
vt 0.538462 0.571429
vt 0.769231 0.857143
vt 0.538462 0.857143
vt 0.769231 0.285714
vt 0.769231 0.285714
vt 0.538462 0.571429
vt 0.538462 0.285714
vt 1.000000 0.285714
vt 0.769231 0.571429
vt 1.000000 0.285714
vt 0.769231 0.571429
vt 0.000000 0.333333
vt 0.269231 0.000000
vt 0.000000 0.000000
vt 0.269231 1.000000
vt 0.000000 0.666667
vt 0.000000 1.000000
vt -0.000000 0.666667
vt 0.269231 0.333333
vt -0.000000 0.333333
vt 0.269231 0.666667
vt 0.538462 0.333333
vt 0.269231 0.333333
vt 0.269231 0.666667
vt 0.538462 0.333333
vt 0.538462 0.666667
vt 0.538462 0.666667
vt 1.000000 0.571429
vt 1.000000 0.571429
vt 0.538462 0.666667
vt 0.538462 0.666667
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 0.0000
s off
f 3/1/1 2/2/1 1/3/1
f 7/4/2 5/5/2 6/6/2
f 1/7/3 5/8/3 3/9/3
f 3/10/4 8/11/4 4/12/4
f 2/13/5 6/14/5 1/7/5
f 4/12/6 7/4/6 2/2/6
f 11/15/1 10/16/1 9/17/1
f 15/18/2 13/19/2 14/20/2
f 12/21/6 15/18/6 10/16/6
f 9/22/3 13/23/3 11/24/3
f 11/25/4 16/26/4 12/21/4
f 10/27/5 14/28/5 9/22/5
f 18/29/2 19/30/2 17/31/2
f 21/32/1 23/33/1 22/34/1
f 21/35/6 17/36/6 19/37/6
f 24/38/5 19/39/5 20/40/5
f 22/41/4 18/42/4 17/36/4
f 23/33/3 20/40/3 18/29/3
f 3/1/1 4/12/1 2/2/1
f 7/4/2 8/11/2 5/5/2
f 1/7/3 6/14/3 5/8/3
f 3/10/4 5/43/4 8/11/4
f 2/13/5 7/44/5 6/14/5
f 4/12/6 8/11/6 7/4/6
f 11/15/1 12/21/1 10/16/1
f 15/18/2 16/26/2 13/19/2
f 12/21/6 16/26/6 15/18/6
f 9/22/3 14/28/3 13/23/3
f 11/25/4 13/45/4 16/26/4
f 10/27/5 15/46/5 14/28/5
f 18/29/2 20/40/2 19/30/2
f 21/32/1 24/38/1 23/33/1
f 21/35/6 22/41/6 17/36/6
f 24/38/5 21/47/5 19/39/5
f 22/41/4 23/48/4 18/42/4
f 23/33/3 24/38/3 20/40/3
o Battery o Battery
v 0.687500 1.875000 -0.875000 v 0.687500 1.875000 -0.875000
v 0.875000 1.875000 -0.687500 v 0.875000 1.875000 -0.687500
@ -268,158 +384,158 @@ vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 0.0000 vn -1.0000 0.0000 0.0000
s off s off
f 8/1/1 14/2/1 22/3/1 f 32/49/7 38/50/7 46/51/7
f 35/4/2 26/5/2 3/6/2 f 59/52/8 50/53/8 27/54/8
f 20/7/3 3/8/3 26/9/3 f 44/55/9 27/56/9 50/57/9
f 20/10/4 16/11/4 10/12/4 f 44/58/10 40/59/10 34/60/10
f 24/13/4 15/14/4 26/15/4 f 48/61/10 39/62/10 50/63/10
f 10/16/5 12/17/5 17/18/5 f 34/64/11 36/65/11 41/66/11
f 10/16/2 8/1/2 7/19/2 f 34/64/8 32/49/8 31/67/8
f 12/20/3 18/21/3 17/22/3 f 36/68/9 42/69/9 41/70/9
f 22/23/6 20/24/6 19/25/6 f 46/71/12 44/72/12 43/73/12
f 14/26/7 16/11/7 15/27/7 f 38/74/13 40/59/13 39/75/13
f 16/11/8 8/1/8 9/28/8 f 40/59/14 32/49/14 33/76/14
f 27/29/7 25/30/7 30/31/7 f 51/77/13 49/78/13 54/79/13
f 29/32/9 23/33/9 28/34/9 f 53/80/15 47/81/15 52/82/15
f 15/35/2 6/36/2 14/37/2 f 39/83/8 30/84/8 38/85/8
f 27/29/4 36/38/4 44/39/4 f 51/77/10 60/86/10 68/87/10
f 14/40/1 2/41/1 29/42/1 f 38/88/7 26/89/7 53/90/7
f 42/43/10 38/44/10 33/45/10 f 66/91/16 62/92/16 57/93/16
f 30/46/6 28/34/6 27/47/6 f 54/94/12 52/82/12 51/95/12
f 1/48/7 24/13/7 23/33/7 f 25/96/13 48/61/13 47/81/13
f 24/13/8 6/36/8 5/49/8 f 48/61/14 30/84/14 29/97/14
f 40/50/3 4/51/3 44/52/3 f 64/98/9 28/99/9 68/100/9
f 11/53/2 32/54/2 18/55/2 f 35/101/8 56/102/8 42/103/8
f 32/54/5 34/56/5 37/57/5 f 56/102/11 58/104/11 61/105/11
f 35/58/1 30/31/1 47/59/1 f 59/106/7 54/79/7 71/107/7
f 34/60/3 38/44/3 37/61/3 f 58/108/9 62/92/9 61/109/9
f 42/43/6 40/62/6 39/63/6 f 66/91/12 64/110/12 63/111/12
f 19/64/7 35/65/7 22/66/7 f 43/112/13 59/113/13 46/114/13
f 37/67/4 39/68/4 36/69/4 f 61/115/10 63/116/10 60/117/10
f 48/70/10 44/52/10 4/51/10 f 72/118/16 68/100/16 28/99/16
f 47/71/9 43/72/9 46/73/9 f 71/119/15 67/120/15 70/121/15
f 41/74/1 33/75/1 31/76/1 f 65/122/7 57/123/7 55/124/7
f 48/70/6 46/73/6 45/77/6 f 72/118/12 70/121/12 69/125/12
f 60/78/9 56/79/9 57/80/9 f 84/126/15 80/127/15 81/128/15
f 52/81/1 56/79/1 54/82/1 f 76/129/7 80/127/7 78/130/7
f 60/83/4 58/84/4 62/85/4 f 84/131/10 82/132/10 86/133/10
f 64/86/10 54/82/10 59/87/10 f 88/134/16 78/130/16 83/135/16
f 58/84/8 52/81/8 61/88/8 f 82/132/14 76/129/14 85/136/14
f 58/84/7 56/89/7 55/90/7 f 82/132/13 80/137/13 79/138/13
f 54/91/6 60/78/6 59/92/6 f 78/139/12 84/126/12 83/140/12
f 64/86/3 50/93/3 49/94/3 f 88/134/9 74/141/9 73/142/9
f 52/95/2 62/96/2 61/97/2 f 76/143/8 86/144/8 85/145/8
f 62/96/5 50/98/5 63/99/5 f 86/144/11 74/146/11 87/147/11
f 76/100/9 72/101/9 73/102/9 f 100/148/15 96/149/15 97/150/15
f 68/103/1 72/101/1 70/104/1 f 92/151/7 96/149/7 94/152/7
f 76/105/4 74/106/4 78/107/4 f 100/153/10 98/154/10 102/155/10
f 80/108/10 70/104/10 75/109/10 f 104/156/16 94/152/16 99/157/16
f 74/106/8 68/103/8 77/110/8 f 98/154/14 92/151/14 101/158/14
f 74/106/7 72/111/7 71/112/7 f 98/154/13 96/159/13 95/160/13
f 70/113/6 76/100/6 75/114/6 f 94/161/12 100/148/12 99/162/12
f 80/108/3 66/115/3 65/116/3 f 104/156/9 90/163/9 89/164/9
f 68/117/2 78/118/2 77/119/2 f 92/165/8 102/166/8 101/167/8
f 78/118/5 66/120/5 79/121/5 f 102/166/11 90/168/11 103/169/11
f 22/3/1 11/122/1 12/123/1 f 46/51/7 35/170/7 36/171/7
f 12/123/1 7/124/1 8/1/1 f 36/171/7 31/172/7 32/49/7
f 8/1/1 13/125/1 14/2/1 f 32/49/7 37/173/7 38/50/7
f 14/2/1 21/126/1 22/3/1 f 38/50/7 45/174/7 46/51/7
f 22/3/1 12/123/1 8/1/1 f 46/51/7 36/171/7 32/49/7
f 35/4/2 36/127/2 26/5/2 f 59/52/8 60/175/8 50/53/8
f 20/7/3 21/128/3 3/8/3 f 44/55/9 45/176/9 27/56/9
f 10/12/4 17/129/4 18/130/4 f 34/60/10 41/177/10 42/178/10
f 18/130/4 19/131/4 20/10/4 f 42/178/10 43/179/10 44/58/10
f 20/10/4 15/132/4 16/11/4 f 44/58/10 39/180/10 40/59/10
f 16/11/4 9/28/4 10/12/4 f 40/59/10 33/76/10 34/60/10
f 10/12/4 18/130/4 20/10/4 f 34/60/10 42/178/10 44/58/10
f 26/15/4 27/133/4 28/134/4 f 50/63/10 51/181/10 52/182/10
f 28/134/4 23/135/4 24/13/4 f 52/182/10 47/183/10 48/61/10
f 24/13/4 5/49/4 15/14/4 f 48/61/10 29/97/10 39/62/10
f 15/14/4 20/136/4 26/15/4 f 39/62/10 44/184/10 50/63/10
f 26/15/4 28/134/4 24/13/4 f 50/63/10 52/182/10 48/61/10
f 10/16/5 7/19/5 12/17/5 f 34/64/11 31/67/11 36/65/11
f 10/16/2 9/28/2 8/1/2 f 34/64/8 33/76/8 32/49/8
f 12/20/3 11/137/3 18/21/3 f 36/68/9 35/185/9 42/69/9
f 22/23/6 21/138/6 20/24/6 f 46/71/12 45/186/12 44/72/12
f 14/26/7 13/125/7 16/11/7 f 38/74/13 37/173/13 40/59/13
f 16/11/8 13/125/8 8/1/8 f 40/59/14 37/173/14 32/49/14
f 27/29/7 43/72/7 25/30/7 f 51/77/13 67/120/13 49/78/13
f 29/32/9 1/48/9 23/33/9 f 53/80/15 25/96/15 47/81/15
f 15/35/2 5/49/2 6/36/2 f 39/83/8 29/97/8 30/84/8
f 44/39/4 45/139/4 46/140/4 f 68/87/10 69/187/10 70/188/10
f 46/140/4 43/141/4 27/29/4 f 70/188/10 67/189/10 51/77/10
f 27/29/4 26/5/4 36/38/4 f 51/77/10 50/53/10 60/86/10
f 36/38/4 40/142/4 44/39/4 f 60/86/10 64/190/10 68/87/10
f 44/39/4 46/140/4 27/29/4 f 68/87/10 70/188/10 51/77/10
f 29/42/1 30/143/1 3/144/1 f 53/90/7 54/191/7 27/192/7
f 3/144/1 21/145/1 14/40/1 f 27/192/7 45/193/7 38/88/7
f 14/40/1 6/36/1 2/41/1 f 38/88/7 30/84/7 26/89/7
f 2/41/1 1/146/1 29/42/1 f 26/89/7 25/194/7 53/90/7
f 29/42/1 3/144/1 14/40/1 f 53/90/7 27/192/7 38/88/7
f 42/43/10 39/63/10 38/44/10 f 66/91/16 63/111/16 62/92/16
f 30/46/6 29/32/6 28/34/6 f 54/94/12 53/80/12 52/82/12
f 1/48/7 2/41/7 24/13/7 f 25/96/13 26/89/13 48/61/13
f 24/13/8 2/41/8 6/36/8 f 48/61/14 26/89/14 30/84/14
f 40/50/3 41/147/3 4/51/3 f 64/98/9 65/195/9 28/99/9
f 11/53/2 31/148/2 32/54/2 f 35/101/8 55/196/8 56/102/8
f 32/54/5 31/148/5 34/56/5 f 56/102/11 55/196/11 58/104/11
f 47/59/1 48/149/1 4/150/1 f 71/107/7 72/197/7 28/198/7
f 4/150/1 41/151/1 35/58/1 f 28/198/7 65/199/7 59/106/7
f 35/58/1 3/6/1 30/31/1 f 59/106/7 27/54/7 54/79/7
f 30/31/1 25/152/1 47/59/1 f 54/79/7 49/200/7 71/107/7
f 47/59/1 4/150/1 35/58/1 f 71/107/7 28/198/7 59/106/7
f 34/60/3 33/45/3 38/44/3 f 58/108/9 57/93/9 62/92/9
f 42/43/6 41/153/6 40/62/6 f 66/91/12 65/201/12 64/110/12
f 19/64/7 36/154/7 35/65/7 f 43/112/13 60/202/13 59/113/13
f 36/69/4 19/64/4 18/55/4 f 60/117/10 43/112/10 42/103/10
f 18/55/4 32/155/4 37/67/4 f 42/103/10 56/203/10 61/115/10
f 37/67/4 38/156/4 39/68/4 f 61/115/10 62/204/10 63/116/10
f 39/68/4 40/157/4 36/69/4 f 63/116/10 64/205/10 60/117/10
f 36/69/4 18/55/4 37/67/4 f 60/117/10 42/103/10 61/115/10
f 48/70/10 45/77/10 44/52/10 f 72/118/16 69/125/16 68/100/16
f 47/71/9 25/30/9 43/72/9 f 71/119/15 49/78/15 67/120/15
f 31/76/1 11/53/1 22/66/1 f 55/124/7 35/101/7 46/114/7
f 22/66/1 35/158/1 41/74/1 f 46/114/7 59/206/7 65/122/7
f 41/74/1 42/159/1 33/75/1 f 65/122/7 66/207/7 57/123/7
f 33/75/1 34/160/1 31/76/1 f 57/123/7 58/208/7 55/124/7
f 31/76/1 22/66/1 41/74/1 f 55/124/7 46/114/7 65/122/7
f 48/70/6 47/71/6 46/73/6 f 72/118/12 71/119/12 70/121/12
f 60/78/9 53/161/9 56/79/9 f 84/126/15 77/209/15 80/127/15
f 54/82/1 49/94/1 50/98/1 f 78/130/7 73/142/7 74/146/7
f 50/98/1 51/162/1 52/81/1 f 74/146/7 75/210/7 76/129/7
f 52/81/1 55/90/1 56/79/1 f 76/129/7 79/138/7 80/127/7
f 56/79/1 53/161/1 54/82/1 f 80/127/7 77/209/7 78/130/7
f 54/82/1 50/98/1 52/81/1 f 78/130/7 74/146/7 76/129/7
f 62/85/4 63/163/4 64/164/4 f 86/133/10 87/211/10 88/212/10
f 64/164/4 59/165/4 60/83/4 f 88/212/10 83/213/10 84/131/10
f 60/83/4 57/166/4 58/84/4 f 84/131/10 81/214/10 82/132/10
f 58/84/4 61/88/4 62/85/4 f 82/132/10 85/136/10 86/133/10
f 62/85/4 64/164/4 60/83/4 f 86/133/10 88/212/10 84/131/10
f 64/86/10 49/94/10 54/82/10 f 88/134/16 73/142/16 78/130/16
f 58/84/8 55/90/8 52/81/8 f 82/132/14 79/138/14 76/129/14
f 58/84/7 57/167/7 56/89/7 f 82/132/13 81/215/13 80/137/13
f 54/91/6 53/161/6 60/78/6 f 78/139/12 77/209/12 84/126/12
f 64/86/3 63/168/3 50/93/3 f 88/134/9 87/216/9 74/141/9
f 52/95/2 51/162/2 62/96/2 f 76/143/8 75/210/8 86/144/8
f 62/96/5 51/162/5 50/98/5 f 86/144/11 75/210/11 74/146/11
f 76/100/9 69/169/9 72/101/9 f 100/148/15 93/217/15 96/149/15
f 70/104/1 65/116/1 66/120/1 f 94/152/7 89/164/7 90/168/7
f 66/120/1 67/170/1 68/103/1 f 90/168/7 91/218/7 92/151/7
f 68/103/1 71/112/1 72/101/1 f 92/151/7 95/160/7 96/149/7
f 72/101/1 69/169/1 70/104/1 f 96/149/7 93/217/7 94/152/7
f 70/104/1 66/120/1 68/103/1 f 94/152/7 90/168/7 92/151/7
f 78/107/4 79/171/4 80/172/4 f 102/155/10 103/219/10 104/220/10
f 80/172/4 75/173/4 76/105/4 f 104/220/10 99/221/10 100/153/10
f 76/105/4 73/174/4 74/106/4 f 100/153/10 97/222/10 98/154/10
f 74/106/4 77/110/4 78/107/4 f 98/154/10 101/158/10 102/155/10
f 78/107/4 80/172/4 76/105/4 f 102/155/10 104/220/10 100/153/10
f 80/108/10 65/116/10 70/104/10 f 104/156/16 89/164/16 94/152/16
f 74/106/8 71/112/8 68/103/8 f 98/154/14 95/160/14 92/151/14
f 74/106/7 73/175/7 72/111/7 f 98/154/13 97/223/13 96/159/13
f 70/113/6 69/169/6 76/100/6 f 94/161/12 93/217/12 100/148/12
f 80/108/3 79/176/3 66/115/3 f 104/156/9 103/224/9 90/163/9
f 68/117/2 67/170/2 78/118/2 f 92/165/8 91/218/8 102/166/8
f 78/118/5 67/170/5 66/120/5 f 102/166/11 91/218/11 90/168/11
o Socket o Socket
v -1.000000 0.000000 1.000000 v -1.000000 0.000000 1.000000
v 1.000000 0.000000 1.000000 v 1.000000 0.000000 1.000000
@ -822,199 +938,199 @@ vn -0.7099 0.7043 0.0000
vn 0.7099 -0.7043 0.0000 vn 0.7099 -0.7043 0.0000
vn -0.7071 -0.7071 0.0000 vn -0.7071 -0.7071 0.0000
s off s off
f 83/177/11 82/178/11 81/179/11 f 107/225/17 106/226/17 105/227/17
f 88/180/12 103/181/12 86/182/12 f 112/228/18 127/229/18 110/230/18
f 83/177/13 92/183/13 84/184/13 f 107/225/19 116/231/19 108/232/19
f 82/178/14 90/185/14 81/179/14 f 106/226/20 114/233/20 105/227/20
f 84/184/15 91/186/15 82/178/15 f 108/232/21 115/234/21 106/226/21
f 81/179/12 89/187/12 83/177/12 f 105/227/18 113/235/18 107/225/18
f 87/188/16 90/189/16 85/190/16 f 111/236/22 114/237/22 109/238/22
f 85/190/16 91/186/16 86/191/16 f 109/238/22 115/234/22 110/239/22
f 86/191/16 92/192/16 88/193/16 f 110/239/22 116/240/22 112/241/22
f 88/193/16 89/194/16 87/188/16 f 112/241/22 113/242/22 111/236/22
f 94/195/15 95/196/15 93/197/15 f 118/243/21 119/244/21 117/245/21
f 97/198/12 99/199/12 98/200/12 f 121/246/18 123/247/18 122/248/18
f 103/181/16 101/201/16 102/202/16 f 127/229/22 125/249/22 126/250/22
f 95/196/16 98/200/16 93/197/16 f 119/244/22 122/248/22 117/245/22
f 96/203/13 97/198/13 95/196/13 f 120/251/19 121/246/19 119/244/19
f 93/197/14 99/204/14 94/205/14 f 117/245/20 123/252/20 118/253/20
f 85/206/15 101/201/15 87/207/15 f 109/254/21 125/249/21 111/255/21
f 87/208/14 104/209/14 88/210/14 f 111/256/20 128/257/20 112/258/20
f 86/211/13 102/202/13 85/212/13 f 110/259/19 126/250/19 109/260/19
f 106/213/15 107/214/15 105/215/15 f 130/261/21 131/262/21 129/263/21
f 109/216/12 111/217/12 110/218/12 f 133/264/18 135/265/18 134/266/18
f 107/214/16 110/218/16 105/215/16 f 131/262/22 134/266/22 129/263/22
f 108/219/13 109/216/13 107/214/13 f 132/267/19 133/264/19 131/262/19
f 105/215/14 111/220/14 106/221/14 f 129/263/20 135/268/20 130/269/20
f 114/222/12 115/223/12 113/224/12 f 138/270/18 139/271/18 137/272/18
f 117/225/15 119/226/15 118/227/15 f 141/273/21 143/274/21 142/275/21
f 115/223/16 118/227/16 113/224/16 f 139/271/22 142/275/22 137/272/22
f 116/228/14 117/225/14 115/223/14 f 140/276/20 141/273/20 139/271/20
f 113/224/13 119/229/13 114/230/13 f 137/272/19 143/277/19 138/278/19
f 122/231/12 123/232/12 121/233/12 f 146/279/18 147/280/18 145/281/18
f 125/234/15 127/235/15 126/236/15 f 149/282/21 151/283/21 150/284/21
f 123/232/16 126/236/16 121/233/16 f 147/280/22 150/284/22 145/281/22
f 124/237/14 125/234/14 123/232/14 f 148/285/20 149/282/20 147/280/20
f 121/233/13 127/238/13 122/239/13 f 145/281/19 151/286/19 146/287/19
f 130/240/13 131/241/13 129/242/13 f 154/288/19 155/289/19 153/290/19
f 133/243/14 135/244/14 134/245/14 f 157/291/20 159/292/20 158/293/20
f 131/241/16 134/245/16 129/242/16 f 155/289/22 158/293/22 153/290/22
f 132/246/12 133/243/12 131/241/12 f 156/294/18 157/291/18 155/289/18
f 129/242/15 135/247/15 130/248/15 f 153/290/21 159/295/21 154/296/21
f 138/249/13 139/250/13 137/251/13 f 162/297/19 163/298/19 161/299/19
f 141/252/14 143/253/14 142/254/14 f 165/300/20 167/301/20 166/302/20
f 139/250/16 142/254/16 137/251/16 f 163/298/22 166/302/22 161/299/22
f 140/255/12 141/252/12 139/250/12 f 164/303/18 165/300/18 163/298/18
f 137/251/15 143/256/15 138/257/15 f 161/299/21 167/304/21 162/305/21
f 146/258/14 147/259/14 145/260/14 f 170/306/20 171/307/20 169/308/20
f 149/261/13 151/262/13 150/263/13 f 173/309/19 175/310/19 174/311/19
f 147/259/16 150/263/16 145/260/16 f 171/307/22 174/311/22 169/308/22
f 148/264/15 149/261/15 147/259/15 f 172/312/21 173/309/21 171/307/21
f 145/260/12 151/265/12 146/266/12 f 169/308/18 175/313/18 170/314/18
f 154/267/14 155/268/14 153/269/14 f 178/315/20 179/316/20 177/317/20
f 157/270/13 159/271/13 158/272/13 f 181/318/19 183/319/19 182/320/19
f 155/268/16 158/272/16 153/269/16 f 179/316/22 182/320/22 177/317/22
f 156/273/15 157/270/15 155/268/15 f 180/321/21 181/318/21 179/316/21
f 153/269/12 159/274/12 154/275/12 f 177/317/18 183/322/18 178/323/18
f 162/276/13 177/277/13 161/278/13 f 186/324/19 201/325/19 185/326/19
f 176/279/16 174/280/16 175/281/16 f 200/327/22 198/328/22 199/329/22
f 172/282/16 170/283/16 171/284/16 f 196/330/22 194/331/22 195/332/22
f 168/285/13 173/286/13 169/287/13 f 192/333/19 197/334/19 193/335/19
f 167/288/14 171/289/14 166/290/14 f 191/336/20 195/337/20 190/338/20
f 169/287/15 172/282/15 167/288/15 f 193/335/21 196/330/21 191/336/21
f 166/291/12 170/292/12 168/285/12 f 190/339/18 194/340/18 192/333/18
f 163/293/14 175/294/14 164/295/14 f 187/341/20 199/342/20 188/343/20
f 161/278/15 176/279/15 163/293/15 f 185/326/21 200/327/21 187/341/21
f 164/296/12 174/297/12 162/276/12 f 188/344/18 198/345/18 186/324/18
f 179/298/13 193/299/13 178/300/13 f 203/346/19 217/347/19 202/348/19
f 192/301/16 190/302/16 191/303/16 f 216/349/22 214/350/22 215/351/22
f 188/304/16 186/305/16 187/306/16 f 212/352/22 210/353/22 211/354/22
f 184/307/13 189/308/13 185/309/13 f 208/355/19 213/356/19 209/357/19
f 183/310/14 187/311/14 182/312/14 f 207/358/20 211/359/20 206/360/20
f 185/309/15 188/304/15 183/310/15 f 209/357/21 212/352/21 207/358/21
f 182/313/12 186/314/12 184/307/12 f 206/361/18 210/362/18 208/355/18
f 180/315/14 191/316/14 181/317/14 f 204/363/20 215/364/20 205/365/20
f 178/300/15 192/301/15 180/315/15 f 202/348/21 216/349/21 204/363/21
f 181/318/12 190/319/12 179/298/12 f 205/366/18 214/367/18 203/346/18
f 194/320/16 195/321/16 165/322/16 f 218/368/22 219/369/22 189/370/22
f 194/320/17 198/323/17 196/324/17 f 218/368/23 222/371/23 220/372/23
f 197/325/15 200/326/15 198/323/15 f 221/373/21 224/374/21 222/371/21
f 195/321/18 201/327/18 165/322/18 f 219/369/24 225/375/24 189/370/24
f 202/328/12 203/329/12 201/327/12 f 226/376/18 227/377/18 225/375/18
f 206/330/16 207/331/16 205/332/16 f 230/378/22 231/379/22 229/380/22
f 206/330/17 210/333/17 208/334/17 f 230/378/23 234/381/23 232/382/23
f 209/335/15 212/336/15 210/333/15 f 233/383/21 236/384/21 234/381/21
f 207/331/18 213/337/18 205/332/18 f 231/379/24 237/385/24 229/380/24
f 214/338/12 215/339/12 213/337/12 f 238/386/18 239/387/18 237/385/18
f 169/287/11 166/340/11 168/341/11 f 193/335/17 190/388/17 192/389/17
f 185/309/11 182/342/11 184/343/11 f 209/357/17 206/390/17 208/391/17
f 180/315/11 179/344/11 178/300/11 f 204/363/17 203/392/17 202/348/17
f 163/293/11 162/345/11 161/278/11 f 187/341/17 186/393/17 185/326/17
f 218/346/15 219/347/15 220/348/15 f 242/394/21 243/395/21 244/396/21
f 220/348/19 226/349/19 228/350/19 f 244/396/25 250/397/25 252/398/25
f 221/351/12 224/352/12 223/353/12 f 245/399/18 248/400/18 247/401/18
f 223/353/20 227/354/20 225/355/20 f 247/401/26 251/402/26 249/403/26
f 226/349/11 227/354/11 228/350/11 f 250/397/17 251/402/17 252/398/17
f 230/356/15 231/357/15 232/358/15 f 254/404/21 255/405/21 256/406/21
f 232/358/19 238/359/19 240/360/19 f 256/406/25 262/407/25 264/408/25
f 233/361/12 236/362/12 235/363/12 f 257/409/18 260/410/18 259/411/18
f 235/363/20 239/364/20 237/365/20 f 259/411/26 263/412/26 261/413/26
f 238/359/11 239/364/11 240/360/11 f 262/407/17 263/412/17 264/408/17
f 83/177/11 84/184/11 82/178/11 f 107/225/17 108/232/17 106/226/17
f 88/180/12 104/209/12 103/181/12 f 112/228/18 128/257/18 127/229/18
f 83/177/13 89/366/13 92/183/13 f 107/225/19 113/414/19 116/231/19
f 82/178/14 91/367/14 90/185/14 f 106/226/20 115/415/20 114/233/20
f 84/184/15 92/192/15 91/186/15 f 108/232/21 116/240/21 115/234/21
f 81/179/12 90/368/12 89/187/12 f 105/227/18 114/416/18 113/235/18
f 87/188/16 89/194/16 90/189/16 f 111/236/22 113/242/22 114/237/22
f 85/190/16 90/189/16 91/186/16 f 109/238/22 114/237/22 115/234/22
f 86/191/16 91/186/16 92/192/16 f 110/239/22 115/234/22 116/240/22
f 88/193/16 92/192/16 89/194/16 f 112/241/22 116/240/22 113/242/22
f 94/195/15 96/369/15 95/196/15 f 118/243/21 120/417/21 119/244/21
f 97/198/12 100/370/12 99/199/12 f 121/246/18 124/418/18 123/247/18
f 103/181/16 104/209/16 101/201/16 f 127/229/22 128/257/22 125/249/22
f 95/196/16 97/198/16 98/200/16 f 119/244/22 121/246/22 122/248/22
f 96/203/13 100/371/13 97/198/13 f 120/251/19 124/419/19 121/246/19
f 93/197/14 98/200/14 99/204/14 f 117/245/20 122/248/20 123/252/20
f 85/206/15 102/202/15 101/201/15 f 109/254/21 126/250/21 125/249/21
f 87/208/14 101/201/14 104/209/14 f 111/256/20 125/249/20 128/257/20
f 86/211/13 103/181/13 102/202/13 f 110/259/19 127/229/19 126/250/19
f 106/213/15 108/372/15 107/214/15 f 130/261/21 132/420/21 131/262/21
f 109/216/12 112/373/12 111/217/12 f 133/264/18 136/421/18 135/265/18
f 107/214/16 109/216/16 110/218/16 f 131/262/22 133/264/22 134/266/22
f 108/219/13 112/374/13 109/216/13 f 132/267/19 136/422/19 133/264/19
f 105/215/14 110/218/14 111/220/14 f 129/263/20 134/266/20 135/268/20
f 114/222/12 116/375/12 115/223/12 f 138/270/18 140/423/18 139/271/18
f 117/225/15 120/376/15 119/226/15 f 141/273/21 144/424/21 143/274/21
f 115/223/16 117/225/16 118/227/16 f 139/271/22 141/273/22 142/275/22
f 116/228/14 120/377/14 117/225/14 f 140/276/20 144/425/20 141/273/20
f 113/224/13 118/227/13 119/229/13 f 137/272/19 142/275/19 143/277/19
f 122/231/12 124/378/12 123/232/12 f 146/279/18 148/426/18 147/280/18
f 125/234/15 128/379/15 127/235/15 f 149/282/21 152/427/21 151/283/21
f 123/232/16 125/234/16 126/236/16 f 147/280/22 149/282/22 150/284/22
f 124/237/14 128/380/14 125/234/14 f 148/285/20 152/428/20 149/282/20
f 121/233/13 126/236/13 127/238/13 f 145/281/19 150/284/19 151/286/19
f 130/240/13 132/381/13 131/241/13 f 154/288/19 156/429/19 155/289/19
f 133/243/14 136/382/14 135/244/14 f 157/291/20 160/430/20 159/292/20
f 131/241/16 133/243/16 134/245/16 f 155/289/22 157/291/22 158/293/22
f 132/246/12 136/383/12 133/243/12 f 156/294/18 160/431/18 157/291/18
f 129/242/15 134/245/15 135/247/15 f 153/290/21 158/293/21 159/295/21
f 138/249/13 140/384/13 139/250/13 f 162/297/19 164/432/19 163/298/19
f 141/252/14 144/385/14 143/253/14 f 165/300/20 168/433/20 167/301/20
f 139/250/16 141/252/16 142/254/16 f 163/298/22 165/300/22 166/302/22
f 140/255/12 144/386/12 141/252/12 f 164/303/18 168/434/18 165/300/18
f 137/251/15 142/254/15 143/256/15 f 161/299/21 166/302/21 167/304/21
f 146/258/14 148/387/14 147/259/14 f 170/306/20 172/435/20 171/307/20
f 149/261/13 152/388/13 151/262/13 f 173/309/19 176/436/19 175/310/19
f 147/259/16 149/261/16 150/263/16 f 171/307/22 173/309/22 174/311/22
f 148/264/15 152/389/15 149/261/15 f 172/312/21 176/437/21 173/309/21
f 145/260/12 150/263/12 151/265/12 f 169/308/18 174/311/18 175/313/18
f 154/267/14 156/390/14 155/268/14 f 178/315/20 180/438/20 179/316/20
f 157/270/13 160/391/13 159/271/13 f 181/318/19 184/439/19 183/319/19
f 155/268/16 157/270/16 158/272/16 f 179/316/22 181/318/22 182/320/22
f 156/273/15 160/392/15 157/270/15 f 180/321/21 184/440/21 181/318/21
f 153/269/12 158/272/12 159/274/12 f 177/317/18 182/320/18 183/322/18
f 162/276/13 174/297/13 177/277/13 f 186/324/19 198/345/19 201/325/19
f 176/279/16 177/277/16 174/280/16 f 200/327/22 201/325/22 198/328/22
f 172/282/16 173/286/16 170/283/16 f 196/330/22 197/334/22 194/331/22
f 168/285/13 170/292/13 173/286/13 f 192/333/19 194/340/19 197/334/19
f 167/288/14 172/282/14 171/289/14 f 191/336/20 196/330/20 195/337/20
f 169/287/15 173/286/15 172/282/15 f 193/335/21 197/334/21 196/330/21
f 166/291/12 171/393/12 170/292/12 f 190/339/18 195/441/18 194/340/18
f 163/293/14 176/279/14 175/294/14 f 187/341/20 200/327/20 199/342/20
f 161/278/15 177/277/15 176/279/15 f 185/326/21 201/325/21 200/327/21
f 164/296/12 175/394/12 174/297/12 f 188/344/18 199/442/18 198/345/18
f 179/298/13 190/319/13 193/299/13 f 203/346/19 214/367/19 217/347/19
f 192/301/16 193/299/16 190/302/16 f 216/349/22 217/347/22 214/350/22
f 188/304/16 189/308/16 186/305/16 f 212/352/22 213/356/22 210/353/22
f 184/307/13 186/314/13 189/308/13 f 208/355/19 210/362/19 213/356/19
f 183/310/14 188/304/14 187/311/14 f 207/358/20 212/352/20 211/359/20
f 185/309/15 189/308/15 188/304/15 f 209/357/21 213/356/21 212/352/21
f 182/313/12 187/395/12 186/314/12 f 206/361/18 211/443/18 210/362/18
f 180/315/14 192/301/14 191/316/14 f 204/363/20 216/349/20 215/364/20
f 178/300/15 193/299/15 192/301/15 f 202/348/21 217/347/21 216/349/21
f 181/318/12 191/396/12 190/319/12 f 205/366/18 215/444/18 214/367/18
f 194/320/16 196/324/16 195/321/16 f 218/368/22 220/372/22 219/369/22
f 194/320/17 197/325/17 198/323/17 f 218/368/23 221/373/23 222/371/23
f 197/325/15 199/397/15 200/326/15 f 221/373/21 223/445/21 224/374/21
f 195/321/18 202/328/18 201/327/18 f 219/369/24 226/376/24 225/375/24
f 202/328/12 204/398/12 203/329/12 f 226/376/18 228/446/18 227/377/18
f 206/330/16 208/334/16 207/331/16 f 230/378/22 232/382/22 231/379/22
f 206/330/17 209/335/17 210/333/17 f 230/378/23 233/383/23 234/381/23
f 209/335/15 211/399/15 212/336/15 f 233/383/21 235/447/21 236/384/21
f 207/331/18 214/338/18 213/337/18 f 231/379/24 238/386/24 237/385/24
f 214/338/12 216/400/12 215/339/12 f 238/386/18 240/448/18 239/387/18
f 169/287/11 167/288/11 166/340/11 f 193/335/17 191/336/17 190/388/17
f 185/309/11 183/310/11 182/342/11 f 209/357/17 207/358/17 206/390/17
f 180/315/11 181/401/11 179/344/11 f 204/363/17 205/449/17 203/392/17
f 163/293/11 164/402/11 162/345/11 f 187/341/17 188/450/17 186/393/17
f 218/346/15 217/403/15 219/347/15 f 242/394/21 241/451/21 243/395/21
f 220/348/19 219/347/19 226/349/19 f 244/396/25 243/395/25 250/397/25
f 221/351/12 222/404/12 224/352/12 f 245/399/18 246/452/18 248/400/18
f 223/353/20 224/352/20 227/354/20 f 247/401/26 248/400/26 251/402/26
f 226/349/11 225/355/11 227/354/11 f 250/397/17 249/403/17 251/402/17
f 230/356/15 229/405/15 231/357/15 f 254/404/21 253/453/21 255/405/21
f 232/358/19 231/357/19 238/359/19 f 256/406/25 255/405/25 262/407/25
f 233/361/12 234/406/12 236/362/12 f 257/409/18 258/454/18 260/410/18
f 235/363/20 236/362/20 239/364/20 f 259/411/26 260/410/26 263/412/26
f 238/359/11 237/365/11 239/364/11 f 262/407/17 261/413/17 263/412/17

File diff suppressed because it is too large Load Diff

View File

@ -54,6 +54,7 @@
"block.largeTurbineRunning": {"category": "block", "sounds": [{"name": "block/largeTurbine", "stream": false}]}, "block.largeTurbineRunning": {"category": "block", "sounds": [{"name": "block/largeTurbine", "stream": false}]},
"block.damage": {"category": "block", "sounds": ["block/dam1", "block/dam2", "block/dam3", "block/dam4"]}, "block.damage": {"category": "block", "sounds": ["block/dam1", "block/dam2", "block/dam3", "block/dam4"]},
"block.electricHum": {"category": "block", "sounds": [{"name": "block/electricHum", "stream": false}]}, "block.electricHum": {"category": "block", "sounds": [{"name": "block/electricHum", "stream": false}]},
"block.fensuHum": {"category": "block", "sounds": [{"name": "block/fensuHum", "stream": false}]},
"block.boiler": {"category": "block", "sounds": [{"name": "block/boiler", "stream": false}]}, "block.boiler": {"category": "block", "sounds": [{"name": "block/boiler", "stream": false}]},
"block.hornNearSingle": {"category": "block", "sounds": [{"name": "block/hornNearSingle", "stream": false}]}, "block.hornNearSingle": {"category": "block", "sounds": [{"name": "block/hornNearSingle", "stream": false}]},
"block.hornNearDual": {"category": "block", "sounds": [{"name": "block/hornNearDual", "stream": false}]}, "block.hornNearDual": {"category": "block", "sounds": [{"name": "block/hornNearDual", "stream": false}]},

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 898 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB