Merge branch 'master' into master
23
changelog
@ -1,13 +1,34 @@
|
||||
## 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
|
||||
* Updated italian localization
|
||||
* 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 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
|
||||
* 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 meteors using a nonexistant keepalive timer, causing potential audio flickering in certain cases
|
||||
* 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
|
||||
|
||||
@ -3,6 +3,7 @@ package api.hbm.block;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@Deprecated
|
||||
public interface IDrillInteraction {
|
||||
|
||||
/**
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package api.hbm.block;
|
||||
|
||||
@Deprecated
|
||||
public interface IMiningDrill {
|
||||
|
||||
/**
|
||||
|
||||
@ -2,7 +2,6 @@ package api.hbm.energymk2;
|
||||
|
||||
import com.hbm.handler.threading.PacketThreading;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
import com.hbm.util.Compat;
|
||||
|
||||
import api.hbm.energymk2.Nodespace.PowerNode;
|
||||
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) {
|
||||
|
||||
TileEntity te = Compat.getTileStandard(world, x, y, z);
|
||||
TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
|
||||
boolean red = false;
|
||||
|
||||
if(te instanceof IEnergyConductorMK2) {
|
||||
|
||||
@ -3,7 +3,6 @@ package api.hbm.energymk2;
|
||||
import com.hbm.handler.threading.PacketThreading;
|
||||
import com.hbm.interfaces.NotableComments;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
import com.hbm.util.Compat;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
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) {
|
||||
|
||||
TileEntity te = Compat.getTileStandard(world, x, y, z);
|
||||
TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
|
||||
boolean red = false;
|
||||
|
||||
if(te instanceof IEnergyConductorMK2) {
|
||||
|
||||
@ -5,7 +5,6 @@ import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
import com.hbm.uninos.GenNode;
|
||||
import com.hbm.uninos.UniNodespace;
|
||||
import com.hbm.util.Compat;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
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) {
|
||||
|
||||
TileEntity te = Compat.getTileStandard(world, x, y, z);
|
||||
TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
|
||||
boolean red = false;
|
||||
|
||||
if(te instanceof IFluidConnectorMK2) {
|
||||
|
||||
@ -6,7 +6,6 @@ import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
import com.hbm.uninos.GenNode;
|
||||
import com.hbm.uninos.UniNodespace;
|
||||
import com.hbm.util.Compat;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
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) {
|
||||
|
||||
TileEntity te = Compat.getTileStandard(world, x, y, z);
|
||||
TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
|
||||
boolean red = false;
|
||||
|
||||
if(te instanceof IFluidConnectorMK2) {
|
||||
|
||||
@ -1,7 +1,55 @@
|
||||
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. */
|
||||
public interface ILoadedTile {
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -743,20 +743,21 @@ public class ModBlocks {
|
||||
public static Block machine_microwave;
|
||||
|
||||
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;
|
||||
@Deprecated public static Block machine_lithium_battery;
|
||||
@Deprecated public static Block machine_schrabidium_battery;
|
||||
@Deprecated public static Block machine_dineutronium_battery;
|
||||
public static Block machine_fensu;
|
||||
@Deprecated public static Block machine_fensu;
|
||||
|
||||
public static Block capacitor_bus;
|
||||
public static Block capacitor_copper;
|
||||
public static Block capacitor_gold;
|
||||
public static Block capacitor_niobium;
|
||||
public static Block capacitor_tantalium;
|
||||
public static Block capacitor_schrabidate;
|
||||
@Deprecated public static Block capacitor_bus;
|
||||
public static Block capacitor_copper; // neat for structures
|
||||
@Deprecated public static Block capacitor_gold;
|
||||
@Deprecated public static Block capacitor_niobium;
|
||||
@Deprecated public static Block capacitor_tantalium;
|
||||
@Deprecated public static Block capacitor_schrabidate;
|
||||
|
||||
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_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 = 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);
|
||||
@ -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_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_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_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_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_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_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(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(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(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_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_antimatter);
|
||||
register(machine_battery_socket);
|
||||
register(machine_battery_redd);
|
||||
register(machine_battery_potato);
|
||||
register(machine_battery);
|
||||
register(machine_lithium_battery);
|
||||
|
||||
@ -1,26 +1,15 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
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.material.Material;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
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) {
|
||||
super(mat);
|
||||
@ -28,32 +17,7 @@ public class BlockCluster extends Block implements IDrillInteraction, ITooltipPr
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int i, Random rand, int j) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
return getDrop();
|
||||
}
|
||||
|
||||
private Item getDrop() {
|
||||
@ -65,24 +29,4 @@ public class BlockCluster extends Block implements IDrillInteraction, ITooltipPr
|
||||
|
||||
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"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.interfaces.Spaghetti;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
|
||||
|
||||
import net.minecraft.block.BlockFalling;
|
||||
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_rtg_grey), 4);
|
||||
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.red_pylon), 9);
|
||||
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_battery), 8);
|
||||
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_lithium_battery), 5);
|
||||
BlockCrate.addToListWithWeight(metalList, new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()), 10);
|
||||
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_fluidtank), 7);
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemBattery;
|
||||
import com.hbm.tileentity.machine.TileEntityRadiobox;
|
||||
|
||||
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) {
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
if(i == 0)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 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);
|
||||
}
|
||||
if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 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
|
||||
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;
|
||||
} else if(!player.isSneaking())
|
||||
{
|
||||
} else if(!player.isSneaking()) {
|
||||
TileEntityRadiobox box = (TileEntityRadiobox)world.getTileEntity(x, y, z);
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.battery_spark && !box.infinite) {
|
||||
@ -93,37 +78,25 @@ public class Radiobox extends BlockContainer {
|
||||
|
||||
return true;
|
||||
} else {
|
||||
//FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_radiobox, world, x, y, z);
|
||||
//return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@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_);
|
||||
float f = 0.0625F;
|
||||
|
||||
this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f);
|
||||
switch(te)
|
||||
{
|
||||
this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f);
|
||||
switch(te) {
|
||||
case 4:
|
||||
case 8:
|
||||
this.setBlockBounds(11*f, 1*f, 4*f, 16*f, 15*f, 12*f);
|
||||
break;
|
||||
case 8: this.setBlockBounds(11 * f, 1 * f, 4 * f, 16 * f, 15 * f, 12 * f); break;
|
||||
case 2:
|
||||
case 6:
|
||||
this.setBlockBounds(4*f, 1*f, 11*f, 12*f, 15*f, 16*f);
|
||||
break;
|
||||
case 6: this.setBlockBounds(4 * f, 1 * f, 11 * f, 12 * f, 15 * f, 16 * f); break;
|
||||
case 5:
|
||||
case 9:
|
||||
this.setBlockBounds(0*f, 1*f, 4*f, 5*f, 15*f, 12*f);
|
||||
break;
|
||||
case 9: this.setBlockBounds(0 * f, 1 * f, 4 * f, 5 * f, 15 * f, 12 * f); break;
|
||||
case 3:
|
||||
case 7:
|
||||
this.setBlockBounds(4*f, 1*f, 0*f, 12*f, 15*f, 5*f);
|
||||
break;
|
||||
case 7: this.setBlockBounds(4 * f, 1 * f, 0 * f, 12 * f, 15 * f, 5 * f); break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -133,37 +106,24 @@ public class Radiobox extends BlockContainer {
|
||||
int te = world.getBlockMetadata(x, y, z);
|
||||
float f = 0.0625F;
|
||||
|
||||
this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f);
|
||||
switch(te)
|
||||
{
|
||||
this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f);
|
||||
switch(te) {
|
||||
case 4:
|
||||
case 8:
|
||||
this.setBlockBounds(11*f, 1*f, 4*f, 16*f, 15*f, 12*f);
|
||||
break;
|
||||
case 8: this.setBlockBounds(11 * f, 1 * f, 4 * f, 16 * f, 15 * f, 12 * f); break;
|
||||
case 2:
|
||||
case 6:
|
||||
this.setBlockBounds(4*f, 1*f, 11*f, 12*f, 15*f, 16*f);
|
||||
break;
|
||||
case 6: this.setBlockBounds(4 * f, 1 * f, 11 * f, 12 * f, 15 * f, 16 * f); break;
|
||||
case 5:
|
||||
case 9:
|
||||
this.setBlockBounds(0*f, 1*f, 4*f, 5*f, 15*f, 12*f);
|
||||
break;
|
||||
case 9: this.setBlockBounds(0 * f, 1 * f, 4 * f, 5 * f, 15 * f, 12 * f); break;
|
||||
case 3:
|
||||
case 7:
|
||||
this.setBlockBounds(4*f, 1*f, 0*f, 12*f, 15*f, 5*f);
|
||||
break;
|
||||
case 7: 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);
|
||||
}
|
||||
|
||||
public void breakBlock(World world, int x, int y, int z, Block b, int m) {
|
||||
|
||||
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, ItemBattery.getEmptyBattery(ModItems.battery_spark)));
|
||||
}
|
||||
if(box.infinite) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.battery_spark)));
|
||||
|
||||
super.breakBlock(world, x, y, z, b, m);
|
||||
}
|
||||
|
||||
50
src/main/java/com/hbm/blocks/network/MachineBatteryREDD.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@ -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 getOffset() { return 0; }
|
||||
|
||||
@Override
|
||||
protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
super.fillSpace(world, x, y, z, dir, o);
|
||||
|
||||
|
||||
49
src/main/java/com/hbm/commands/CommandReapNetworks.java
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.inventory.OreDictManager.DictFrame;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
|
||||
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||
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 });
|
||||
|
||||
//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_mk2, 1), new Object[] { "PCP", "PCP", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModBlocks.capacitor_niobium });
|
||||
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, 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', 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', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM.ordinal()) });
|
||||
|
||||
//Special Mods
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.horseshoe_magnet, 1), new Object[] { "L L", "I I", "ILI", 'L', ModItems.lodestone, 'I', IRON.ingot() });
|
||||
|
||||
@ -9,6 +9,7 @@ import static com.hbm.inventory.OreDictManager.*;
|
||||
import com.hbm.items.ItemEnums.EnumPlantType;
|
||||
import com.hbm.items.ItemGenericPart.EnumPartType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
|
||||
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
|
||||
import com.hbm.items.tool.ItemBlowtorch;
|
||||
import com.hbm.items.tool.ItemModMinecart;
|
||||
@ -62,10 +63,10 @@ public class ToolRecipes {
|
||||
addShovel( DESH.ingot(), ModItems.desh_shovel);
|
||||
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_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_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_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_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', 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', 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', EnumBatteryPack.BATTERY_LEAD.stack() });
|
||||
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.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.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.toolbox), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() });
|
||||
|
||||
@ -12,6 +12,7 @@ import static com.hbm.inventory.OreDictManager.*;
|
||||
import com.hbm.items.ItemAmmoEnums.*;
|
||||
import com.hbm.items.ItemEnums.EnumCasingType;
|
||||
import com.hbm.items.ItemEnums.EnumSecretType;
|
||||
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
|
||||
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
|
||||
import com.hbm.items.ModItems;
|
||||
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.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_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.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 });
|
||||
@ -310,6 +311,9 @@ public class WeaponRecipes {
|
||||
|
||||
//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.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
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.custom_tnt, 1), new Object[] { " C ", "TIT", "TIT", 'C', CU.plate(), 'I', IRON.plate(), 'T', ANY_HIGHEXPLOSIVE.ingot() });
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
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) {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -70,7 +70,12 @@ public class FluidType {
|
||||
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) {
|
||||
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.color = color;
|
||||
this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US);
|
||||
@ -85,6 +90,7 @@ public class FluidType {
|
||||
|
||||
this.id = id;
|
||||
Fluids.register(this, id);
|
||||
return this;
|
||||
}
|
||||
|
||||
public FluidType(int forcedId, String name, int color, int p, int f, int r, EnumSymbol symbol) {
|
||||
|
||||
@ -817,7 +817,9 @@ public class Fluids {
|
||||
String texture = obj.get("texture").getAsString();
|
||||
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);
|
||||
}
|
||||
|
||||
@ -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(){
|
||||
File folder = MainRegistry.configHbmDir;
|
||||
File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json");
|
||||
if(!customTypes.exists()) initDefaultFluids(customTypes);
|
||||
|
||||
for(FluidType type : customFluids){
|
||||
for(FluidType type : customFluids) {
|
||||
fluidMigration.put(type.getName(), type);
|
||||
idMapping.remove(type.getID());
|
||||
registerOrder.remove(type);
|
||||
nameMapping.remove(type.getName());
|
||||
@ -895,7 +900,7 @@ public class Fluids {
|
||||
}
|
||||
customFluids.clear();
|
||||
|
||||
for(FluidType type : foreignFluids){
|
||||
for(FluidType type : foreignFluids) {
|
||||
idMapping.remove(type.getID());
|
||||
registerOrder.remove(type);
|
||||
nameMapping.remove(type.getName());
|
||||
|
||||
87
src/main/java/com/hbm/inventory/gui/GUIBatteryREDD.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@ -99,6 +99,12 @@ public class GUIBatterySocket extends GuiInfoContainer {
|
||||
IBatteryItem item = (IBatteryItem) battery.slots[0].getItem();
|
||||
long power = item.getCharge(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)
|
||||
drawTexturedModalRect(guiLeft + 62, guiTop + 69 - p, 176, 52 - p, 34, p);
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
@ -59,6 +60,7 @@ public class AnnihilatorRecipes extends SerializableRecipe {
|
||||
@Override
|
||||
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(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"))));
|
||||
@ -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.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 Object getRecipeObject() { return recipes; }
|
||||
|
||||
@ -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_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_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_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);
|
||||
@ -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_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_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_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_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);
|
||||
@ -199,17 +193,6 @@ import net.minecraft.item.ItemStack;
|
||||
new ComparableStack(ModItems.part_generic, 32, EnumPartType.LDE)
|
||||
},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[] {
|
||||
new OreDictStack(STEEL.shell(), 3),
|
||||
new ComparableStack(ModItems.plate_desh, 4),
|
||||
@ -246,39 +229,6 @@ import net.minecraft.item.ItemStack;
|
||||
new ComparableStack(ModItems.crystal_xen, 1),
|
||||
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED)
|
||||
},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[] {
|
||||
new ComparableStack(ModItems.upgrade_speed_3, 1),
|
||||
@ -304,19 +254,6 @@ import net.minecraft.item.ItemStack;
|
||||
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID),
|
||||
}, 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[] {
|
||||
new OreDictStack(STEEL.plate(), 16),
|
||||
new OreDictStack(CU.ingot(), 12),
|
||||
@ -463,18 +400,6 @@ import net.minecraft.item.ItemStack;
|
||||
new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4)
|
||||
}, 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[] {
|
||||
!exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp(), 1),
|
||||
new OreDictStack(STEEL.pipe(), 8),
|
||||
@ -527,113 +452,6 @@ import net.minecraft.item.ItemStack;
|
||||
new ComparableStack(ModItems.motor, 2),
|
||||
}, 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[] {
|
||||
new OreDictStack(STEEL.plate(), 24),
|
||||
new OreDictStack(ANY_PLASTIC.ingot(), 12),
|
||||
@ -707,14 +525,6 @@ import net.minecraft.item.ItemStack;
|
||||
new OreDictStack(RUBBER.ingot(), 8),
|
||||
new OreDictStack(STEEL.pipe(), 8),
|
||||
}, 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[] {
|
||||
new ComparableStack(ModBlocks.concrete_asbestos, 4),
|
||||
@ -851,17 +661,6 @@ import net.minecraft.item.ItemStack;
|
||||
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM),
|
||||
}, 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[] {
|
||||
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.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[] {
|
||||
new OreDictStack(STEEL.ingot(), 16),
|
||||
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, 10, EnumCircuitType.CAPACITOR_BOARD),
|
||||
}, 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[] {
|
||||
|
||||
@ -27,6 +27,7 @@ import com.hbm.items.ItemEnums.EnumExpensiveType;
|
||||
import com.hbm.items.ItemEnums.EnumSecretType;
|
||||
import com.hbm.items.ItemGenericPart.EnumPartType;
|
||||
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.ItemDrillbit.EnumDrillType;
|
||||
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))
|
||||
.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))
|
||||
.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))
|
||||
.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))
|
||||
.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))
|
||||
.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)));
|
||||
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))
|
||||
@ -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))
|
||||
.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))
|
||||
.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))
|
||||
.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)));
|
||||
@ -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)));
|
||||
|
||||
// batteries
|
||||
this.register(new GenericRecipe("ass.battery").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_battery, 1))
|
||||
.inputItems(new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12)));
|
||||
this.register(new GenericRecipe("ass.batterylithium").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_lithium_battery, 1))
|
||||
.inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12)));
|
||||
this.register(new GenericRecipe("ass.batteryschrabidium").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_schrabidium_battery, 1))
|
||||
.inputItems(new OreDictStack(DESH.ingot(), 16), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12)));
|
||||
this.register(new GenericRecipe("ass.batterydnt").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_dineutronium_battery, 1))
|
||||
.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)));
|
||||
this.register(new GenericRecipe("ass.fensusan").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.machine_fensu, 1))
|
||||
.inputItems(new ComparableStack(ModItems.ingot_electronium, 32),
|
||||
new ComparableStack(ModBlocks.machine_dineutronium_battery, 16),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 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),
|
||||
this.register(new GenericRecipe("ass.capacitorgold").setup(100, 100).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_GOLD.ordinal()))
|
||||
.inputItems(new OreDictStack(STEEL.plate(), 8),
|
||||
new OreDictStack(GOLD.wireDense(), 16)));
|
||||
this.register(new GenericRecipe("ass.capacitorniobium").setup(100, 1_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM.ordinal()))
|
||||
.inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 12),
|
||||
new OreDictStack(NB.wireDense(), 24)));
|
||||
this.register(new GenericRecipe("ass.capacitortantalum").setup(100, 10_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM.ordinal()))
|
||||
.inputItems(new OreDictStack(ANY_HARDPLASTIC.ingot(), 16),
|
||||
new OreDictStack(TA.ingot(), 24)));
|
||||
this.register(new GenericRecipe("ass.capacitorbismuth").setup(100, 25_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_BISMUTH.ordinal()))
|
||||
.inputItems(new OreDictStack(ANY_HARDPLASTIC.ingot(), 24),
|
||||
new OreDictStack(BI.ingot(), 24),
|
||||
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CHIP_QUANTUM)));
|
||||
this.register(new GenericRecipe("ass.capacitorspark").setup(100, 100_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_SPARK.ordinal()))
|
||||
.inputItems(new OreDictStack(CMB.plateCast(), 12),
|
||||
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.plate_dineutronium, 24),
|
||||
new ComparableStack(ModItems.ingot_u238m2),
|
||||
new ComparableStack(ModItems.ingot_cft, 64),
|
||||
new ComparableStack(ModItems.ingot_cft, 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.FERRO_PLATING),
|
||||
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 OreDictStack(OSMIRIDIUM.plateWelded(), 64),
|
||||
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
|
||||
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
|
||||
new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64),
|
||||
new OreDictStack(CMB.plateCast(), 64),
|
||||
new ComparableStack(ModItems.ingot_u238m2),
|
||||
new ComparableStack(ModItems.ingot_cft, 64),
|
||||
new ComparableStack(ModItems.ingot_cft, 64)));
|
||||
@ -447,7 +461,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
||||
|
||||
// accelerators
|
||||
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)));
|
||||
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))
|
||||
@ -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.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))
|
||||
.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))
|
||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum"));
|
||||
|
||||
@ -771,34 +785,34 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
||||
|
||||
// turrets
|
||||
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"));
|
||||
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"));
|
||||
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"));
|
||||
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"));
|
||||
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"));
|
||||
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"));
|
||||
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"));
|
||||
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"));
|
||||
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"));
|
||||
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"));
|
||||
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)));
|
||||
@ -1023,7 +1037,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
||||
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)));
|
||||
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))
|
||||
.inputItems(new OreDictStack(STEEL.shell(), 3),
|
||||
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.circuit, 24, EnumCircuitType.BASIC),
|
||||
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))
|
||||
.inputItems(new OreDictStack(BIGMT.plate(), 24),
|
||||
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.photo_panel, 12),
|
||||
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))
|
||||
.inputItems(new ComparableStack(ModItems.ingot_meteorite, 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.thruster_small, 1),
|
||||
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))
|
||||
.inputItems(new OreDictStack(SBD.plateCast(), 64),
|
||||
new OreDictStack(SBD.plateCast(), 64),
|
||||
|
||||
@ -19,6 +19,7 @@ import com.hbm.items.ItemEnums.EnumFuelAdditive;
|
||||
import com.hbm.items.ItemGenericPart.EnumPartType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemFluidIcon;
|
||||
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
|
||||
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
@ -155,6 +156,36 @@ public class ChemicalPlantRecipes extends GenericRecipes<GenericRecipe> {
|
||||
.inputFluids(new FluidStack(Fluids.BITUMEN, 1_000))
|
||||
.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 ///
|
||||
this.register(new GenericRecipe("chem.desh").setup(100, 100)
|
||||
.inputItems(new ComparableStack(ModItems.powder_desh_mix))
|
||||
|
||||
@ -6,6 +6,7 @@ import com.hbm.interfaces.Spaghetti;
|
||||
import com.hbm.inventory.FluidContainer;
|
||||
import com.hbm.inventory.FluidContainerRegistry;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
|
||||
import com.hbm.util.Tuple.Triplet;
|
||||
|
||||
import net.minecraft.init.Blocks;
|
||||
@ -48,32 +49,17 @@ public class MachineRecipes {
|
||||
ArrayList<ItemStack> fuels = new ArrayList<ItemStack>();
|
||||
fuels.add(new ItemStack(ModItems.battery_potato));
|
||||
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.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;
|
||||
}
|
||||
|
||||
|
||||
@ -172,7 +172,7 @@ public class PedestalRecipes extends SerializableRecipe {
|
||||
rec.recipeSet = obj.get("set").getAsInt();
|
||||
}
|
||||
|
||||
this.recipes.add(rec);
|
||||
this.register(rec);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -740,8 +740,6 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new AnvilOutput(new ItemStack(ModItems.scrap, 1)),
|
||||
new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 1)),
|
||||
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)
|
||||
|
||||
}
|
||||
@ -753,7 +751,6 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new AnvilOutput(new ItemStack(ModItems.scrap, 1)),
|
||||
new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 2)),
|
||||
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.fusion_core, 1), 0.05F)
|
||||
|
||||
|
||||
@ -327,6 +327,7 @@ public abstract class GenericRecipes<T extends GenericRecipe> extends Serializab
|
||||
@Override
|
||||
public void deserialize(JsonArray 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();
|
||||
output.deserialize(element.getAsJsonArray());
|
||||
pool.add(output);
|
||||
|
||||
@ -9,6 +9,7 @@ import com.hbm.items.ItemEnums.EnumCokeType;
|
||||
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemRTGPelletDepleted;
|
||||
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
|
||||
import com.hbm.items.tool.ItemBlowtorch;
|
||||
|
||||
import net.minecraft.init.Items;
|
||||
@ -45,7 +46,7 @@ public class ItemPoolsComponent {
|
||||
weighted(ModItems.coil_copper_torus, 0, 1, 2, 3),
|
||||
weighted(ModItems.wire_fine, Mats.MAT_MINGRADE.id, 1, 8, 5),
|
||||
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.PCB.ordinal(), 1, 3, 5),
|
||||
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_incendiary, 0, 1, 1, 4),
|
||||
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.thruster_small, 0, 1, 1, 5),
|
||||
weighted(ModItems.thruster_medium, 0, 1, 1, 4),
|
||||
|
||||
@ -4,6 +4,7 @@ import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.material.Mats;
|
||||
import com.hbm.items.ItemEnums.EnumCasingType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
|
||||
import com.hbm.items.machine.ItemBreedingRod.BreedingRodType;
|
||||
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
|
||||
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.SHOTSHELL.ordinal(), 4, 10, 3),
|
||||
weighted(ModItems.cordite, 0, 4, 6, 5),
|
||||
weighted(ModItems.battery_generic, 0, 1, 1, 4),
|
||||
weighted(ModItems.battery_advanced, 0, 1, 1, 2),
|
||||
weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_REDSTONE.ordinal(), 1, 1, 1),
|
||||
weighted(ModItems.scrap, 0, 1, 3, 10),
|
||||
weighted(ModItems.dust, 0, 2, 4, 9),
|
||||
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.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 1, 4),
|
||||
weighted(ModItems.circuit, EnumCircuitType.CAPACITOR.ordinal(), 1, 1, 2),
|
||||
weighted(ModItems.battery_generic, 0, 1, 1, 4),
|
||||
weighted(ModItems.battery_advanced, 0, 1, 1, 3),
|
||||
weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_REDSTONE.ordinal(), 1, 1, 1),
|
||||
weighted(ModItems.powder_iodine, 0, 1, 1, 1),
|
||||
weighted(ModItems.powder_bromine, 0, 1, 1, 1),
|
||||
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_mirv, 0, 1, 1, 2),
|
||||
weighted(ModItems.stealth_boy, 0, 1, 1, 2),
|
||||
weighted(ModItems.battery_advanced, 0, 1, 1, 3),
|
||||
weighted(ModItems.battery_advanced_cell, 0, 1, 1, 2),
|
||||
weighted(ModItems.battery_schrabidium, 0, 1, 1, 1),
|
||||
weighted(ModItems.battery_pack, EnumBatteryPack.BATTERY_LITHIUM.ordinal(), 1, 1, 1),
|
||||
weighted(ModItems.syringe_awesome, 0, 1, 1, 1),
|
||||
weighted(ModItems.fusion_core, 0, 1, 1, 4),
|
||||
weighted(ModItems.bottle_nuka, 0, 1, 3, 6),
|
||||
@ -215,7 +212,7 @@ public class ItemPoolsLegacy {
|
||||
//spaceship double chests
|
||||
new ItemPool(POOL_SPACESHIP) {{
|
||||
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.wire_fine, Mats.MAT_ALLOY.id, 8, 32, 5),
|
||||
weighted(ModItems.coil_advanced_alloy, 0, 2, 16, 5),
|
||||
|
||||
@ -42,7 +42,6 @@ public class ItemPoolsSingle {
|
||||
new ItemPool(POOL_VAULT_STANDARD) {{
|
||||
this.pool = new WeightedRandomChestContent[] {
|
||||
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(Items.diamond, 0, 3, 6, 1),
|
||||
weighted(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD.ordinal(), 1, 1, 1),
|
||||
@ -59,7 +58,6 @@ public class ItemPoolsSingle {
|
||||
new ItemPool(POOL_VAULT_REINFORCED) {{
|
||||
this.pool = new WeightedRandomChestContent[] {
|
||||
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.sat_chip, 0, 1, 1, 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.ammo_standard, EnumAmmo.R762_DU.ordinal(), 16, 32, 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)
|
||||
};
|
||||
}};
|
||||
|
||||
@ -1631,8 +1631,6 @@ public class ModItems {
|
||||
@Deprecated public static Item battery_advanced;
|
||||
@Deprecated public static Item battery_lithium;
|
||||
@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_6;
|
||||
@Deprecated public static Item battery_red_cell_24;
|
||||
@ -1656,6 +1654,8 @@ public class ModItems {
|
||||
public static Item battery_pack;
|
||||
public static Item battery_creative;
|
||||
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_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_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_spark = new ItemBattery(100000000, 2000000, 2000000).setUnlocalizedName("battery_spark").setMaxStackSize(1).setCreativeTab(null).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_spark = new Item().setUnlocalizedName("battery_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":battery_spark");
|
||||
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_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");
|
||||
@ -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_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");
|
||||
|
||||
battery_sc_uranium = new ItemSelfcharger(5).setUnlocalizedName("battery_sc_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_uranium");
|
||||
|
||||
@ -134,6 +134,11 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider
|
||||
return target.hasDisplayName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUseableByPlayer(EntityPlayer player) {
|
||||
return player.getHeldItem() == this.target;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void markDirty() { // You have been blessed by the unfuck
|
||||
|
||||
|
||||
18
src/main/java/com/hbm/items/machine/ItemBatteryCreative.java
Normal 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; }
|
||||
}
|
||||
@ -4,6 +4,7 @@ import java.util.List;
|
||||
|
||||
import com.hbm.interfaces.IOrderedEnum;
|
||||
import com.hbm.items.ItemEnumMulti;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
@ -29,20 +30,34 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem {
|
||||
}
|
||||
|
||||
public static enum EnumBatteryPack {
|
||||
REDSTONE ("battery_redstone", 100L),
|
||||
LEAD ("battery_lead", 1_000L),
|
||||
LITHIUM ("battery_lithium", 10_000L),
|
||||
SODIUM ("battery_sodium", 50_000L),
|
||||
SCHRABIDIUM ("battery_schrabidium", 250_000L),
|
||||
QUANTUM ("battery_quantum", 1_000_000L);
|
||||
BATTERY_REDSTONE ("battery_redstone", 100L, false),
|
||||
BATTERY_LEAD ("battery_lead", 1_000L, false),
|
||||
BATTERY_LITHIUM ("battery_lithium", 10_000L, false),
|
||||
BATTERY_SODIUM ("battery_sodium", 50_000L, false),
|
||||
BATTERY_SCHRABIDIUM ("battery_schrabidium", 250_000L, false),
|
||||
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 long capacity;
|
||||
public long chargeRate;
|
||||
public long dischargeRate;
|
||||
|
||||
private EnumBatteryPack(String tex, long dischargeRate) {
|
||||
this(tex, dischargeRate * 20 * 60 * 15, dischargeRate * 10, dischargeRate);
|
||||
private EnumBatteryPack(String tex, long dischargeRate, boolean capacitor) {
|
||||
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) {
|
||||
@ -51,6 +66,9 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem {
|
||||
this.chargeRate = chargeRate;
|
||||
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
|
||||
@ -79,7 +97,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem {
|
||||
stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") - i);
|
||||
} else {
|
||||
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");
|
||||
} else {
|
||||
stack.stackTagCompound = new NBTTagCompound();
|
||||
stack.stackTagCompound.setLong("charge", getMaxCharge(stack));
|
||||
stack.stackTagCompound.setLong("charge", 0);
|
||||
return stack.stackTagCompound.getLong("charge");
|
||||
}
|
||||
}
|
||||
@ -112,7 +130,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem {
|
||||
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
|
||||
@ -124,7 +142,7 @@ public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem {
|
||||
|
||||
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 + "Discharge rate: " + BobMathUtil.getShortNumber(dischargeRate) + "HE/t");
|
||||
list.add(EnumChatFormatting.GOLD + "Time for full charge: " + (maxCharge / chargeRate / 20 / 60D) + "min");
|
||||
|
||||
@ -7,6 +7,7 @@ import com.hbm.interfaces.Spaghetti;
|
||||
import com.hbm.inventory.OreDictManager.DictFrame;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
|
||||
import com.hbm.items.machine.ItemBreedingRod.BreedingRodType;
|
||||
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.canister_full, 16, Fluids.DIESEL.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.screwdriver, 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_wire_coated, 16));
|
||||
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_lithium_battery, 2));
|
||||
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_battery_socket, 4));
|
||||
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_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_range, 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_strong, 1));
|
||||
player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_burst, 1));
|
||||
|
||||
@ -443,7 +443,7 @@ public class LegoClient {
|
||||
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);
|
||||
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();
|
||||
RenderArcFurnace.fullbright(false);
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ public class MagazineElectricEngine implements IMagazine {
|
||||
@Override public void reloadAction(ItemStack stack, IInventory inventory) { }
|
||||
@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 void setAmountBeforeReload(ItemStack stack, int amount) { ItemGunBaseNT.setValueInt(stack, KEY_MAG_PREV + index, amount); }
|
||||
|
||||
@ -307,6 +307,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityForceField.class, new RenderMachineForceField());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFENSU.class, new RenderFENSU());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBatterySocket.class, new RenderBatterySocket());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBatteryREDD.class, new RenderBatteryREDD());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLargeTurbine.class, new RenderBigTurbine());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineReactorBreeding.class, new RenderBreeder());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySolarBoiler.class, new RenderSolarBoiler());
|
||||
|
||||
@ -30,6 +30,7 @@ import com.hbm.items.ItemGenericPart.EnumPartType;
|
||||
import com.hbm.items.food.ItemConserve.EnumFoodType;
|
||||
import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType;
|
||||
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.ItemFluidIDMulti;
|
||||
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 });
|
||||
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 });
|
||||
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_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() });
|
||||
@ -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_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_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
|
||||
@ -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_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", "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() });
|
||||
@ -545,26 +532,6 @@ public class CraftingManager {
|
||||
addShapelessAuto(new ItemStack(ModItems.hev_battery, 1), new Object[] { ModBlocks.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_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 });
|
||||
|
||||
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() });
|
||||
}
|
||||
|
||||
@ -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_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_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(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 });
|
||||
@ -1044,9 +1011,9 @@ public class CraftingManager {
|
||||
}
|
||||
|
||||
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_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_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_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', 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', 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(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) });
|
||||
|
||||
@ -664,6 +664,7 @@ public class MainRegistry {
|
||||
event.registerServerCommand(new CommandReloadServer());
|
||||
event.registerServerCommand(new CommandLocate());
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
@ -271,6 +271,7 @@ public class ResourceManager {
|
||||
|
||||
//FENSU
|
||||
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();
|
||||
|
||||
//Radar
|
||||
@ -739,6 +740,7 @@ public class ResourceManager {
|
||||
|
||||
//FENSU
|
||||
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");
|
||||
|
||||
//Radar
|
||||
|
||||
@ -22,7 +22,7 @@ public class ItemRenderBatteryPack extends ItemRenderBase {
|
||||
EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, item.getItemDamage());
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(pack.texture);
|
||||
ResourceManager.battery_socket.renderPart("Battery");
|
||||
ResourceManager.battery_socket.renderPart(pack.isCapacitor() ? "Capacitor" : "Battery");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
}
|
||||
|
||||
264
src/main/java/com/hbm/render/tileentity/RenderBatteryREDD.java
Normal 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);
|
||||
}};
|
||||
}
|
||||
|
||||
}
|
||||
@ -41,7 +41,7 @@ public class RenderBatterySocket extends TileEntitySpecialRenderer implements II
|
||||
if(socket.renderPack >= 0) {
|
||||
EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, socket.renderPack);
|
||||
bindTexture(pack.texture);
|
||||
ResourceManager.battery_socket.renderPart("Battery");
|
||||
ResourceManager.battery_socket.renderPart(pack.isCapacitor() ? "Capacitor" : "Battery");
|
||||
}
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
@ -10,6 +10,8 @@ import net.minecraft.util.Vec3;
|
||||
|
||||
public class BeamPronter {
|
||||
|
||||
public static Random rand = new Random();
|
||||
|
||||
public static enum EnumWaveType {
|
||||
RANDOM, SPIRAL
|
||||
}
|
||||
@ -51,7 +53,7 @@ public class BeamPronter {
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
|
||||
Vec3 unit = Vec3.createVectorHelper(0, 1, 0);
|
||||
Random rand = new Random(start);
|
||||
rand.setSeed(start);
|
||||
double length = skeleton.lengthVector();
|
||||
double segLength = length / segments;
|
||||
double lastX = 0;
|
||||
|
||||
@ -82,6 +82,7 @@ public class TileMappings {
|
||||
put(TileEntityDecoPoleSatelliteReceiver.class, "tileentity_satellitereceicer");
|
||||
put(TileEntityMachineBattery.class, "tileentity_battery");
|
||||
put(TileEntityBatterySocket.class, "tileentity_battery_socket");
|
||||
put(TileEntityBatteryREDD.class, "tileentity_battery_redd");
|
||||
put(TileEntityCapacitor.class, "tileentity_capacitor");
|
||||
put(TileEntityMachineWoodBurner.class, "tileentity_wood_burner");
|
||||
put(TileEntityRedBarrel.class, "tileentity_barrel");
|
||||
|
||||
@ -122,6 +122,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro
|
||||
if(stack.stackSize == 1) {
|
||||
slots[i] = stack.copy();
|
||||
item.setDead();
|
||||
item.delayBeforeCanPickup = 60;
|
||||
break;
|
||||
} else {
|
||||
slots[i] = stack.copy();
|
||||
|
||||
@ -662,6 +662,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements
|
||||
|
||||
if(stack.stackSize <= 0) {
|
||||
item.setDead();
|
||||
item.delayBeforeCanPickup = 60; // seems fucking stupid, but prevents frame-perfect dupe exploit
|
||||
continue outer;
|
||||
}
|
||||
}
|
||||
@ -676,6 +677,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements
|
||||
|
||||
slots[i] = stack.copy();
|
||||
item.setDead();
|
||||
item.delayBeforeCanPickup = 60;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,8 +28,6 @@ import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
import com.hbm.util.i18n.I18nUtil;
|
||||
|
||||
import api.hbm.block.IDrillInteraction;
|
||||
import api.hbm.block.IMiningDrill;
|
||||
import api.hbm.energymk2.IEnergyReceiverMK2;
|
||||
import api.hbm.fluid.IFluidStandardSender;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
@ -53,7 +51,7 @@ import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
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 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(normal) b.dropBlockAsItem(worldObj, targetX, targetY, targetZ, meta, fortune);
|
||||
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())) {
|
||||
item.setDead();
|
||||
item.delayBeforeCanPickup = 60;
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -398,16 +386,19 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
|
||||
tank.setFill(tank.getMaxFill());
|
||||
|
||||
item.setDead();
|
||||
item.delayBeforeCanPickup = 60;
|
||||
continue;
|
||||
}
|
||||
|
||||
ItemStack stack = InventoryUtil.tryAddItemToInventory(slots, 9, 29, item.getEntityItem().copy());
|
||||
|
||||
if(stack == null)
|
||||
if(stack == null) {
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
List<EntityLivingBase> mobs = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(
|
||||
targetX + 0.5 - 1,
|
||||
@ -460,106 +451,68 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
|
||||
}
|
||||
|
||||
public int getRange() {
|
||||
|
||||
int range = 1;
|
||||
|
||||
for(int i = 1; i < 9; i++) {
|
||||
|
||||
if(slots[i] != null) {
|
||||
|
||||
if(slots[i].getItem() == ModItems.upgrade_effect_1)
|
||||
range += 2;
|
||||
else if(slots[i].getItem() == ModItems.upgrade_effect_2)
|
||||
range += 4;
|
||||
else if(slots[i].getItem() == ModItems.upgrade_effect_3)
|
||||
range += 6;
|
||||
if(slots[i].getItem() == ModItems.upgrade_effect_1) range += 2;
|
||||
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);
|
||||
}
|
||||
|
||||
public boolean hasNullifier() {
|
||||
|
||||
for(int i = 1; i < 9; i++) {
|
||||
|
||||
if(slots[i] != null) {
|
||||
|
||||
if(slots[i].getItem() == ModItems.upgrade_nullifier)
|
||||
return true;
|
||||
if(slots[i].getItem() == ModItems.upgrade_nullifier) return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasSmelter() {
|
||||
|
||||
for(int i = 1; i < 9; i++) {
|
||||
|
||||
if(slots[i] != null) {
|
||||
|
||||
if(slots[i].getItem() == ModItems.upgrade_smelter)
|
||||
return true;
|
||||
if(slots[i].getItem() == ModItems.upgrade_smelter) return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasShredder() {
|
||||
|
||||
for(int i = 1; i < 9; i++) {
|
||||
|
||||
if(slots[i] != null) {
|
||||
|
||||
if(slots[i].getItem() == ModItems.upgrade_shredder)
|
||||
return true;
|
||||
if(slots[i].getItem() == ModItems.upgrade_shredder) return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasCentrifuge() {
|
||||
|
||||
for(int i = 1; i < 9; i++) {
|
||||
|
||||
if(slots[i] != null) {
|
||||
|
||||
if(slots[i].getItem() == ModItems.upgrade_centrifuge)
|
||||
return true;
|
||||
if(slots[i].getItem() == ModItems.upgrade_centrifuge) return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasCrystallizer() {
|
||||
|
||||
for(int i = 1; i < 9; i++) {
|
||||
|
||||
if(slots[i] != null) {
|
||||
|
||||
if(slots[i].getItem() == ModItems.upgrade_crystallizer)
|
||||
return true;
|
||||
if(slots[i].getItem() == ModItems.upgrade_crystallizer) return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean doesScream() {
|
||||
|
||||
for(int i = 1; i < 9; i++) {
|
||||
|
||||
if(slots[i] != null) {
|
||||
|
||||
if(slots[i].getItem() == ModItems.upgrade_screm)
|
||||
return true;
|
||||
if(slots[i].getItem() == ModItems.upgrade_screm) return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -642,6 +595,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
tank.readFromNBT(nbt, "oil");
|
||||
power = nbt.getLong("power");
|
||||
isOn = nbt.getBoolean("isOn");
|
||||
redstonePowered = false;
|
||||
}
|
||||
@ -651,19 +605,10 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
tank.writeToNBT(nbt, "oil");
|
||||
nbt.setLong("power", power);
|
||||
nbt.setBoolean("isOn", isOn);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DrillType getDrillTier() {
|
||||
return DrillType.HITECH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDrillRating() {
|
||||
return 100;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidTank[] getSendingTanks() {
|
||||
return new FluidTank[] { tank };
|
||||
|
||||
@ -582,7 +582,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG
|
||||
@Callback(direct = true)
|
||||
@Optional.Method(modid = "OpenComputers")
|
||||
public Object[] getHeat(Context context, Arguments args) {
|
||||
return new Object[] {coreHeat, hullHeat};
|
||||
return new Object[] {coreHeat, hullHeat, coreHeatCapacity, hullHeatCapacityBase};
|
||||
}
|
||||
|
||||
@Callback(direct = true)
|
||||
@ -612,7 +612,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG
|
||||
@Callback(direct = true)
|
||||
@Optional.Method(modid = "OpenComputers")
|
||||
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)
|
||||
|
||||
@ -68,9 +68,13 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I
|
||||
feed.setFill(feed.getFill() - step.amountReq * ops);
|
||||
steam.setFill(steam.getFill() + step.amountProduced * ops);
|
||||
this.heat -= (step.heatReq * ops / TU_PER_DEGREE) * trait.getEfficiency(HeatingType.HEATEXCHANGER);
|
||||
} else {
|
||||
feed.setTankType(Fluids.NONE);
|
||||
steam.setTankType(Fluids.NONE);
|
||||
}
|
||||
|
||||
} else {
|
||||
feed.setTankType(Fluids.NONE);
|
||||
steam.setTankType(Fluids.NONE);
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -1,50 +1,27 @@
|
||||
package com.hbm.tileentity.machine.storage;
|
||||
|
||||
import com.hbm.interfaces.IControlReceiver;
|
||||
import com.hbm.inventory.container.ContainerBatterySocket;
|
||||
import com.hbm.inventory.gui.GUIBatterySocket;
|
||||
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.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 io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
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 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;
|
||||
|
||||
protected PowerNode node;
|
||||
|
||||
public TileEntityBatterySocket() {
|
||||
super(1);
|
||||
}
|
||||
@ -53,35 +30,11 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
if(priority == null || priority.ordinal() == 0 || priority.ordinal() == 4) {
|
||||
priority = ConnectionPriority.LOW;
|
||||
}
|
||||
|
||||
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(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;
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
long avg = (this.getPower() + prevPower) / 2;
|
||||
this.delta = avg - this.log[0];
|
||||
@ -91,31 +44,6 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
|
||||
}
|
||||
|
||||
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) {
|
||||
renderPack = slots[0].getItemDamage();
|
||||
}
|
||||
|
||||
buf.writeInt(renderPack);
|
||||
buf.writeLong(delta);
|
||||
buf.writeShort(redLow);
|
||||
buf.writeShort(redHigh);
|
||||
buf.writeByte(priority.ordinal());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deserialize(ByteBuf buf) {
|
||||
super.deserialize(buf);
|
||||
|
||||
renderPack = buf.readInt();
|
||||
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
|
||||
@ -175,11 +75,6 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
|
||||
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
|
||||
@ -200,9 +95,6 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
|
||||
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() {
|
||||
if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return 0;
|
||||
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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockPos[] getPortPos() {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
|
||||
@ -226,6 +119,7 @@ public class TileEntityBatterySocket extends TileEntityMachineBase implements IE
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public DirPos[] getConPos() {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
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 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
|
||||
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);
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
|
||||
if(bb == null) {
|
||||
bb = AxisAlignedBB.getBoundingBox(
|
||||
xCoord - 1,
|
||||
yCoord,
|
||||
zCoord - 1,
|
||||
xCoord + 2,
|
||||
yCoord + 2,
|
||||
zCoord + 2
|
||||
);
|
||||
}
|
||||
|
||||
return bb;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.uninos;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
@ -23,7 +24,7 @@ import net.minecraft.world.World;
|
||||
*/
|
||||
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 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() {
|
||||
|
||||
for(World world : MinecraftServer.getServer().worldServers) {
|
||||
@ -72,12 +74,23 @@ public class UniNodespace {
|
||||
}
|
||||
|
||||
updateNetworks();
|
||||
updateReapTimer();
|
||||
}
|
||||
|
||||
private static void updateNetworks() {
|
||||
|
||||
for(NodeNet net : activeNodeNets) net.resetTrackers(); //reset has to be done before everything else
|
||||
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 */
|
||||
|
||||
@ -194,6 +194,17 @@ public class Tuple {
|
||||
public Z getZ() {
|
||||
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> {
|
||||
|
||||
@ -22,31 +22,7 @@ public class DesertAtom001 extends WorldGenerator
|
||||
Block Block2 = ModBlocks.yellow_barrel;
|
||||
Block Block3 = ModBlocks.reinforced_sand;
|
||||
Block Block4 = ModBlocks.crashed_balefire;
|
||||
Block Block5 = ModBlocks.deco_steel;
|
||||
Block Block6 = ModBlocks.brick_light;
|
||||
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()
|
||||
{
|
||||
|
||||
@ -21,7 +21,6 @@ public class DesertAtom002
|
||||
{
|
||||
Block Block2 = ModBlocks.yellow_barrel;
|
||||
Block Block3 = ModBlocks.reinforced_sand;
|
||||
Block Block4 = ModBlocks.nuke_man;
|
||||
Block Block5 = ModBlocks.deco_steel;
|
||||
Block Block6 = ModBlocks.brick_light;
|
||||
Block Block7 = ModBlocks.deco_tungsten;
|
||||
@ -35,18 +34,6 @@ public class DesertAtom002
|
||||
Block Block15 = ModBlocks.deco_titanium;
|
||||
Block Block16 = ModBlocks.block_lead;
|
||||
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)
|
||||
{
|
||||
|
||||
@ -48,7 +48,7 @@ public class DesertAtom003
|
||||
Block Block25 = ModBlocks.red_wire_coated;
|
||||
Block Block26 = ModBlocks.block_uranium;
|
||||
Block Block27 = ModBlocks.pole_top;
|
||||
Block Block28 = ModBlocks.machine_battery;
|
||||
Block Block28 = ModBlocks.capacitor_copper;
|
||||
Block Block29 = ModBlocks.machine_electric_furnace_off;
|
||||
|
||||
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 + 23, 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 + 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 + 30, y + 8, z + 9, Block25, 0, 3);
|
||||
world.setBlock(x + 31, y + 8, z + 9, Block29, 3, 3);
|
||||
|
||||
@ -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 + 0, y + 1, z + 10, Library.getRandomConcrete(), 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 + 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 + 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 + 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 + 4, y + 1, z + 12, Blocks.iron_door, 8, 3);
|
||||
world.setBlock(x + 7, y + 1, z + 12, ModBlocks.machine_battery, 4, 3);
|
||||
world.setBlock(x + 7, y + 1, z + 12, ModBlocks.capacitor_copper, 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 + 0, y + 1, z + 13, ModBlocks.fence_metal, 0, 3);
|
||||
|
||||
@ -592,10 +592,10 @@ public class Spaceship extends WorldGenerator
|
||||
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 + 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 + 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 + 10, y + -2, z + 35, Block4, 0, 3);
|
||||
world.setBlock(x + 11, y + -2, z + 35, Blocks.air, 0, 3);
|
||||
|
||||
@ -884,7 +884,7 @@ public class BunkerComponents {
|
||||
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.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.cable_switch, 0, 1, 2, 5, box);
|
||||
//machine
|
||||
|
||||
@ -22,7 +22,12 @@ local 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.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)
|
||||
|
||||
for address, _ in component.list("ntm_pwr_control") do
|
||||
pwrController = address
|
||||
end
|
||||
|
||||
gpu.setForeground(0xAAAAAA)
|
||||
|
||||
--Control rods
|
||||
@ -203,7 +204,7 @@ while (runSig == true) do
|
||||
rodLevel = call(pwrController, "getLevel")
|
||||
|
||||
coreHeat, _ = call(pwrController, "getHeat")
|
||||
coreHeat = coreHeat//1000000
|
||||
coreHeat = coreHeat // (const.coreHeatCapacity / 10)
|
||||
|
||||
for _, b in pairs(buttons) do
|
||||
drawButton(b, b.colorUp)
|
||||
|
||||
@ -322,6 +322,8 @@ container.autocrafter=Automatische Werkbank
|
||||
container.barrel=Fass
|
||||
container.bat9000=Big-Ass Tank 9000
|
||||
container.battery=Energiespeicher
|
||||
container.batteryREDD=FEnSU
|
||||
container.batterySocket=Batteriesockel
|
||||
container.bombMulti=Mehrzweckbombe
|
||||
container.casingBag=Hülsentasche
|
||||
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_3.name=Dreifache 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_potatos.name=PotatOS
|
||||
item.battery_red_cell.name=Redstone-Energiezelle
|
||||
@ -4043,13 +4057,13 @@ tile.c4.name=C4
|
||||
tile.cable_detector.name=Redstone-Stromschalter
|
||||
tile.cable_diode.name=Rote Kupferdiode
|
||||
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_copper.name=Kupferkondensator
|
||||
tile.capacitor_gold.name=Goldkondensator
|
||||
tile.capacitor_niobium.name=Niobkondensator
|
||||
tile.capacitor_schrabidate.name=Schrabidatkondensator
|
||||
tile.capacitor_tantalium.name=Tantalkondensator
|
||||
tile.capacitor_copper.name=Alter Kondensator
|
||||
tile.capacitor_gold.name=Goldkondensator (LEGACY)
|
||||
tile.capacitor_niobium.name=Niobkondensator (LEGACY)
|
||||
tile.capacitor_schrabidate.name=Schrabidatkondensator (LEGACY)
|
||||
tile.capacitor_tantalium.name=Tantalkondensator (LEGACY)
|
||||
tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus
|
||||
tile.charge_c4.name=Abrissladung
|
||||
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.suspended=Angehalten
|
||||
tile.machine_bat9000.name=Big-Ass Tank 9000
|
||||
tile.machine_battery.name=Energiespeicherblock
|
||||
tile.machine_battery_potato.name=Kartoffelbatterieblock
|
||||
tile.machine_battery.name=Energiespeicherblock (LEGACY)
|
||||
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.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
|
||||
@ -4499,7 +4515,7 @@ tile.machine_difurnace_off.name=Hochofen
|
||||
tile.machine_difurnace_on.name=Hochofen
|
||||
tile.machine_difurnace_rtg_off.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_drill.name=Automatischer Minenbohrer
|
||||
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_excavator.name=Großer Minenbohrer
|
||||
tile.machine_fel.name=FEL
|
||||
tile.machine_fensu.name=FEnSU
|
||||
tile.machine_fensu.name=FEnSU (LEGACY)
|
||||
tile.machine_flare.name=Abfackelturm
|
||||
tile.machine_fluidtank.name=Tank
|
||||
tile.machine_forcefield.name=Kraftfeldgenerator
|
||||
@ -4529,7 +4545,7 @@ tile.machine_intake.name=Lufteinlass
|
||||
tile.machine_keyforge.name=Schlossertisch
|
||||
tile.machine_large_turbine.name=Industrielle Dampfturbine
|
||||
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_mining_laser.name=Bergbaulaser
|
||||
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_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_schrabidium_battery.name=Schrabidium-Energiespeicherblock
|
||||
tile.machine_schrabidium_battery.name=Schrabidium-Energiespeicherblock (LEGACY)
|
||||
tile.machine_schrabidium_transmutator.name=Schrabidium-Transmutationsgerät (LEGACY)
|
||||
tile.machine_selenium.name=Hochleistungs-Sternmotor
|
||||
tile.machine_shredder.name=Brecher
|
||||
|
||||
@ -308,7 +308,7 @@ book.starter.page15=Finally, you can create your first §oreal§r source of ener
|
||||
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.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.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.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.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.page16=§4§lAvoid.
|
||||
|
||||
@ -727,6 +727,8 @@ container.autocrafter=Automatic Crafting Table
|
||||
container.barrel=Barrel
|
||||
container.bat9000=Big-Ass Tank 9000
|
||||
container.battery=Energy Storage
|
||||
container.batteryREDD=FEnSU
|
||||
container.batterySocket=Battery Socket
|
||||
container.bombMulti=Multi Purpose Bomb
|
||||
container.casingBag=Bullet Casing Bag
|
||||
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_3.name=Triple 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_potatos.name=PotatOS
|
||||
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_diode.name=Red Copper Diode
|
||||
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_copper.name=Copper Capacitor
|
||||
tile.capacitor_gold.name=Golden Capacitor
|
||||
tile.capacitor_niobium.name=Niobium Capacitor
|
||||
tile.capacitor_schrabidate.name=Schrabidate Capacitor
|
||||
tile.capacitor_tantalium.name=Tantalum Capacitor
|
||||
tile.capacitor_copper.name=Old Capacitor
|
||||
tile.capacitor_gold.name=Golden Capacitor (LEGACY)
|
||||
tile.capacitor_niobium.name=Niobium Capacitor (LEGACY)
|
||||
tile.capacitor_schrabidate.name=Schrabidate Capacitor (LEGACY)
|
||||
tile.capacitor_tantalium.name=Tantalum Capacitor (LEGACY)
|
||||
tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus
|
||||
tile.charge_c4.name=Demolition Charge
|
||||
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.suspended=Suspended
|
||||
tile.machine_bat9000.name=Big-Ass Tank 9000
|
||||
tile.machine_battery.name=Energy Storage Block
|
||||
tile.machine_battery_potato.name=Potato Battery Block
|
||||
tile.machine_battery.name=Energy Storage Block (LEGACY)
|
||||
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.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
|
||||
@ -5763,7 +5779,7 @@ tile.machine_difurnace_off.name=Blast Furnace
|
||||
tile.machine_difurnace_on.name=Blast Furnace
|
||||
tile.machine_difurnace_rtg_off.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_drill.name=Automatic Mining Drill
|
||||
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_exposure_chamber.name=Exposure Chamber
|
||||
tile.machine_fel.name=FEL
|
||||
tile.machine_fensu.name=FEnSU
|
||||
tile.machine_fensu.name=FEnSU (LEGACY)
|
||||
tile.machine_flare.name=Flare Stack
|
||||
tile.machine_fluidtank.name=Tank
|
||||
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_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_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_mining_laser.name=Mining Laser
|
||||
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_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_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_selenium.name=Radial Performance Engine
|
||||
tile.machine_shredder.name=Shredder
|
||||
|
||||
@ -238,40 +238,40 @@ book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The part
|
||||
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.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.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.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.title3=Barre di combustibile
|
||||
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.title4=Barre di regolazione
|
||||
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.title5=Barre di regolazione - Usi
|
||||
book.rbmk.title5.scale=0.9
|
||||
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 di controllo automatiche
|
||||
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=Caldaie
|
||||
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 di neutroni
|
||||
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=Assorbitore di neutroni
|
||||
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=Ritardante in grafite
|
||||
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=Colonne strutturali
|
||||
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 di comando
|
||||
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=Usi della console
|
||||
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 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=Combustibile nucleare
|
||||
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.page2=Durante l’operazione del reattore, verrà generato del §lcalore§r. Il calore si propagherà attraverso i componenti del reattore, decrementando nel contempo. L’obiettivo è 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=Carburante
|
||||
book.rbmk.page3=Le §lbarre di carburante§r cattureranno il flusso di neutroni, causando una reazione fissile all’interno 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 Controllo
|
||||
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 Controllo
|
||||
book.rbmk.page5=In mezzo all’interfaccia c’è l’indicatore dell’inserimento 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.title6=Barre 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 l’inserimento e la profondità da raggiungere.
|
||||
book.rbmk.title7=Canali per Vapore
|
||||
book.rbmk.page7=I §lcanali per vapore§r sono l’unico 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.title8=Riflettore Neutronico
|
||||
book.rbmk.page8=Il §lriflettore neutronico§r bloccherà i neutroni che vi passano attraverso, riflettendoli verso la loro direzione d’arrivo. Sono utili per utilizzare flussi che altrimenti verrebbero sprecati.
|
||||
book.rbmk.title9=Catturatore 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.title10=Moderatori di 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.title11=Colonna Strutturale
|
||||
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.title12=Console
|
||||
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.title13=Utilizzare la 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.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 l’inserimento totale di tutte le barre.
|
||||
book.rbmk.title15=Carburante
|
||||
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 l’operazione normale. L’efficacia dei neutroni dipende dal tipo, la maggior parte dei carburanti si §lscinde in neutroni lenti§r.
|
||||
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.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.
|
||||
@ -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.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.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.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
|
||||
@ -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.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.title14=La pila Chicago
|
||||
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.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 §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.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.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.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.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.
|
||||
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.
|
||||
|
||||
#TODO: Rivedere, correggere errori di battitura
|
||||
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.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
|
||||
@ -1777,139 +1702,140 @@ hbmpseudofluid.pf6=Plutonium Hexafluoride
|
||||
hbmpseudofluid.mud_heavy=Heavy Sludge Fraction
|
||||
hbmpseudofluid.mud=Poisonous Sludge Gas
|
||||
|
||||
hbmmat.actinium227=Actinium-227
|
||||
hbmmat.advancedalloy=Advanced Alloy
|
||||
hbmmat.aluminum=Aluminium
|
||||
hbmmat.americiumrg=Reactor-Grade Americium
|
||||
hbmmat.americium241=Americium-241
|
||||
hbmmat.americium242=Americium-242
|
||||
hbmmat.arsenic=Arsenic
|
||||
hbmmat.arsenicbronze=Arsenic Bronze
|
||||
hbmmat.asbestos=Asbestos
|
||||
#TODO: Translate all this
|
||||
hbmmat.actinium227=Attinio-227
|
||||
hbmmat.advancedalloy=Lega Avanzata
|
||||
hbmmat.aluminum=Alluminio
|
||||
hbmmat.americiumrg=Americio da Reattore
|
||||
hbmmat.americium241=Americio-241
|
||||
hbmmat.americium242=Americio-242
|
||||
hbmmat.arsenic=Arsenico
|
||||
hbmmat.arsenicbronze=Bronzo Arsenicale
|
||||
hbmmat.asbestos=Amianto
|
||||
hbmmat.bakelite=Bakelite
|
||||
hbmmat.beryllium=Beryllium
|
||||
hbmmat.bismuth=Bismuth
|
||||
hbmmat.bismuthbronze=Bismuth Bronze
|
||||
hbmmat.borax=Borax
|
||||
hbmmat.boron=Boron
|
||||
hbmmat.cadmium=Cadmium
|
||||
hbmmat.calcium=Calcium
|
||||
hbmmat.carbon=Carbon
|
||||
hbmmat.cdalloy=Cadmium Steel
|
||||
hbmmat.cinnabar=Cinnabar
|
||||
hbmmat.cmbsteel=Combine Steel
|
||||
hbmmat.coal=Coal
|
||||
hbmmat.coalcoke=Coal Coke
|
||||
hbmmat.cobalt=Cobalt
|
||||
hbmmat.cobalt60=Cobalt-60
|
||||
hbmmat.beryllium=Berillio
|
||||
hbmmat.bismuth=Bismuto
|
||||
hbmmat.bismuthbronze=Bronzo di Bismuto
|
||||
hbmmat.borax=Borace
|
||||
hbmmat.boron=Boro
|
||||
hbmmat.cadmium=Cadmio
|
||||
hbmmat.calcium=Calcio
|
||||
hbmmat.carbon=Carbonio
|
||||
hbmmat.cdalloy=Acciaio di Cadmio
|
||||
hbmmat.cinnabar=Cinabro
|
||||
hbmmat.cmbsteel=Acciaio Combine
|
||||
hbmmat.coal=Carbone
|
||||
hbmmat.coalcoke=Coke di Carbone
|
||||
hbmmat.cobalt=Cobalto
|
||||
hbmmat.cobalt60=Cobalto-60
|
||||
hbmmat.coltan=Coltan
|
||||
hbmmat.copper=Copper
|
||||
hbmmat.copper=Rame
|
||||
hbmmat.desh=Desh
|
||||
hbmmat.dineutronium=Dineutronium
|
||||
hbmmat.durasteel=High-Speed Steel
|
||||
hbmmat.euphemium=Euphemium
|
||||
hbmmat.ferrouranium=Ferrouranium
|
||||
hbmmat.fiberglass=Fiberglass
|
||||
hbmmat.dineutronium=Dineutronio
|
||||
hbmmat.durasteel=Acciaio Super Rapido
|
||||
hbmmat.euphemium=Euphemio
|
||||
hbmmat.ferrouranium=Ferrouranio
|
||||
hbmmat.fiberglass=Vetroresina
|
||||
hbmmat.fluorite=Fluorite
|
||||
hbmmat.flux=Flux
|
||||
hbmmat.ghiorsium336=Ghiorsium-336
|
||||
hbmmat.gold=Gold
|
||||
hbmmat.gold198=Gold-198
|
||||
hbmmat.graphene=Graphene
|
||||
hbmmat.graphite=Graphite
|
||||
hbmmat.hematite=Hematite
|
||||
hbmmat.iron=Iron
|
||||
hbmmat.lapis=Lapis Lazuli
|
||||
hbmmat.lead=Lead
|
||||
hbmmat.lead209=Lead-209
|
||||
hbmmat.lignitecoke=Lignite Coke
|
||||
hbmmat.flux=Flussante
|
||||
hbmmat.ghiorsium336=Ghiorsio-336
|
||||
hbmmat.gold=Oro
|
||||
hbmmat.gold198=Oro-198
|
||||
hbmmat.graphene=Grafene
|
||||
hbmmat.graphite=Grafite
|
||||
hbmmat.hematite=Ematite
|
||||
hbmmat.iron=Ferro
|
||||
hbmmat.lapis=Lapis Lazulo
|
||||
hbmmat.lead=Piombo
|
||||
hbmmat.lead209=Piombo-209
|
||||
hbmmat.lignitecoke=Coke di Lignite
|
||||
hbmmat.lignite=Lignite
|
||||
hbmmat.lithium=Lithium
|
||||
hbmmat.magnetizedtungsten=Magnetized Tungsten
|
||||
hbmmat.lithium=Litio
|
||||
hbmmat.magnetizedtungsten=Tungsteno Magnetizzato
|
||||
hbmmat.malachite=Malachite
|
||||
hbmmat.meteoriciron=Meteoric Iron
|
||||
hbmmat.mingrade=Minecraft Grade Copper
|
||||
hbmmat.neodymium=Neodymium
|
||||
hbmmat.neptunium237=Neptunium-237
|
||||
hbmmat.niobium=Niobium
|
||||
hbmmat.obsidian=Obsidian
|
||||
hbmmat.osmiridium=Osmiridium
|
||||
hbmmat.petcoke=Petroleum Coke
|
||||
hbmmat.pigiron=Pig Iron
|
||||
hbmmat.plutonium=Plutonium
|
||||
hbmmat.plutonium238=Plutonium-238
|
||||
hbmmat.plutonium239=Plutonium-239
|
||||
hbmmat.plutonium240=Plutonium-240
|
||||
hbmmat.plutonium241=Plutonium-241
|
||||
hbmmat.plutoniumrg=Reactor-Grade Plutonium
|
||||
hbmmat.polonium210=Polonium-210
|
||||
hbmmat.polymer=Polymer
|
||||
hbmmat.radium226=Radium-226
|
||||
hbmmat.redphosphorus=Red Phosphorus
|
||||
hbmmat.redstone=Redstone
|
||||
hbmmat.rubber=Rubber
|
||||
hbmmat.saltpeter=Niter
|
||||
hbmmat.meteoriciron=Ferro Meteorico
|
||||
hbmmat.mingrade=Rame Minecraft-Grade
|
||||
hbmmat.neodymium=Neodimio
|
||||
hbmmat.neptunium237=Nettunio-237
|
||||
hbmmat.niobium=Niobio
|
||||
hbmmat.obsidian=Ossidiana
|
||||
hbmmat.osmiridium=Osmiridio
|
||||
hbmmat.petcoke=Coke di Petrolio
|
||||
hbmmat.pigiron=Ferro del Porco
|
||||
hbmmat.plutonium=Plutonio
|
||||
hbmmat.plutonium238=Plutonio-238
|
||||
hbmmat.plutonium239=Plutonio-239
|
||||
hbmmat.plutonium240=Plutonio-240
|
||||
hbmmat.plutonium241=Plutonio-241
|
||||
hbmmat.plutoniumrg=Plutonio da Reattore
|
||||
hbmmat.polonium210=Polonio-210
|
||||
hbmmat.polymer=Polimero
|
||||
hbmmat.radium226=Radio-226
|
||||
hbmmat.redphosphorus=Fosforo Rosso
|
||||
hbmmat.redstone=Pietrarossa
|
||||
hbmmat.rubber=Gomma
|
||||
hbmmat.saltpeter=Salnitro
|
||||
hbmmat.saturnite=Saturnite
|
||||
hbmmat.schrabidate=Ferric Schrabidate
|
||||
hbmmat.schrabidium=Schrabidium
|
||||
hbmmat.schraranium=Schraranium
|
||||
hbmmat.silicon=Silicon
|
||||
hbmmat.slag=Slag
|
||||
hbmmat.sodium=Sodium
|
||||
hbmmat.solinium=Solinium
|
||||
hbmmat.schrabidate=Schrabidio Ferrico
|
||||
hbmmat.schrabidium=Schrabidio
|
||||
hbmmat.schraranium=Schraranio
|
||||
hbmmat.silicon=Silicio
|
||||
hbmmat.slag=Scorie
|
||||
hbmmat.sodium=Sodio
|
||||
hbmmat.solinium=Solinio
|
||||
hbmmat.starmetal=Starmetal
|
||||
hbmmat.steel=Steel
|
||||
hbmmat.stone=Stone
|
||||
hbmmat.sulfur=Sulfur
|
||||
hbmmat.tantalum=Tantalum
|
||||
hbmmat.tcalloy=Technetium Steel
|
||||
hbmmat.technetium99=Technetium-99
|
||||
hbmmat.titanium=Titanium
|
||||
hbmmat.thorium232=Thorium-232
|
||||
hbmmat.tungsten=Tungsten
|
||||
hbmmat.uranium=Uranium
|
||||
hbmmat.uranium233=Uranium-233
|
||||
hbmmat.uranium235=Uranium-235
|
||||
hbmmat.uranium238=Uranium-238
|
||||
hbmmat.watzmud=Poisonous Mud
|
||||
hbmmat.whitephosphorus=White Phosphorus
|
||||
hbmmat.steel=Acciaio
|
||||
hbmmat.stone=Pietra
|
||||
hbmmat.sulfur=Zolfo
|
||||
hbmmat.tantalum=Tantalio
|
||||
hbmmat.tcalloy=Acciaio di Tecnezio
|
||||
hbmmat.technetium99=Tecnezio-99
|
||||
hbmmat.titanium=Titanio
|
||||
hbmmat.thorium232=Torio-232
|
||||
hbmmat.tungsten=Tungsteno
|
||||
hbmmat.uranium=Uranio
|
||||
hbmmat.uranium233=Uranio-233
|
||||
hbmmat.uranium235=Uranio-235
|
||||
hbmmat.uranium238=Uranio-238
|
||||
hbmmat.watzmud=Fango Tossico
|
||||
hbmmat.whitephosphorus=Fosforo Bianco
|
||||
hbmmat.workersalloy=Desh
|
||||
hbmmat.wroughtiron=Wroght Iron
|
||||
hbmmat.zirconium=Zirconium
|
||||
hbmmat.wroughtiron=Ferro Battuto
|
||||
hbmmat.zirconium=Zirconio
|
||||
|
||||
matshape.block=%s Block
|
||||
matshape.blocks=%s Blocks
|
||||
matshape.ingot=%s Ingot
|
||||
matshape.ingots=%s Ingots
|
||||
matshape.nugget=%s Nugget
|
||||
matshape.nuggets=%s Nuggets
|
||||
matshape.quantum=%s Quantum
|
||||
matshape.quanta=%s Quanta
|
||||
matshape.block=%s Blocco
|
||||
matshape.blocks=%s Blocchi
|
||||
matshape.ingot=%s Lingotto
|
||||
matshape.ingots=%s Lingotti
|
||||
matshape.nugget=%s Pepita
|
||||
matshape.nuggets=%s Pepite
|
||||
matshape.quantum=%s Quanto
|
||||
matshape.quanta=%s Quanti
|
||||
|
||||
icffuel.beryllium=Beryllium
|
||||
icffuel.boron=Boron
|
||||
icffuel.carbon=Carbon
|
||||
icffuel.calcium=Calcium
|
||||
icffuel.chlorine=Chlorine
|
||||
icffuel.deuterium=Deuterium
|
||||
icffuel.helium3=Helium-3
|
||||
icffuel.helium4=Helium-4
|
||||
icffuel.hydrogen=Hydrogen
|
||||
icffuel.lithium=Lithium
|
||||
icffuel.oxygen=Oxygen
|
||||
icffuel.sodium=Sodium
|
||||
icffuel.tritium=Tritium
|
||||
icffuel.beryllium=Berillio
|
||||
icffuel.boron=Boro
|
||||
icffuel.carbon=Carbonio
|
||||
icffuel.calcium=Calcio
|
||||
icffuel.chlorine=Cloro
|
||||
icffuel.deuterium=Deuterio
|
||||
icffuel.helium3=Elio-3
|
||||
icffuel.helium4=Elio-4
|
||||
icffuel.hydrogen=Idrogeno
|
||||
icffuel.lithium=Litio
|
||||
icffuel.oxygen=Ossigeno
|
||||
icffuel.sodium=Sodio
|
||||
icffuel.tritium=Trizio
|
||||
|
||||
info.asbestos=My lungs are burning.
|
||||
info.coaldust=It's hard to breathe here.
|
||||
info.coil=Coil Strength
|
||||
info.templatefolder=Created with %s
|
||||
info.asbestos=I miei polmoni bruciano.
|
||||
info.coaldust=È faticoso respirare qua.
|
||||
info.coil=Potenza Bobina
|
||||
info.templatefolder=Creato con %s
|
||||
info.template_in=Input:
|
||||
info.template_in_p=Inputs:
|
||||
info.template_in_p=Input:
|
||||
info.template_out=Output:
|
||||
info.template_out_p=Outputs:
|
||||
info.template_seconds=seconds
|
||||
info.template_time=Production Time:
|
||||
info.template_out_p=Output:
|
||||
info.template_seconds=secondi
|
||||
info.template_time=Tempo di Produzione:
|
||||
|
||||
item.acetylene_torch.name=Acetylene Welding Torch
|
||||
item.ajr_boots.name=Steel Ranger Boots
|
||||
|
||||
15
src/main/resources/assets/hbm/manual/fluids/crude_oil.json
Normal 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]]"
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,121 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'battery.blend'
|
||||
# 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
|
||||
v 0.687500 1.875000 -0.875000
|
||||
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 -1.0000 0.0000 0.0000
|
||||
s off
|
||||
f 8/1/1 14/2/1 22/3/1
|
||||
f 35/4/2 26/5/2 3/6/2
|
||||
f 20/7/3 3/8/3 26/9/3
|
||||
f 20/10/4 16/11/4 10/12/4
|
||||
f 24/13/4 15/14/4 26/15/4
|
||||
f 10/16/5 12/17/5 17/18/5
|
||||
f 10/16/2 8/1/2 7/19/2
|
||||
f 12/20/3 18/21/3 17/22/3
|
||||
f 22/23/6 20/24/6 19/25/6
|
||||
f 14/26/7 16/11/7 15/27/7
|
||||
f 16/11/8 8/1/8 9/28/8
|
||||
f 27/29/7 25/30/7 30/31/7
|
||||
f 29/32/9 23/33/9 28/34/9
|
||||
f 15/35/2 6/36/2 14/37/2
|
||||
f 27/29/4 36/38/4 44/39/4
|
||||
f 14/40/1 2/41/1 29/42/1
|
||||
f 42/43/10 38/44/10 33/45/10
|
||||
f 30/46/6 28/34/6 27/47/6
|
||||
f 1/48/7 24/13/7 23/33/7
|
||||
f 24/13/8 6/36/8 5/49/8
|
||||
f 40/50/3 4/51/3 44/52/3
|
||||
f 11/53/2 32/54/2 18/55/2
|
||||
f 32/54/5 34/56/5 37/57/5
|
||||
f 35/58/1 30/31/1 47/59/1
|
||||
f 34/60/3 38/44/3 37/61/3
|
||||
f 42/43/6 40/62/6 39/63/6
|
||||
f 19/64/7 35/65/7 22/66/7
|
||||
f 37/67/4 39/68/4 36/69/4
|
||||
f 48/70/10 44/52/10 4/51/10
|
||||
f 47/71/9 43/72/9 46/73/9
|
||||
f 41/74/1 33/75/1 31/76/1
|
||||
f 48/70/6 46/73/6 45/77/6
|
||||
f 60/78/9 56/79/9 57/80/9
|
||||
f 52/81/1 56/79/1 54/82/1
|
||||
f 60/83/4 58/84/4 62/85/4
|
||||
f 64/86/10 54/82/10 59/87/10
|
||||
f 58/84/8 52/81/8 61/88/8
|
||||
f 58/84/7 56/89/7 55/90/7
|
||||
f 54/91/6 60/78/6 59/92/6
|
||||
f 64/86/3 50/93/3 49/94/3
|
||||
f 52/95/2 62/96/2 61/97/2
|
||||
f 62/96/5 50/98/5 63/99/5
|
||||
f 76/100/9 72/101/9 73/102/9
|
||||
f 68/103/1 72/101/1 70/104/1
|
||||
f 76/105/4 74/106/4 78/107/4
|
||||
f 80/108/10 70/104/10 75/109/10
|
||||
f 74/106/8 68/103/8 77/110/8
|
||||
f 74/106/7 72/111/7 71/112/7
|
||||
f 70/113/6 76/100/6 75/114/6
|
||||
f 80/108/3 66/115/3 65/116/3
|
||||
f 68/117/2 78/118/2 77/119/2
|
||||
f 78/118/5 66/120/5 79/121/5
|
||||
f 22/3/1 11/122/1 12/123/1
|
||||
f 12/123/1 7/124/1 8/1/1
|
||||
f 8/1/1 13/125/1 14/2/1
|
||||
f 14/2/1 21/126/1 22/3/1
|
||||
f 22/3/1 12/123/1 8/1/1
|
||||
f 35/4/2 36/127/2 26/5/2
|
||||
f 20/7/3 21/128/3 3/8/3
|
||||
f 10/12/4 17/129/4 18/130/4
|
||||
f 18/130/4 19/131/4 20/10/4
|
||||
f 20/10/4 15/132/4 16/11/4
|
||||
f 16/11/4 9/28/4 10/12/4
|
||||
f 10/12/4 18/130/4 20/10/4
|
||||
f 26/15/4 27/133/4 28/134/4
|
||||
f 28/134/4 23/135/4 24/13/4
|
||||
f 24/13/4 5/49/4 15/14/4
|
||||
f 15/14/4 20/136/4 26/15/4
|
||||
f 26/15/4 28/134/4 24/13/4
|
||||
f 10/16/5 7/19/5 12/17/5
|
||||
f 10/16/2 9/28/2 8/1/2
|
||||
f 12/20/3 11/137/3 18/21/3
|
||||
f 22/23/6 21/138/6 20/24/6
|
||||
f 14/26/7 13/125/7 16/11/7
|
||||
f 16/11/8 13/125/8 8/1/8
|
||||
f 27/29/7 43/72/7 25/30/7
|
||||
f 29/32/9 1/48/9 23/33/9
|
||||
f 15/35/2 5/49/2 6/36/2
|
||||
f 44/39/4 45/139/4 46/140/4
|
||||
f 46/140/4 43/141/4 27/29/4
|
||||
f 27/29/4 26/5/4 36/38/4
|
||||
f 36/38/4 40/142/4 44/39/4
|
||||
f 44/39/4 46/140/4 27/29/4
|
||||
f 29/42/1 30/143/1 3/144/1
|
||||
f 3/144/1 21/145/1 14/40/1
|
||||
f 14/40/1 6/36/1 2/41/1
|
||||
f 2/41/1 1/146/1 29/42/1
|
||||
f 29/42/1 3/144/1 14/40/1
|
||||
f 42/43/10 39/63/10 38/44/10
|
||||
f 30/46/6 29/32/6 28/34/6
|
||||
f 1/48/7 2/41/7 24/13/7
|
||||
f 24/13/8 2/41/8 6/36/8
|
||||
f 40/50/3 41/147/3 4/51/3
|
||||
f 11/53/2 31/148/2 32/54/2
|
||||
f 32/54/5 31/148/5 34/56/5
|
||||
f 47/59/1 48/149/1 4/150/1
|
||||
f 4/150/1 41/151/1 35/58/1
|
||||
f 35/58/1 3/6/1 30/31/1
|
||||
f 30/31/1 25/152/1 47/59/1
|
||||
f 47/59/1 4/150/1 35/58/1
|
||||
f 34/60/3 33/45/3 38/44/3
|
||||
f 42/43/6 41/153/6 40/62/6
|
||||
f 19/64/7 36/154/7 35/65/7
|
||||
f 36/69/4 19/64/4 18/55/4
|
||||
f 18/55/4 32/155/4 37/67/4
|
||||
f 37/67/4 38/156/4 39/68/4
|
||||
f 39/68/4 40/157/4 36/69/4
|
||||
f 36/69/4 18/55/4 37/67/4
|
||||
f 48/70/10 45/77/10 44/52/10
|
||||
f 47/71/9 25/30/9 43/72/9
|
||||
f 31/76/1 11/53/1 22/66/1
|
||||
f 22/66/1 35/158/1 41/74/1
|
||||
f 41/74/1 42/159/1 33/75/1
|
||||
f 33/75/1 34/160/1 31/76/1
|
||||
f 31/76/1 22/66/1 41/74/1
|
||||
f 48/70/6 47/71/6 46/73/6
|
||||
f 60/78/9 53/161/9 56/79/9
|
||||
f 54/82/1 49/94/1 50/98/1
|
||||
f 50/98/1 51/162/1 52/81/1
|
||||
f 52/81/1 55/90/1 56/79/1
|
||||
f 56/79/1 53/161/1 54/82/1
|
||||
f 54/82/1 50/98/1 52/81/1
|
||||
f 62/85/4 63/163/4 64/164/4
|
||||
f 64/164/4 59/165/4 60/83/4
|
||||
f 60/83/4 57/166/4 58/84/4
|
||||
f 58/84/4 61/88/4 62/85/4
|
||||
f 62/85/4 64/164/4 60/83/4
|
||||
f 64/86/10 49/94/10 54/82/10
|
||||
f 58/84/8 55/90/8 52/81/8
|
||||
f 58/84/7 57/167/7 56/89/7
|
||||
f 54/91/6 53/161/6 60/78/6
|
||||
f 64/86/3 63/168/3 50/93/3
|
||||
f 52/95/2 51/162/2 62/96/2
|
||||
f 62/96/5 51/162/5 50/98/5
|
||||
f 76/100/9 69/169/9 72/101/9
|
||||
f 70/104/1 65/116/1 66/120/1
|
||||
f 66/120/1 67/170/1 68/103/1
|
||||
f 68/103/1 71/112/1 72/101/1
|
||||
f 72/101/1 69/169/1 70/104/1
|
||||
f 70/104/1 66/120/1 68/103/1
|
||||
f 78/107/4 79/171/4 80/172/4
|
||||
f 80/172/4 75/173/4 76/105/4
|
||||
f 76/105/4 73/174/4 74/106/4
|
||||
f 74/106/4 77/110/4 78/107/4
|
||||
f 78/107/4 80/172/4 76/105/4
|
||||
f 80/108/10 65/116/10 70/104/10
|
||||
f 74/106/8 71/112/8 68/103/8
|
||||
f 74/106/7 73/175/7 72/111/7
|
||||
f 70/113/6 69/169/6 76/100/6
|
||||
f 80/108/3 79/176/3 66/115/3
|
||||
f 68/117/2 67/170/2 78/118/2
|
||||
f 78/118/5 67/170/5 66/120/5
|
||||
f 32/49/7 38/50/7 46/51/7
|
||||
f 59/52/8 50/53/8 27/54/8
|
||||
f 44/55/9 27/56/9 50/57/9
|
||||
f 44/58/10 40/59/10 34/60/10
|
||||
f 48/61/10 39/62/10 50/63/10
|
||||
f 34/64/11 36/65/11 41/66/11
|
||||
f 34/64/8 32/49/8 31/67/8
|
||||
f 36/68/9 42/69/9 41/70/9
|
||||
f 46/71/12 44/72/12 43/73/12
|
||||
f 38/74/13 40/59/13 39/75/13
|
||||
f 40/59/14 32/49/14 33/76/14
|
||||
f 51/77/13 49/78/13 54/79/13
|
||||
f 53/80/15 47/81/15 52/82/15
|
||||
f 39/83/8 30/84/8 38/85/8
|
||||
f 51/77/10 60/86/10 68/87/10
|
||||
f 38/88/7 26/89/7 53/90/7
|
||||
f 66/91/16 62/92/16 57/93/16
|
||||
f 54/94/12 52/82/12 51/95/12
|
||||
f 25/96/13 48/61/13 47/81/13
|
||||
f 48/61/14 30/84/14 29/97/14
|
||||
f 64/98/9 28/99/9 68/100/9
|
||||
f 35/101/8 56/102/8 42/103/8
|
||||
f 56/102/11 58/104/11 61/105/11
|
||||
f 59/106/7 54/79/7 71/107/7
|
||||
f 58/108/9 62/92/9 61/109/9
|
||||
f 66/91/12 64/110/12 63/111/12
|
||||
f 43/112/13 59/113/13 46/114/13
|
||||
f 61/115/10 63/116/10 60/117/10
|
||||
f 72/118/16 68/100/16 28/99/16
|
||||
f 71/119/15 67/120/15 70/121/15
|
||||
f 65/122/7 57/123/7 55/124/7
|
||||
f 72/118/12 70/121/12 69/125/12
|
||||
f 84/126/15 80/127/15 81/128/15
|
||||
f 76/129/7 80/127/7 78/130/7
|
||||
f 84/131/10 82/132/10 86/133/10
|
||||
f 88/134/16 78/130/16 83/135/16
|
||||
f 82/132/14 76/129/14 85/136/14
|
||||
f 82/132/13 80/137/13 79/138/13
|
||||
f 78/139/12 84/126/12 83/140/12
|
||||
f 88/134/9 74/141/9 73/142/9
|
||||
f 76/143/8 86/144/8 85/145/8
|
||||
f 86/144/11 74/146/11 87/147/11
|
||||
f 100/148/15 96/149/15 97/150/15
|
||||
f 92/151/7 96/149/7 94/152/7
|
||||
f 100/153/10 98/154/10 102/155/10
|
||||
f 104/156/16 94/152/16 99/157/16
|
||||
f 98/154/14 92/151/14 101/158/14
|
||||
f 98/154/13 96/159/13 95/160/13
|
||||
f 94/161/12 100/148/12 99/162/12
|
||||
f 104/156/9 90/163/9 89/164/9
|
||||
f 92/165/8 102/166/8 101/167/8
|
||||
f 102/166/11 90/168/11 103/169/11
|
||||
f 46/51/7 35/170/7 36/171/7
|
||||
f 36/171/7 31/172/7 32/49/7
|
||||
f 32/49/7 37/173/7 38/50/7
|
||||
f 38/50/7 45/174/7 46/51/7
|
||||
f 46/51/7 36/171/7 32/49/7
|
||||
f 59/52/8 60/175/8 50/53/8
|
||||
f 44/55/9 45/176/9 27/56/9
|
||||
f 34/60/10 41/177/10 42/178/10
|
||||
f 42/178/10 43/179/10 44/58/10
|
||||
f 44/58/10 39/180/10 40/59/10
|
||||
f 40/59/10 33/76/10 34/60/10
|
||||
f 34/60/10 42/178/10 44/58/10
|
||||
f 50/63/10 51/181/10 52/182/10
|
||||
f 52/182/10 47/183/10 48/61/10
|
||||
f 48/61/10 29/97/10 39/62/10
|
||||
f 39/62/10 44/184/10 50/63/10
|
||||
f 50/63/10 52/182/10 48/61/10
|
||||
f 34/64/11 31/67/11 36/65/11
|
||||
f 34/64/8 33/76/8 32/49/8
|
||||
f 36/68/9 35/185/9 42/69/9
|
||||
f 46/71/12 45/186/12 44/72/12
|
||||
f 38/74/13 37/173/13 40/59/13
|
||||
f 40/59/14 37/173/14 32/49/14
|
||||
f 51/77/13 67/120/13 49/78/13
|
||||
f 53/80/15 25/96/15 47/81/15
|
||||
f 39/83/8 29/97/8 30/84/8
|
||||
f 68/87/10 69/187/10 70/188/10
|
||||
f 70/188/10 67/189/10 51/77/10
|
||||
f 51/77/10 50/53/10 60/86/10
|
||||
f 60/86/10 64/190/10 68/87/10
|
||||
f 68/87/10 70/188/10 51/77/10
|
||||
f 53/90/7 54/191/7 27/192/7
|
||||
f 27/192/7 45/193/7 38/88/7
|
||||
f 38/88/7 30/84/7 26/89/7
|
||||
f 26/89/7 25/194/7 53/90/7
|
||||
f 53/90/7 27/192/7 38/88/7
|
||||
f 66/91/16 63/111/16 62/92/16
|
||||
f 54/94/12 53/80/12 52/82/12
|
||||
f 25/96/13 26/89/13 48/61/13
|
||||
f 48/61/14 26/89/14 30/84/14
|
||||
f 64/98/9 65/195/9 28/99/9
|
||||
f 35/101/8 55/196/8 56/102/8
|
||||
f 56/102/11 55/196/11 58/104/11
|
||||
f 71/107/7 72/197/7 28/198/7
|
||||
f 28/198/7 65/199/7 59/106/7
|
||||
f 59/106/7 27/54/7 54/79/7
|
||||
f 54/79/7 49/200/7 71/107/7
|
||||
f 71/107/7 28/198/7 59/106/7
|
||||
f 58/108/9 57/93/9 62/92/9
|
||||
f 66/91/12 65/201/12 64/110/12
|
||||
f 43/112/13 60/202/13 59/113/13
|
||||
f 60/117/10 43/112/10 42/103/10
|
||||
f 42/103/10 56/203/10 61/115/10
|
||||
f 61/115/10 62/204/10 63/116/10
|
||||
f 63/116/10 64/205/10 60/117/10
|
||||
f 60/117/10 42/103/10 61/115/10
|
||||
f 72/118/16 69/125/16 68/100/16
|
||||
f 71/119/15 49/78/15 67/120/15
|
||||
f 55/124/7 35/101/7 46/114/7
|
||||
f 46/114/7 59/206/7 65/122/7
|
||||
f 65/122/7 66/207/7 57/123/7
|
||||
f 57/123/7 58/208/7 55/124/7
|
||||
f 55/124/7 46/114/7 65/122/7
|
||||
f 72/118/12 71/119/12 70/121/12
|
||||
f 84/126/15 77/209/15 80/127/15
|
||||
f 78/130/7 73/142/7 74/146/7
|
||||
f 74/146/7 75/210/7 76/129/7
|
||||
f 76/129/7 79/138/7 80/127/7
|
||||
f 80/127/7 77/209/7 78/130/7
|
||||
f 78/130/7 74/146/7 76/129/7
|
||||
f 86/133/10 87/211/10 88/212/10
|
||||
f 88/212/10 83/213/10 84/131/10
|
||||
f 84/131/10 81/214/10 82/132/10
|
||||
f 82/132/10 85/136/10 86/133/10
|
||||
f 86/133/10 88/212/10 84/131/10
|
||||
f 88/134/16 73/142/16 78/130/16
|
||||
f 82/132/14 79/138/14 76/129/14
|
||||
f 82/132/13 81/215/13 80/137/13
|
||||
f 78/139/12 77/209/12 84/126/12
|
||||
f 88/134/9 87/216/9 74/141/9
|
||||
f 76/143/8 75/210/8 86/144/8
|
||||
f 86/144/11 75/210/11 74/146/11
|
||||
f 100/148/15 93/217/15 96/149/15
|
||||
f 94/152/7 89/164/7 90/168/7
|
||||
f 90/168/7 91/218/7 92/151/7
|
||||
f 92/151/7 95/160/7 96/149/7
|
||||
f 96/149/7 93/217/7 94/152/7
|
||||
f 94/152/7 90/168/7 92/151/7
|
||||
f 102/155/10 103/219/10 104/220/10
|
||||
f 104/220/10 99/221/10 100/153/10
|
||||
f 100/153/10 97/222/10 98/154/10
|
||||
f 98/154/10 101/158/10 102/155/10
|
||||
f 102/155/10 104/220/10 100/153/10
|
||||
f 104/156/16 89/164/16 94/152/16
|
||||
f 98/154/14 95/160/14 92/151/14
|
||||
f 98/154/13 97/223/13 96/159/13
|
||||
f 94/161/12 93/217/12 100/148/12
|
||||
f 104/156/9 103/224/9 90/163/9
|
||||
f 92/165/8 91/218/8 102/166/8
|
||||
f 102/166/11 91/218/11 90/168/11
|
||||
o Socket
|
||||
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.7071 -0.7071 0.0000
|
||||
s off
|
||||
f 83/177/11 82/178/11 81/179/11
|
||||
f 88/180/12 103/181/12 86/182/12
|
||||
f 83/177/13 92/183/13 84/184/13
|
||||
f 82/178/14 90/185/14 81/179/14
|
||||
f 84/184/15 91/186/15 82/178/15
|
||||
f 81/179/12 89/187/12 83/177/12
|
||||
f 87/188/16 90/189/16 85/190/16
|
||||
f 85/190/16 91/186/16 86/191/16
|
||||
f 86/191/16 92/192/16 88/193/16
|
||||
f 88/193/16 89/194/16 87/188/16
|
||||
f 94/195/15 95/196/15 93/197/15
|
||||
f 97/198/12 99/199/12 98/200/12
|
||||
f 103/181/16 101/201/16 102/202/16
|
||||
f 95/196/16 98/200/16 93/197/16
|
||||
f 96/203/13 97/198/13 95/196/13
|
||||
f 93/197/14 99/204/14 94/205/14
|
||||
f 85/206/15 101/201/15 87/207/15
|
||||
f 87/208/14 104/209/14 88/210/14
|
||||
f 86/211/13 102/202/13 85/212/13
|
||||
f 106/213/15 107/214/15 105/215/15
|
||||
f 109/216/12 111/217/12 110/218/12
|
||||
f 107/214/16 110/218/16 105/215/16
|
||||
f 108/219/13 109/216/13 107/214/13
|
||||
f 105/215/14 111/220/14 106/221/14
|
||||
f 114/222/12 115/223/12 113/224/12
|
||||
f 117/225/15 119/226/15 118/227/15
|
||||
f 115/223/16 118/227/16 113/224/16
|
||||
f 116/228/14 117/225/14 115/223/14
|
||||
f 113/224/13 119/229/13 114/230/13
|
||||
f 122/231/12 123/232/12 121/233/12
|
||||
f 125/234/15 127/235/15 126/236/15
|
||||
f 123/232/16 126/236/16 121/233/16
|
||||
f 124/237/14 125/234/14 123/232/14
|
||||
f 121/233/13 127/238/13 122/239/13
|
||||
f 130/240/13 131/241/13 129/242/13
|
||||
f 133/243/14 135/244/14 134/245/14
|
||||
f 131/241/16 134/245/16 129/242/16
|
||||
f 132/246/12 133/243/12 131/241/12
|
||||
f 129/242/15 135/247/15 130/248/15
|
||||
f 138/249/13 139/250/13 137/251/13
|
||||
f 141/252/14 143/253/14 142/254/14
|
||||
f 139/250/16 142/254/16 137/251/16
|
||||
f 140/255/12 141/252/12 139/250/12
|
||||
f 137/251/15 143/256/15 138/257/15
|
||||
f 146/258/14 147/259/14 145/260/14
|
||||
f 149/261/13 151/262/13 150/263/13
|
||||
f 147/259/16 150/263/16 145/260/16
|
||||
f 148/264/15 149/261/15 147/259/15
|
||||
f 145/260/12 151/265/12 146/266/12
|
||||
f 154/267/14 155/268/14 153/269/14
|
||||
f 157/270/13 159/271/13 158/272/13
|
||||
f 155/268/16 158/272/16 153/269/16
|
||||
f 156/273/15 157/270/15 155/268/15
|
||||
f 153/269/12 159/274/12 154/275/12
|
||||
f 162/276/13 177/277/13 161/278/13
|
||||
f 176/279/16 174/280/16 175/281/16
|
||||
f 172/282/16 170/283/16 171/284/16
|
||||
f 168/285/13 173/286/13 169/287/13
|
||||
f 167/288/14 171/289/14 166/290/14
|
||||
f 169/287/15 172/282/15 167/288/15
|
||||
f 166/291/12 170/292/12 168/285/12
|
||||
f 163/293/14 175/294/14 164/295/14
|
||||
f 161/278/15 176/279/15 163/293/15
|
||||
f 164/296/12 174/297/12 162/276/12
|
||||
f 179/298/13 193/299/13 178/300/13
|
||||
f 192/301/16 190/302/16 191/303/16
|
||||
f 188/304/16 186/305/16 187/306/16
|
||||
f 184/307/13 189/308/13 185/309/13
|
||||
f 183/310/14 187/311/14 182/312/14
|
||||
f 185/309/15 188/304/15 183/310/15
|
||||
f 182/313/12 186/314/12 184/307/12
|
||||
f 180/315/14 191/316/14 181/317/14
|
||||
f 178/300/15 192/301/15 180/315/15
|
||||
f 181/318/12 190/319/12 179/298/12
|
||||
f 194/320/16 195/321/16 165/322/16
|
||||
f 194/320/17 198/323/17 196/324/17
|
||||
f 197/325/15 200/326/15 198/323/15
|
||||
f 195/321/18 201/327/18 165/322/18
|
||||
f 202/328/12 203/329/12 201/327/12
|
||||
f 206/330/16 207/331/16 205/332/16
|
||||
f 206/330/17 210/333/17 208/334/17
|
||||
f 209/335/15 212/336/15 210/333/15
|
||||
f 207/331/18 213/337/18 205/332/18
|
||||
f 214/338/12 215/339/12 213/337/12
|
||||
f 169/287/11 166/340/11 168/341/11
|
||||
f 185/309/11 182/342/11 184/343/11
|
||||
f 180/315/11 179/344/11 178/300/11
|
||||
f 163/293/11 162/345/11 161/278/11
|
||||
f 218/346/15 219/347/15 220/348/15
|
||||
f 220/348/19 226/349/19 228/350/19
|
||||
f 221/351/12 224/352/12 223/353/12
|
||||
f 223/353/20 227/354/20 225/355/20
|
||||
f 226/349/11 227/354/11 228/350/11
|
||||
f 230/356/15 231/357/15 232/358/15
|
||||
f 232/358/19 238/359/19 240/360/19
|
||||
f 233/361/12 236/362/12 235/363/12
|
||||
f 235/363/20 239/364/20 237/365/20
|
||||
f 238/359/11 239/364/11 240/360/11
|
||||
f 83/177/11 84/184/11 82/178/11
|
||||
f 88/180/12 104/209/12 103/181/12
|
||||
f 83/177/13 89/366/13 92/183/13
|
||||
f 82/178/14 91/367/14 90/185/14
|
||||
f 84/184/15 92/192/15 91/186/15
|
||||
f 81/179/12 90/368/12 89/187/12
|
||||
f 87/188/16 89/194/16 90/189/16
|
||||
f 85/190/16 90/189/16 91/186/16
|
||||
f 86/191/16 91/186/16 92/192/16
|
||||
f 88/193/16 92/192/16 89/194/16
|
||||
f 94/195/15 96/369/15 95/196/15
|
||||
f 97/198/12 100/370/12 99/199/12
|
||||
f 103/181/16 104/209/16 101/201/16
|
||||
f 95/196/16 97/198/16 98/200/16
|
||||
f 96/203/13 100/371/13 97/198/13
|
||||
f 93/197/14 98/200/14 99/204/14
|
||||
f 85/206/15 102/202/15 101/201/15
|
||||
f 87/208/14 101/201/14 104/209/14
|
||||
f 86/211/13 103/181/13 102/202/13
|
||||
f 106/213/15 108/372/15 107/214/15
|
||||
f 109/216/12 112/373/12 111/217/12
|
||||
f 107/214/16 109/216/16 110/218/16
|
||||
f 108/219/13 112/374/13 109/216/13
|
||||
f 105/215/14 110/218/14 111/220/14
|
||||
f 114/222/12 116/375/12 115/223/12
|
||||
f 117/225/15 120/376/15 119/226/15
|
||||
f 115/223/16 117/225/16 118/227/16
|
||||
f 116/228/14 120/377/14 117/225/14
|
||||
f 113/224/13 118/227/13 119/229/13
|
||||
f 122/231/12 124/378/12 123/232/12
|
||||
f 125/234/15 128/379/15 127/235/15
|
||||
f 123/232/16 125/234/16 126/236/16
|
||||
f 124/237/14 128/380/14 125/234/14
|
||||
f 121/233/13 126/236/13 127/238/13
|
||||
f 130/240/13 132/381/13 131/241/13
|
||||
f 133/243/14 136/382/14 135/244/14
|
||||
f 131/241/16 133/243/16 134/245/16
|
||||
f 132/246/12 136/383/12 133/243/12
|
||||
f 129/242/15 134/245/15 135/247/15
|
||||
f 138/249/13 140/384/13 139/250/13
|
||||
f 141/252/14 144/385/14 143/253/14
|
||||
f 139/250/16 141/252/16 142/254/16
|
||||
f 140/255/12 144/386/12 141/252/12
|
||||
f 137/251/15 142/254/15 143/256/15
|
||||
f 146/258/14 148/387/14 147/259/14
|
||||
f 149/261/13 152/388/13 151/262/13
|
||||
f 147/259/16 149/261/16 150/263/16
|
||||
f 148/264/15 152/389/15 149/261/15
|
||||
f 145/260/12 150/263/12 151/265/12
|
||||
f 154/267/14 156/390/14 155/268/14
|
||||
f 157/270/13 160/391/13 159/271/13
|
||||
f 155/268/16 157/270/16 158/272/16
|
||||
f 156/273/15 160/392/15 157/270/15
|
||||
f 153/269/12 158/272/12 159/274/12
|
||||
f 162/276/13 174/297/13 177/277/13
|
||||
f 176/279/16 177/277/16 174/280/16
|
||||
f 172/282/16 173/286/16 170/283/16
|
||||
f 168/285/13 170/292/13 173/286/13
|
||||
f 167/288/14 172/282/14 171/289/14
|
||||
f 169/287/15 173/286/15 172/282/15
|
||||
f 166/291/12 171/393/12 170/292/12
|
||||
f 163/293/14 176/279/14 175/294/14
|
||||
f 161/278/15 177/277/15 176/279/15
|
||||
f 164/296/12 175/394/12 174/297/12
|
||||
f 179/298/13 190/319/13 193/299/13
|
||||
f 192/301/16 193/299/16 190/302/16
|
||||
f 188/304/16 189/308/16 186/305/16
|
||||
f 184/307/13 186/314/13 189/308/13
|
||||
f 183/310/14 188/304/14 187/311/14
|
||||
f 185/309/15 189/308/15 188/304/15
|
||||
f 182/313/12 187/395/12 186/314/12
|
||||
f 180/315/14 192/301/14 191/316/14
|
||||
f 178/300/15 193/299/15 192/301/15
|
||||
f 181/318/12 191/396/12 190/319/12
|
||||
f 194/320/16 196/324/16 195/321/16
|
||||
f 194/320/17 197/325/17 198/323/17
|
||||
f 197/325/15 199/397/15 200/326/15
|
||||
f 195/321/18 202/328/18 201/327/18
|
||||
f 202/328/12 204/398/12 203/329/12
|
||||
f 206/330/16 208/334/16 207/331/16
|
||||
f 206/330/17 209/335/17 210/333/17
|
||||
f 209/335/15 211/399/15 212/336/15
|
||||
f 207/331/18 214/338/18 213/337/18
|
||||
f 214/338/12 216/400/12 215/339/12
|
||||
f 169/287/11 167/288/11 166/340/11
|
||||
f 185/309/11 183/310/11 182/342/11
|
||||
f 180/315/11 181/401/11 179/344/11
|
||||
f 163/293/11 164/402/11 162/345/11
|
||||
f 218/346/15 217/403/15 219/347/15
|
||||
f 220/348/19 219/347/19 226/349/19
|
||||
f 221/351/12 222/404/12 224/352/12
|
||||
f 223/353/20 224/352/20 227/354/20
|
||||
f 226/349/11 225/355/11 227/354/11
|
||||
f 230/356/15 229/405/15 231/357/15
|
||||
f 232/358/19 231/357/19 238/359/19
|
||||
f 233/361/12 234/406/12 236/362/12
|
||||
f 235/363/20 236/362/20 239/364/20
|
||||
f 238/359/11 237/365/11 239/364/11
|
||||
f 107/225/17 106/226/17 105/227/17
|
||||
f 112/228/18 127/229/18 110/230/18
|
||||
f 107/225/19 116/231/19 108/232/19
|
||||
f 106/226/20 114/233/20 105/227/20
|
||||
f 108/232/21 115/234/21 106/226/21
|
||||
f 105/227/18 113/235/18 107/225/18
|
||||
f 111/236/22 114/237/22 109/238/22
|
||||
f 109/238/22 115/234/22 110/239/22
|
||||
f 110/239/22 116/240/22 112/241/22
|
||||
f 112/241/22 113/242/22 111/236/22
|
||||
f 118/243/21 119/244/21 117/245/21
|
||||
f 121/246/18 123/247/18 122/248/18
|
||||
f 127/229/22 125/249/22 126/250/22
|
||||
f 119/244/22 122/248/22 117/245/22
|
||||
f 120/251/19 121/246/19 119/244/19
|
||||
f 117/245/20 123/252/20 118/253/20
|
||||
f 109/254/21 125/249/21 111/255/21
|
||||
f 111/256/20 128/257/20 112/258/20
|
||||
f 110/259/19 126/250/19 109/260/19
|
||||
f 130/261/21 131/262/21 129/263/21
|
||||
f 133/264/18 135/265/18 134/266/18
|
||||
f 131/262/22 134/266/22 129/263/22
|
||||
f 132/267/19 133/264/19 131/262/19
|
||||
f 129/263/20 135/268/20 130/269/20
|
||||
f 138/270/18 139/271/18 137/272/18
|
||||
f 141/273/21 143/274/21 142/275/21
|
||||
f 139/271/22 142/275/22 137/272/22
|
||||
f 140/276/20 141/273/20 139/271/20
|
||||
f 137/272/19 143/277/19 138/278/19
|
||||
f 146/279/18 147/280/18 145/281/18
|
||||
f 149/282/21 151/283/21 150/284/21
|
||||
f 147/280/22 150/284/22 145/281/22
|
||||
f 148/285/20 149/282/20 147/280/20
|
||||
f 145/281/19 151/286/19 146/287/19
|
||||
f 154/288/19 155/289/19 153/290/19
|
||||
f 157/291/20 159/292/20 158/293/20
|
||||
f 155/289/22 158/293/22 153/290/22
|
||||
f 156/294/18 157/291/18 155/289/18
|
||||
f 153/290/21 159/295/21 154/296/21
|
||||
f 162/297/19 163/298/19 161/299/19
|
||||
f 165/300/20 167/301/20 166/302/20
|
||||
f 163/298/22 166/302/22 161/299/22
|
||||
f 164/303/18 165/300/18 163/298/18
|
||||
f 161/299/21 167/304/21 162/305/21
|
||||
f 170/306/20 171/307/20 169/308/20
|
||||
f 173/309/19 175/310/19 174/311/19
|
||||
f 171/307/22 174/311/22 169/308/22
|
||||
f 172/312/21 173/309/21 171/307/21
|
||||
f 169/308/18 175/313/18 170/314/18
|
||||
f 178/315/20 179/316/20 177/317/20
|
||||
f 181/318/19 183/319/19 182/320/19
|
||||
f 179/316/22 182/320/22 177/317/22
|
||||
f 180/321/21 181/318/21 179/316/21
|
||||
f 177/317/18 183/322/18 178/323/18
|
||||
f 186/324/19 201/325/19 185/326/19
|
||||
f 200/327/22 198/328/22 199/329/22
|
||||
f 196/330/22 194/331/22 195/332/22
|
||||
f 192/333/19 197/334/19 193/335/19
|
||||
f 191/336/20 195/337/20 190/338/20
|
||||
f 193/335/21 196/330/21 191/336/21
|
||||
f 190/339/18 194/340/18 192/333/18
|
||||
f 187/341/20 199/342/20 188/343/20
|
||||
f 185/326/21 200/327/21 187/341/21
|
||||
f 188/344/18 198/345/18 186/324/18
|
||||
f 203/346/19 217/347/19 202/348/19
|
||||
f 216/349/22 214/350/22 215/351/22
|
||||
f 212/352/22 210/353/22 211/354/22
|
||||
f 208/355/19 213/356/19 209/357/19
|
||||
f 207/358/20 211/359/20 206/360/20
|
||||
f 209/357/21 212/352/21 207/358/21
|
||||
f 206/361/18 210/362/18 208/355/18
|
||||
f 204/363/20 215/364/20 205/365/20
|
||||
f 202/348/21 216/349/21 204/363/21
|
||||
f 205/366/18 214/367/18 203/346/18
|
||||
f 218/368/22 219/369/22 189/370/22
|
||||
f 218/368/23 222/371/23 220/372/23
|
||||
f 221/373/21 224/374/21 222/371/21
|
||||
f 219/369/24 225/375/24 189/370/24
|
||||
f 226/376/18 227/377/18 225/375/18
|
||||
f 230/378/22 231/379/22 229/380/22
|
||||
f 230/378/23 234/381/23 232/382/23
|
||||
f 233/383/21 236/384/21 234/381/21
|
||||
f 231/379/24 237/385/24 229/380/24
|
||||
f 238/386/18 239/387/18 237/385/18
|
||||
f 193/335/17 190/388/17 192/389/17
|
||||
f 209/357/17 206/390/17 208/391/17
|
||||
f 204/363/17 203/392/17 202/348/17
|
||||
f 187/341/17 186/393/17 185/326/17
|
||||
f 242/394/21 243/395/21 244/396/21
|
||||
f 244/396/25 250/397/25 252/398/25
|
||||
f 245/399/18 248/400/18 247/401/18
|
||||
f 247/401/26 251/402/26 249/403/26
|
||||
f 250/397/17 251/402/17 252/398/17
|
||||
f 254/404/21 255/405/21 256/406/21
|
||||
f 256/406/25 262/407/25 264/408/25
|
||||
f 257/409/18 260/410/18 259/411/18
|
||||
f 259/411/26 263/412/26 261/413/26
|
||||
f 262/407/17 263/412/17 264/408/17
|
||||
f 107/225/17 108/232/17 106/226/17
|
||||
f 112/228/18 128/257/18 127/229/18
|
||||
f 107/225/19 113/414/19 116/231/19
|
||||
f 106/226/20 115/415/20 114/233/20
|
||||
f 108/232/21 116/240/21 115/234/21
|
||||
f 105/227/18 114/416/18 113/235/18
|
||||
f 111/236/22 113/242/22 114/237/22
|
||||
f 109/238/22 114/237/22 115/234/22
|
||||
f 110/239/22 115/234/22 116/240/22
|
||||
f 112/241/22 116/240/22 113/242/22
|
||||
f 118/243/21 120/417/21 119/244/21
|
||||
f 121/246/18 124/418/18 123/247/18
|
||||
f 127/229/22 128/257/22 125/249/22
|
||||
f 119/244/22 121/246/22 122/248/22
|
||||
f 120/251/19 124/419/19 121/246/19
|
||||
f 117/245/20 122/248/20 123/252/20
|
||||
f 109/254/21 126/250/21 125/249/21
|
||||
f 111/256/20 125/249/20 128/257/20
|
||||
f 110/259/19 127/229/19 126/250/19
|
||||
f 130/261/21 132/420/21 131/262/21
|
||||
f 133/264/18 136/421/18 135/265/18
|
||||
f 131/262/22 133/264/22 134/266/22
|
||||
f 132/267/19 136/422/19 133/264/19
|
||||
f 129/263/20 134/266/20 135/268/20
|
||||
f 138/270/18 140/423/18 139/271/18
|
||||
f 141/273/21 144/424/21 143/274/21
|
||||
f 139/271/22 141/273/22 142/275/22
|
||||
f 140/276/20 144/425/20 141/273/20
|
||||
f 137/272/19 142/275/19 143/277/19
|
||||
f 146/279/18 148/426/18 147/280/18
|
||||
f 149/282/21 152/427/21 151/283/21
|
||||
f 147/280/22 149/282/22 150/284/22
|
||||
f 148/285/20 152/428/20 149/282/20
|
||||
f 145/281/19 150/284/19 151/286/19
|
||||
f 154/288/19 156/429/19 155/289/19
|
||||
f 157/291/20 160/430/20 159/292/20
|
||||
f 155/289/22 157/291/22 158/293/22
|
||||
f 156/294/18 160/431/18 157/291/18
|
||||
f 153/290/21 158/293/21 159/295/21
|
||||
f 162/297/19 164/432/19 163/298/19
|
||||
f 165/300/20 168/433/20 167/301/20
|
||||
f 163/298/22 165/300/22 166/302/22
|
||||
f 164/303/18 168/434/18 165/300/18
|
||||
f 161/299/21 166/302/21 167/304/21
|
||||
f 170/306/20 172/435/20 171/307/20
|
||||
f 173/309/19 176/436/19 175/310/19
|
||||
f 171/307/22 173/309/22 174/311/22
|
||||
f 172/312/21 176/437/21 173/309/21
|
||||
f 169/308/18 174/311/18 175/313/18
|
||||
f 178/315/20 180/438/20 179/316/20
|
||||
f 181/318/19 184/439/19 183/319/19
|
||||
f 179/316/22 181/318/22 182/320/22
|
||||
f 180/321/21 184/440/21 181/318/21
|
||||
f 177/317/18 182/320/18 183/322/18
|
||||
f 186/324/19 198/345/19 201/325/19
|
||||
f 200/327/22 201/325/22 198/328/22
|
||||
f 196/330/22 197/334/22 194/331/22
|
||||
f 192/333/19 194/340/19 197/334/19
|
||||
f 191/336/20 196/330/20 195/337/20
|
||||
f 193/335/21 197/334/21 196/330/21
|
||||
f 190/339/18 195/441/18 194/340/18
|
||||
f 187/341/20 200/327/20 199/342/20
|
||||
f 185/326/21 201/325/21 200/327/21
|
||||
f 188/344/18 199/442/18 198/345/18
|
||||
f 203/346/19 214/367/19 217/347/19
|
||||
f 216/349/22 217/347/22 214/350/22
|
||||
f 212/352/22 213/356/22 210/353/22
|
||||
f 208/355/19 210/362/19 213/356/19
|
||||
f 207/358/20 212/352/20 211/359/20
|
||||
f 209/357/21 213/356/21 212/352/21
|
||||
f 206/361/18 211/443/18 210/362/18
|
||||
f 204/363/20 216/349/20 215/364/20
|
||||
f 202/348/21 217/347/21 216/349/21
|
||||
f 205/366/18 215/444/18 214/367/18
|
||||
f 218/368/22 220/372/22 219/369/22
|
||||
f 218/368/23 221/373/23 222/371/23
|
||||
f 221/373/21 223/445/21 224/374/21
|
||||
f 219/369/24 226/376/24 225/375/24
|
||||
f 226/376/18 228/446/18 227/377/18
|
||||
f 230/378/22 232/382/22 231/379/22
|
||||
f 230/378/23 233/383/23 234/381/23
|
||||
f 233/383/21 235/447/21 236/384/21
|
||||
f 231/379/24 238/386/24 237/385/24
|
||||
f 238/386/18 240/448/18 239/387/18
|
||||
f 193/335/17 191/336/17 190/388/17
|
||||
f 209/357/17 207/358/17 206/390/17
|
||||
f 204/363/17 205/449/17 203/392/17
|
||||
f 187/341/17 188/450/17 186/393/17
|
||||
f 242/394/21 241/451/21 243/395/21
|
||||
f 244/396/25 243/395/25 250/397/25
|
||||
f 245/399/18 246/452/18 248/400/18
|
||||
f 247/401/26 248/400/26 251/402/26
|
||||
f 250/397/17 249/403/17 251/402/17
|
||||
f 254/404/21 253/453/21 255/405/21
|
||||
f 256/406/25 255/405/25 262/407/25
|
||||
f 257/409/18 258/454/18 260/410/18
|
||||
f 259/411/26 260/410/26 263/412/26
|
||||
f 262/407/17 261/413/17 263/412/17
|
||||
|
||||
6193
src/main/resources/assets/hbm/models/machines/fensu2.obj
Normal file
@ -54,6 +54,7 @@
|
||||
"block.largeTurbineRunning": {"category": "block", "sounds": [{"name": "block/largeTurbine", "stream": false}]},
|
||||
"block.damage": {"category": "block", "sounds": ["block/dam1", "block/dam2", "block/dam3", "block/dam4"]},
|
||||
"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.hornNearSingle": {"category": "block", "sounds": [{"name": "block/hornNearSingle", "stream": false}]},
|
||||
"block.hornNearDual": {"category": "block", "sounds": [{"name": "block/hornNearDual", "stream": false}]},
|
||||
|
||||
BIN
src/main/resources/assets/hbm/sounds/block/fensuHum.ogg
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 369 B |
|
After Width: | Height: | Size: 853 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 898 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 6.7 KiB |