Merge remote-tracking branch 'HbmMods/master'

This commit is contained in:
Vaern 2022-02-10 19:45:05 -08:00
commit c5cfdd4d4a
75 changed files with 657 additions and 46 deletions

View File

@ -486,6 +486,7 @@ public class ModBlocks {
public static Block rejuvinator;
public static Block fireworks;
public static Block dynamite;
public static Block tnt;
public static Block charge_dynamite;
public static Block charge_miner;
@ -1698,7 +1699,8 @@ public class ModBlocks {
mine_he = new Landmine(Material.iron).setBlockName("mine_he").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_he");
mine_shrap = new Landmine(Material.iron).setBlockName("mine_shrap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_shrap");
mine_fat = new Landmine(Material.iron).setBlockName("mine_fat").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_fat");
dynamite = new BlockDynamite().setBlockName("dynamite").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":dynamite");
dynamite = new BlockDynamite().setBlockName("dynamite").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":dynamite");
tnt = new BlockTNT().setBlockName("tnt_ntm").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":tnt");
machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F);
@ -2666,6 +2668,7 @@ public class ModBlocks {
GameRegistry.registerBlock(crashed_balefire, crashed_balefire.getUnlocalizedName());
GameRegistry.registerBlock(fireworks, fireworks.getUnlocalizedName());
GameRegistry.registerBlock(dynamite, dynamite.getUnlocalizedName());
GameRegistry.registerBlock(tnt, tnt.getUnlocalizedName());
//Turrets
GameRegistry.registerBlock(turret_light, turret_light.getUnlocalizedName());

View File

@ -0,0 +1,13 @@
package com.hbm.blocks.bomb;
import com.hbm.entity.item.EntityTNTPrimedBase;
import net.minecraft.world.World;
public class BlockTNT extends BlockTNTBase {
@Override
public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) {
world.createExplosion(entity, x, y, z, 12F, true);
}
}

View File

@ -2,33 +2,36 @@ package com.hbm.blocks.bomb;
import java.util.Random;
import com.hbm.blocks.generic.BlockFlammable;
import com.hbm.entity.item.EntityTNTPrimedBase;
import com.hbm.util.ChatBuilder;
import api.hbm.block.IToolable;
import api.hbm.block.IToolable.ToolType;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.init.Items;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon;
import net.minecraft.world.Explosion;
import net.minecraft.world.World;
public abstract class BlockTNTBase extends Block {
public abstract class BlockTNTBase extends BlockFlammable implements IToolable {
@SideOnly(Side.CLIENT)
private IIcon topIcon;
@SideOnly(Side.CLIENT)
private IIcon bottomIcon;
public BlockTNTBase() {
super(Material.tnt);
this.setCreativeTab(CreativeTabs.tabRedstone);
super(Material.tnt, 15, 100);
}
@Override
@ -122,4 +125,33 @@ public abstract class BlockTNTBase extends Block {
this.topIcon = p_149651_1_.registerIcon(this.getTextureName() + "_top");
this.bottomIcon = p_149651_1_.registerIcon(this.getTextureName() + "_bottom");
}
@Override
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
if(tool == ToolType.DEFUSER) {
if(!world.isRemote) {
world.func_147480_a(x, y, z, true);
this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0);
}
return true;
}
if(tool != ToolType.SCREWDRIVER)
return false;
if(!world.isRemote) {
int meta = world.getBlockMetadata(x, y, z);
if(meta == 0) {
world.setBlockMetadataWithNotify(x, y, z, 1, 3);
player.addChatComponentMessage(ChatBuilder.start("[ Ignite On Break: Enabled ]").color(EnumChatFormatting.RED).flush());
} else {
world.setBlockMetadataWithNotify(x, y, z, 0, 3);
player.addChatComponentMessage(ChatBuilder.start("[ Ignite On Break: Disabled ]").color(EnumChatFormatting.GOLD).flush());
}
}
return true;
}
}

View File

@ -1,6 +1,6 @@
package com.hbm.blocks.machine;
import com.hbm.tileentity.machine.TileEntityConverterHeRf;
import com.hbm.tileentity.network.TileEntityConverterHeRf;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;

View File

@ -1,6 +1,6 @@
package com.hbm.blocks.machine;
import com.hbm.tileentity.machine.TileEntityConverterRfHe;
import com.hbm.tileentity.network.TileEntityConverterRfHe;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;

View File

@ -18,7 +18,7 @@ public class PowderRecipes {
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_power, 5), new Object[] { REDSTONE.dust(), "dustGlowstone", DIAMOND.dust(), NP237.dust(), MAGTUNG.dust() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.ballistite, 3), new Object[] { Items.gunpowder, KNO.dust(), Items.sugar });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_dynamite, 2), new Object[] { KNO.dust(), Items.sugar, Blocks.sand });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_dynamite, 2), new Object[] { KNO.dust(), Items.sugar, Blocks.sand, KEY_TOOL_CHEMISTRYSET });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.ingot_steel_dusted, 1), new Object[] { STEEL.ingot(), COAL.dust() });
//Gunpowder
@ -42,8 +42,8 @@ public class PowderRecipes {
//Metal powders
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_advanced_alloy, 4), new Object[] { REDSTONE.dust(), IRON.dust(), COAL.dust(), CU.dust() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_advanced_alloy, 3), new Object[] { IRON.dust(), COAL.dust(), MINGRADE.dust() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_advanced_alloy, 3), new Object[] { REDSTONE.dust(), STEEL.dust(), CU.dust() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_advanced_alloy, 4), new Object[] { IRON.dust(), COAL.dust(), MINGRADE.dust(), MINGRADE.dust() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_advanced_alloy, 4), new Object[] { REDSTONE.dust(), CU.dust(), STEEL.dust(), STEEL.dust() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_advanced_alloy, 2), new Object[] { MINGRADE.dust(), STEEL.dust() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_magnetized_tungsten, 1), new Object[] { W.dust(), SA326.nugget() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_tcalloy, 1), new Object[] { STEEL.dust(), TC99.nugget() });

View File

@ -131,7 +131,15 @@ 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.kit_toolbox_empty), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.screwdriver, 1), new Object[] { " I", " I ", "S ", 'S', STEEL.ingot(), 'I', IRON.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.screwdriver_desh, 1), new Object[] { " I", " I ", "S ", 'S', ANY_PLASTIC.ingot(), 'I', DESH.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.hand_drill), new Object[] { " D", "S ", " S", 'D', DURA.ingot(), 'S', KEY_STICK });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.hand_drill_desh), new Object[] { " D", "S ", " S", 'D', DESH.ingot(), 'S', ANY_PLASTIC.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.chemistry_set), new Object[] { "GIG", "GCG", 'G', KEY_ANYGLASS, 'I', IRON.ingot(), 'C', CU.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.chemistry_set_boron), new Object[] { "GIG", "GCG", 'G', ModBlocks.glass_boron, 'I', STEEL.ingot(), 'C', CO.ingot() });
//Bobmazon
CraftingManager.addShapelessAuto(new ItemStack(ModItems.bobmazon_materials), new Object[] { Items.book, Items.gold_nugget, Items.string });

View File

@ -349,7 +349,7 @@ public class WeaponRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_pink_cloud), new Object[] { " S ", "ECE", " E ", 'S', ModItems.powder_spark_mix, 'E', ModItems.powder_magic, 'C', ModItems.grenade_cloud });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.nuclear_waste_pearl), new Object[] { "WWW", "WFW", "WWW", 'W', ModItems.nuclear_waste_tiny, 'F', ModBlocks.block_fallout });
//CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_nuke), new Object[] { "CGC", "CGC", "PAP", 'C', ModBlocks.det_charge, 'G', ModItems.grenade_mk2, 'P', ALLOY.plate(), 'A', Blocks.anvil });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_dynamite, 4), new Object[] { " S ", "PDP", "PDP", 'S', Items.string, 'P', Items.paper, 'D', ModItems.ball_dynamite });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_dynamite, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModItems.safety_fuse, 'P', Items.paper, 'D', ModItems.ball_dynamite });
//IF Grenades

View File

@ -0,0 +1,64 @@
package com.hbm.crafting.handlers;
import java.util.ArrayList;
import java.util.List;
import com.hbm.items.ModItems;
import com.hbm.items.special.ItemKitNBT;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.world.World;
public class ToolboxCraftingHandler implements IRecipe {
@Override
public boolean matches(InventoryCrafting inventory, World world) {
int itemCount = 0;
int kitCount = 0;
for(int i = 0; i < 9; i++) {
ItemStack stack = inventory.getStackInRowAndColumn(i % 3, i / 3);
if(stack != null) {
itemCount++;
if(stack.getItem() == ModItems.kit_toolbox_empty) {
kitCount++;
}
}
}
return itemCount > 1 && kitCount == 1;
}
@Override
public ItemStack getCraftingResult(InventoryCrafting inventory) {
List<ItemStack> stacks = new ArrayList();
for(int i = 0; i < 9; i++) {
ItemStack stack = inventory.getStackInRowAndColumn(i % 3, i / 3);
if(stack != null && stack.getItem() != ModItems.kit_toolbox_empty) {
ItemStack copy = stack.copy();
copy.stackSize = 1;
stacks.add(copy);
}
}
return ItemKitNBT.create(stacks.toArray(new ItemStack[0]));
}
@Override
public int getRecipeSize() {
return 9;
}
@Override
public ItemStack getRecipeOutput() {
return new ItemStack(ModItems.kit_toolbox);
}
}

View File

@ -0,0 +1,76 @@
package com.hbm.explosion.vanillant;
import java.util.HashSet;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.util.MathHelper;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
public class BlockAllocatorStandard implements IBlockAllocator {
protected int resolution;
public BlockAllocatorStandard() {
this(16);
}
public BlockAllocatorStandard(int resolution) {
this.resolution = resolution;
}
@Override
public HashSet<ChunkPosition> allocate(ExplosionVNT explosion, World world, double x, double y, double z, float size) {
HashSet<ChunkPosition> affectedBlocks = new HashSet();
for(int i = 0; i < this.resolution; ++i) {
for(int j = 0; j < this.resolution; ++j) {
for(int k = 0; k < this.resolution; ++k) {
if(i == 0 || i == this.resolution - 1 || j == 0 || j == this.resolution - 1 || k == 0 || k == this.resolution - 1) {
double d0 = (double) ((float) i / ((float) this.resolution - 1.0F) * 2.0F - 1.0F);
double d1 = (double) ((float) j / ((float) this.resolution - 1.0F) * 2.0F - 1.0F);
double d2 = (double) ((float) k / ((float) this.resolution - 1.0F) * 2.0F - 1.0F);
double d3 = Math.sqrt(d0 * d0 + d1 * d1 + d2 * d2);
d0 /= d3;
d1 /= d3;
d2 /= d3;
float powerRemaining = size * (0.7F + world.rand.nextFloat() * 0.6F);
double currentX = x;
double currentY = y;
double currentZ = z;
for(float stepSize = 0.3F; powerRemaining > 0.0F; powerRemaining -= stepSize * 0.75F) {
int blockX = MathHelper.floor_double(currentX);
int blockY = MathHelper.floor_double(currentY);
int blockZ = MathHelper.floor_double(currentZ);
Block block = world.getBlock(blockX, blockY, blockZ);
if(block.getMaterial() != Material.air) {
float blockResistance = block.getExplosionResistance(explosion.exploder, world, blockX, blockY, blockZ, x, y, z);
powerRemaining -= (blockResistance + 0.3F) * stepSize;
}
if(powerRemaining > 0.0F) {
affectedBlocks.add(new ChunkPosition(blockX, blockY, blockZ));
}
currentX += d0 * (double) stepSize;
currentY += d1 * (double) stepSize;
currentZ += d2 * (double) stepSize;
}
}
}
}
}
return affectedBlocks;
}
}

View File

@ -0,0 +1,58 @@
package com.hbm.explosion.vanillant;
import java.util.HashSet;
import java.util.Iterator;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.util.MathHelper;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
public class BlockProcessorStandard implements IBlockProcessor {
protected IDropChanceMutator chance;
public BlockProcessorStandard() { }
public BlockProcessorStandard(IDropChanceMutator chance) {
this.chance = chance;
}
@Override
public void process(ExplosionVNT explosion, World world, double x, double y, double z, HashSet<ChunkPosition> affectedBlocks) {
Iterator iterator = affectedBlocks.iterator();
float dropChance = 1.0F / explosion.size;
while(iterator.hasNext()) {
ChunkPosition chunkposition = (ChunkPosition) iterator.next();
int blockX = chunkposition.chunkPosX;
int blockY = chunkposition.chunkPosY;
int blockZ = chunkposition.chunkPosZ;
Block block = world.getBlock(blockX, blockY, blockZ);
if(block.getMaterial() != Material.air) {
if(block.canDropFromExplosion(null)) {
if(chance != null) {
dropChance = chance.mutateDropChance(explosion, block, blockX, blockY, blockZ, dropChance);
}
block.dropBlockAsItemWithChance(world, blockX, blockY, blockZ, world.getBlockMetadata(blockX, blockY, blockZ), dropChance, 0);
}
block.onBlockExploded(world, blockX, blockY, blockZ, null);
}
}
}
public BlockProcessorStandard setNoDrop() {
this.chance = new DropChanceNever();
return this;
}
public BlockProcessorStandard setAllDrop() {
this.chance = new DropChanceAlways();
return this;
}
}

View File

@ -0,0 +1,16 @@
package com.hbm.explosion.vanillant;
import net.minecraft.block.Block;
/**
* Now it's getting ridiculously over-engineered
* @author hbm
*
*/
public class DropChanceAlways implements IDropChanceMutator {
@Override
public float mutateDropChance(ExplosionVNT explosion, Block block, int x, int y, int z, float chance) {
return 1F;
}
}

View File

@ -0,0 +1,11 @@
package com.hbm.explosion.vanillant;
import net.minecraft.block.Block;
public class DropChanceNever implements IDropChanceMutator {
@Override
public float mutateDropChance(ExplosionVNT explosion, Block block, int x, int y, int z, float chance) {
return 0;
}
}

View File

@ -0,0 +1,87 @@
package com.hbm.explosion.vanillant;
import java.util.HashMap;
import java.util.HashSet;
import net.minecraft.entity.Entity;
import net.minecraft.util.Vec3;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
/**
* Time to over-engineer this into fucking oblivion so that I never have to write a vanilla-esque explosion class ever again
* @author hbm
*
*/
public class ExplosionVNT {
//explosions only need one of these, in the unlikely event that we do need to combine different types we can just write a wrapper that acts as a chainloader
private IBlockAllocator blockAllocator;
private IEntityAllocator entityAllocator;
private IBlockProcessor blockProcessor;
private IEntityProcessor entityProcessor;
//since we want to reduce each effect to the bare minimum (sound, particles, etc. being separate) we definitely need multiple most of the time
private IExplosionSFX[] sfx;
protected World world;
protected double posX;
protected double posY;
protected double posZ;
protected float size;
public Entity exploder;
public ExplosionVNT(World world, double x, double y, double z, float size) {
this(world, x, y, z, size, null);
}
public ExplosionVNT(World world, double x, double y, double z, float size, Entity exploder) {
this.world = world;
this.posX = x;
this.posY = y;
this.posZ = z;
this.size = size;
this.exploder = exploder;
}
public void explode() {
boolean processBlocks = blockAllocator != null && blockProcessor != null;
boolean processEntities = entityAllocator != null && entityProcessor != null;
HashSet<ChunkPosition> affectedBlocks = null;
HashMap<Entity, Vec3> affectedEntities = null;
if(processBlocks) affectedBlocks = blockAllocator.allocate(this, world, posX, posY, posZ, size);
if(processEntities) affectedEntities = entityAllocator.allocate(this, world, posX, posY, posZ, size);
if(processBlocks) blockProcessor.process(this, world, posX, posY, posZ, affectedBlocks);
if(processEntities) entityProcessor.process(this, world, posX, posY, posZ, affectedEntities);
if(sfx != null) {
for(IExplosionSFX fx : sfx) {
fx.doEffect(this, world, posX, posY, posZ, size);
}
}
}
public ExplosionVNT setBlockAllocator(IBlockAllocator blockAllocator) {
this.blockAllocator = blockAllocator;
return this;
}
public ExplosionVNT setEntityAllocator(IEntityAllocator entityAllocator) {
this.entityAllocator = entityAllocator;
return this;
}
public ExplosionVNT setBlockProcessor(IBlockProcessor blockProcessor) {
this.blockProcessor = blockProcessor;
return this;
}
public ExplosionVNT setEntityprocessor(IEntityProcessor entityProcessor) {
this.entityProcessor = entityProcessor;
return this;
}
public ExplosionVNT setSFX(IExplosionSFX... sfx) {
this.sfx = sfx;
return this;
}
}

View File

@ -0,0 +1,11 @@
package com.hbm.explosion.vanillant;
import java.util.HashSet;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
public interface IBlockAllocator {
public HashSet<ChunkPosition> allocate(ExplosionVNT explosion, World world, double x, double y, double z, float size);
}

View File

@ -0,0 +1,11 @@
package com.hbm.explosion.vanillant;
import java.util.HashSet;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
public interface IBlockProcessor {
public void process(ExplosionVNT explosion, World world, double x, double y, double z, HashSet<ChunkPosition> affectedBlocks);
}

View File

@ -0,0 +1,8 @@
package com.hbm.explosion.vanillant;
import net.minecraft.block.Block;
public interface IDropChanceMutator {
public float mutateDropChance(ExplosionVNT explosion, Block block, int x, int y, int z, float chance);
}

View File

@ -0,0 +1,12 @@
package com.hbm.explosion.vanillant;
import java.util.HashMap;
import net.minecraft.entity.Entity;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public interface IEntityAllocator {
public HashMap<Entity, Vec3> allocate(ExplosionVNT explosion, World world, double x, double y, double z, float size);
}

View File

@ -0,0 +1,14 @@
package com.hbm.explosion.vanillant;
import java.util.HashMap;
import java.util.HashSet;
import net.minecraft.entity.Entity;
import net.minecraft.util.Vec3;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
public interface IEntityProcessor {
public void process(ExplosionVNT explosion, World world, double x, double y, double z, HashMap<Entity, Vec3> affectedBlocks);
}

View File

@ -0,0 +1,11 @@
package com.hbm.explosion.vanillant;
import java.util.HashSet;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
public interface IExplosionSFX {
public void doEffect(ExplosionVNT explosion, World world, double x, double y, double z, float size);
}

View File

@ -62,6 +62,10 @@ public class OreDictManager {
public static final String KEY_OIL_TAR = "oiltar";
public static final String KEY_CRACK_TAR = "cracktar";
public static final String KEY_COAL_TAR = "coaltar";
public static final String KEY_TOOL_SCREWDRIVER = "ntmscrewdriver";
public static final String KEY_TOOL_HANDDRILL = "ntmhanddrill";
public static final String KEY_TOOL_CHEMISTRYSET = "ntmchemistryset";
/*
* PREFIXES
@ -376,6 +380,13 @@ public class OreDictManager {
OreDictionary.registerOre(KEY_OIL_TAR, fromOne(oil_tar, EnumTarType.CRUDE));
OreDictionary.registerOre(KEY_CRACK_TAR, fromOne(oil_tar, EnumTarType.CRACK));
OreDictionary.registerOre(KEY_COAL_TAR, fromOne(oil_tar, EnumTarType.COAL));
OreDictionary.registerOre(KEY_TOOL_SCREWDRIVER, new ItemStack(screwdriver, 1, OreDictionary.WILDCARD_VALUE));
OreDictionary.registerOre(KEY_TOOL_SCREWDRIVER, new ItemStack(screwdriver_desh, 1, OreDictionary.WILDCARD_VALUE));
OreDictionary.registerOre(KEY_TOOL_HANDDRILL, new ItemStack(hand_drill, 1, OreDictionary.WILDCARD_VALUE));
OreDictionary.registerOre(KEY_TOOL_HANDDRILL, new ItemStack(hand_drill_desh, 1, OreDictionary.WILDCARD_VALUE));
OreDictionary.registerOre(KEY_TOOL_CHEMISTRYSET, new ItemStack(chemistry_set, 1, OreDictionary.WILDCARD_VALUE));
OreDictionary.registerOre(KEY_TOOL_CHEMISTRYSET, new ItemStack(chemistry_set_boron, 1, OreDictionary.WILDCARD_VALUE));
OreDictionary.registerOre(getReflector(), neutron_reflector);
OreDictionary.registerOre("oreRareEarth", ore_rare);

View File

@ -306,6 +306,7 @@ public class ModItems {
public static Item photo_panel;
public static Item sat_base;
public static Item thruster_nuclear;
public static Item safety_fuse;
public static Item undefined;
@ -1862,8 +1863,14 @@ public class ModItems {
public static Item fuse;
public static Item redcoil_capacitor;
public static Item titanium_filter;
//by using these in crafting table recipes, i'm running the risk of making my recipes too greg-ian (which i don't like)
//in the event that i forget about the meaning of the word "sparingly", please throw a brick at my head
public static Item screwdriver;
public static Item screwdriver_desh;
public static Item hand_drill;
public static Item hand_drill_desh;
public static Item chemistry_set;
public static Item chemistry_set_boron;
public static Item overfuse;
public static Item arc_electrode;
public static Item arc_electrode_burnt;
@ -2274,6 +2281,8 @@ public class ModItems {
public static Item hazmat_red_kit;
public static Item hazmat_grey_kit;
public static Item kit_custom;
public static Item kit_toolbox_empty;
public static Item kit_toolbox;
public static Item loot_10;
public static Item loot_15;
@ -2621,6 +2630,7 @@ public class ModItems {
photo_panel = new Item().setUnlocalizedName("photo_panel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":photo_panel");
sat_base = new Item().setUnlocalizedName("sat_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_base");
thruster_nuclear = new Item().setUnlocalizedName("thruster_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_nuclear");
safety_fuse = new Item().setUnlocalizedName("safety_fuse").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":safety_fuse");
undefined = new ItemCustomLore().setUnlocalizedName("undefined").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":undefined");
@ -4516,8 +4526,12 @@ public class ModItems {
fuse = new ItemCustomLore().setUnlocalizedName("fuse").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse");
redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor");
titanium_filter = new ItemCapacitor(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter");
screwdriver = new ItemTooling(ToolType.SCREWDRIVER, 100).setUnlocalizedName("screwdriver").setTextureName(RefStrings.MODID + ":screwdriver");
hand_drill = new ItemTooling(ToolType.HAND_DRILL, 100).setUnlocalizedName("hand_drill").setTextureName(RefStrings.MODID + ":hand_drill");
screwdriver = new ItemTooling(ToolType.SCREWDRIVER, 100).setUnlocalizedName("screwdriver");
screwdriver_desh = new ItemTooling(ToolType.SCREWDRIVER, 0).setUnlocalizedName("screwdriver_desh");
hand_drill = new ItemTooling(ToolType.HAND_DRILL, 100).setUnlocalizedName("hand_drill");
hand_drill_desh = new ItemTooling(ToolType.HAND_DRILL, 0).setUnlocalizedName("hand_drill_desh");
chemistry_set = new ItemCraftingDegradation(100).setUnlocalizedName("chemistry_set");
chemistry_set_boron = new ItemCraftingDegradation(0).setUnlocalizedName("chemistry_set_boron");
overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse");
arc_electrode = new ItemCustomLore().setUnlocalizedName("arc_electrode").setMaxDamage(250).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode");
arc_electrode_burnt = new Item().setUnlocalizedName("arc_electrode_burnt").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_burnt");
@ -4607,7 +4621,9 @@ public class ModItems {
hazmat_kit = new ItemStarterKit().setUnlocalizedName("hazmat_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_kit");
hazmat_red_kit = new ItemStarterKit().setUnlocalizedName("hazmat_red_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_red_kit");
hazmat_grey_kit = new ItemStarterKit().setUnlocalizedName("hazmat_grey_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_grey_kit");
kit_custom = new ItemKitCustom().setUnlocalizedName("kit_custom").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit");
kit_custom = new ItemKitCustom().setUnlocalizedName("kit_custom").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit");
kit_toolbox_empty = new Item().setUnlocalizedName("kit_toolbox_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit_toolbox_empty");
kit_toolbox = new ItemKitNBT().setUnlocalizedName("kit_toolbox").setCreativeTab(MainRegistry.consumableTab).setContainerItem(kit_toolbox_empty).setTextureName(RefStrings.MODID + ":kit_toolbox");
loot_10 = new ItemLootCrate().setUnlocalizedName("loot_10").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_10");
loot_15 = new ItemLootCrate().setUnlocalizedName("loot_15").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_15");
@ -6011,6 +6027,7 @@ public class ModItems {
GameRegistry.registerItem(coil_gold_torus, coil_gold_torus.getUnlocalizedName());
GameRegistry.registerItem(coil_tungsten, coil_tungsten.getUnlocalizedName());
GameRegistry.registerItem(coil_magnetized_tungsten, coil_magnetized_tungsten.getUnlocalizedName());
GameRegistry.registerItem(safety_fuse, safety_fuse.getUnlocalizedName());
GameRegistry.registerItem(tank_steel, tank_steel.getUnlocalizedName());
GameRegistry.registerItem(motor, motor.getUnlocalizedName());
GameRegistry.registerItem(motor_desh, motor_desh.getUnlocalizedName());
@ -6473,7 +6490,11 @@ public class ModItems {
GameRegistry.registerItem(redcoil_capacitor, redcoil_capacitor.getUnlocalizedName());
GameRegistry.registerItem(titanium_filter, titanium_filter.getUnlocalizedName());
GameRegistry.registerItem(screwdriver, screwdriver.getUnlocalizedName());
GameRegistry.registerItem(screwdriver_desh, screwdriver_desh.getUnlocalizedName());
GameRegistry.registerItem(hand_drill, hand_drill.getUnlocalizedName());
GameRegistry.registerItem(hand_drill_desh, hand_drill_desh.getUnlocalizedName());
GameRegistry.registerItem(chemistry_set, chemistry_set.getUnlocalizedName());
GameRegistry.registerItem(chemistry_set_boron, chemistry_set_boron.getUnlocalizedName());
GameRegistry.registerItem(overfuse, overfuse.getUnlocalizedName());
GameRegistry.registerItem(arc_electrode, arc_electrode.getUnlocalizedName());
GameRegistry.registerItem(arc_electrode_burnt, arc_electrode_burnt.getUnlocalizedName());
@ -7883,6 +7904,8 @@ public class ModItems {
GameRegistry.registerItem(hazmat_grey_kit, hazmat_grey_kit.getUnlocalizedName());
GameRegistry.registerItem(kit_custom, kit_custom.getUnlocalizedName());
GameRegistry.registerItem(euphemium_kit, euphemium_kit.getUnlocalizedName());
GameRegistry.registerItem(kit_toolbox_empty, kit_toolbox_empty.getUnlocalizedName());
GameRegistry.registerItem(kit_toolbox, kit_toolbox.getUnlocalizedName());
GameRegistry.registerItem(letter, letter.getUnlocalizedName());
//Misile Loot Boxes

View File

@ -6,5 +6,6 @@ public class ItemHoloTape extends ItemEnumMulti {
public ItemHoloTape(Class<? extends Enum> theEnum, boolean multiName, boolean multiTexture) {
super(theEnum, multiName, multiTexture);
this.setMaxStackSize(1);
}
}

View File

@ -14,32 +14,13 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class ItemKitCustom extends Item {
public class ItemKitCustom extends ItemKitNBT {
@SideOnly(Side.CLIENT)
IIcon overlay1;
@SideOnly(Side.CLIENT)
IIcon overlay2;
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
ItemStack[] stacks = ItemStackUtil.readStacksFromNBT(stack);
if(stacks != null) {
for(ItemStack item : stacks) {
if(item != null) {
player.inventory.addItemStackToInventory(item.copy());
}
}
}
stack.stackSize--;
return stack;
}
@Override
@SideOnly(Side.CLIENT)
public int getRenderPasses(int metadata) {

View File

@ -0,0 +1,77 @@
package com.hbm.items.special;
import java.util.List;
import com.hbm.items.ModItems;
import com.hbm.util.ItemStackUtil;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class ItemKitNBT extends Item {
public ItemKitNBT() {
this.setMaxStackSize(1);
}
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
ItemStack[] stacks = ItemStackUtil.readStacksFromNBT(stack);
if(stacks != null) {
for(ItemStack item : stacks) {
if(item != null) {
player.inventory.addItemStackToInventory(item.copy());
}
}
}
ItemStack container = stack.getItem().getContainerItem(stack);
stack.stackSize--;
if(container != null) {
if(stack.stackSize > 0) {
player.inventory.addItemStackToInventory(container.copy());
} else {
stack = container.copy();
}
}
world.playSoundAtEntity(player, "hbm:item.unpack", 1.0F, 1.0F);
return stack;
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
ItemStack[] stacks = ItemStackUtil.readStacksFromNBT(stack);
if(stacks != null) {
list.add("Contains:");
for(ItemStack item : stacks) {
list.add("-" + item.getDisplayName());
}
}
}
public static ItemStack create(ItemStack... contents) {
ItemStack stack = new ItemStack(ModItems.kit_toolbox);
stack.stackTagCompound = new NBTTagCompound();
ItemStackUtil.addStacksToNBT(stack, contents);
return stack;
}
}

View File

@ -0,0 +1,42 @@
package com.hbm.items.tool;
import com.hbm.lib.RefStrings;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class ItemCraftingDegradation extends Item {
public ItemCraftingDegradation(int durability) {
this.setMaxStackSize(1);
this.setMaxDamage(durability);
}
@Override
public boolean doesContainerItemLeaveCraftingGrid(ItemStack stack) {
return false;
}
@Override
public boolean hasContainerItem(ItemStack stack) {
return true;
}
@Override
public ItemStack getContainerItem(ItemStack stack) {
if(this.getMaxDamage() > 0) {
stack.setItemDamage(stack.getItemDamage() + 1);
return stack;
} else {
return stack;
}
}
@Override
public Item setUnlocalizedName(String unlocalizedName) {
super.setUnlocalizedName(unlocalizedName);
this.setTextureName(RefStrings.MODID + ":"+ unlocalizedName);
return this;
}
}

View File

@ -10,16 +10,15 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class ItemTooling extends Item {
public class ItemTooling extends ItemCraftingDegradation {
ToolType type;
public ItemTooling(ToolType type, int durability) {
super(durability);
this.type = type;
this.setMaxStackSize(1);
this.setFull3D();
this.setCreativeTab(MainRegistry.controlTab);
this.setMaxDamage(durability);
}
@Override

View File

@ -24,7 +24,6 @@ import net.minecraft.enchantment.Enchantment;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemDye;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.oredict.OreDictionary;
@ -51,9 +50,11 @@ public class CraftingManager {
GameRegistry.addRecipe(new RBMKFuelCraftingHandler());
GameRegistry.addRecipe(new MKUCraftingHandler());
GameRegistry.addRecipe(new ToolboxCraftingHandler());
//TODO: find out what this actually did
RecipeSorter.register("hbm:rbmk", RBMKFuelCraftingHandler.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless");
RecipeSorter.register("hbm:toolbox", ToolboxCraftingHandler.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless");
RecipeSorter.register("hbm:mku", MKUCraftingHandler.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped before:minecraft:shapeless");
}
@ -292,9 +293,8 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.black_hole, 1), new Object[] { "SSS", "SCS", "SSS", 'C', ModItems.singularity, 'S', ModItems.crystal_xen });
addRecipeAuto(new ItemStack(ModItems.crystal_xen, 1), new Object[] { "EEE", "EIE", "EEE", 'E', ModItems.powder_power, 'I', EUPH.ingot() });
addRecipeAuto(new ItemStack(ModItems.screwdriver, 1), new Object[] { " I", " I ", "S ", 'S', STEEL.ingot(), 'I', IRON.ingot() });
addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { ModItems.screwdriver, NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), ModItems.board_copper, ModItems.black_hole, CS.dust() });
addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { ModItems.screwdriver, ST.dust(), BR.dust(), CO.dust(), TS.dust(), NB.dust(), ModItems.board_copper, ModItems.black_hole, CE.dust() });
addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { ModItems.bolt_tungsten, NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), ModItems.board_copper, ModItems.black_hole, CS.dust() });
addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { ModItems.bolt_tungsten, ST.dust(), BR.dust(), CO.dust(), TS.dust(), NB.dust(), ModItems.board_copper, ModItems.black_hole, CE.dust() });
addRecipeAuto(new ItemStack(ModItems.blades_aluminium, 1), new Object[] { " P ", "PIP", " P ", 'P', AL.plate(), 'I', AL.ingot() });
addRecipeAuto(new ItemStack(ModItems.blades_gold, 1), new Object[] { " P ", "PIP", " P ", 'P', GOLD.plate(), 'I', GOLD.ingot() });
@ -539,7 +539,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LEL", "EWE", "LEL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock });
addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten });
addRecipeAuto(new ItemStack(ModItems.key_kit, 1), new Object[] { "PKP", "DTD", "PKP", 'P', GOLD.plate(), 'K', ModItems.key, 'D', DIAMOND.dust(), 'T', ModItems.screwdriver });
addRecipeAuto(new ItemStack(ModItems.key_kit, 1), new Object[] { "PKP", "DTD", "PKP", 'P', GOLD.plate(), 'K', ModItems.key, 'D', DESH.dust(), 'T', ModItems.screwdriver });
addRecipeAuto(new ItemStack(ModItems.key_red, 1), new Object[] { "DSC", "SMS", "KSD", 'C', ModItems.circuit_targeting_tier4, 'M', Items.nether_star, 'K', ModItems.key, 'D', DESH.dust(), 'S', BIGMT.plate() });
addRecipeAuto(new ItemStack(ModItems.pin, 1), new Object[] { "W ", " W", " W", 'W', ModItems.wire_copper });
addRecipeAuto(new ItemStack(ModItems.padlock_rusty, 1), new Object[] { "I", "B", "I", 'I', IRON.ingot(), 'B', ModItems.bolt_tungsten });
@ -781,6 +781,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.ingot_dineutronium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', SBD.ingot(), 'P', new ItemStack(ModItems.particle_sparkticle).setStackDisplayName("Sparkticle (Temporary Recipe)") });
addRecipeAuto(new ItemStack(ModBlocks.fireworks, 1), new Object[] { "PPP", "PPP", "WIW", 'P', Items.paper, 'W', KEY_PLANKS, 'I', IRON.ingot() });
addRecipeAuto(new ItemStack(ModItems.safety_fuse, 8), new Object[] { "SSS", "SGS", "SSS", 'S', Items.string, 'G', Items.gunpowder });
addRecipeAuto(new ItemStack(ModItems.rbmk_lid, 4), new Object[] { "PPP", "CCC", "PPP", 'P', STEEL.plate(), 'C', ModBlocks.concrete_asbestos });
addRecipeAuto(new ItemStack(ModItems.rbmk_lid_glass, 4), new Object[] { "LLL", "BBB", "P P", 'P', STEEL.plate(), 'L', ModBlocks.glass_lead, 'B', ModBlocks.glass_boron });
@ -853,6 +854,10 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(Items.name_tag), new Object[] { "SB ", "BPB", " BP", 'S', Items.string, 'B', ANY_TAR.any(), 'P', Items.paper });
addRecipeAuto(new ItemStack(ModItems.rag, 4), new Object[] { "SW", "WS", 'S', Items.string, 'W', Blocks.wool });
addShapelessAuto(new ItemStack(ModItems.solid_fuel, 10), new Object[] { ModItems.canister_heatingoil, KEY_TOOL_CHEMISTRYSET });
addShapelessAuto(new ItemStack(ModItems.solid_fuel, 10), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.HEATINGOIL.getID()), KEY_TOOL_CHEMISTRYSET });
addShapelessAuto(new ItemStack(ModItems.solid_fuel, 10), new Object[] { new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.HEATINGOIL.getID()), KEY_TOOL_CHEMISTRYSET });
addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', ModItems.board_copper });
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.TEST.ordinal()), new Object[] { Items.book, ModItems.canned_jizz });
@ -860,7 +865,7 @@ public class CraftingManager {
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.HADRON.ordinal()), new Object[] { Items.book, ModItems.fuse });
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal()), new Object[] { Items.book, Items.iron_ingot });
addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), ModItems.screwdriver, ModItems.ducttape, ModItems.armor_polish });
addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), KEY_TOOL_SCREWDRIVER, ModItems.ducttape, ModItems.armor_polish });
if(GeneralConfig.enableBabyMode) {
addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) });

View File

@ -1,4 +1,4 @@
package com.hbm.tileentity.machine;
package com.hbm.tileentity.network;
import com.hbm.calc.Location;
import com.hbm.tileentity.TileEntityMachineBase;
@ -60,9 +60,16 @@ public class TileEntityConverterHeRf extends TileEntity implements IEnergyConnec
return 0;
}
private boolean recursionBrake = false;
@Override
public long transferPower(long power) {
if(recursionBrake)
return power;
recursionBrake = true;
// we have to limit the transfer amount because otherwise FEnSUs would overflow the RF output, twice
long out = Math.min(power, Long.MAX_VALUE / 4);
int toRF = (int) Math.min(Integer.MAX_VALUE, out * 4);
@ -81,6 +88,8 @@ public class TileEntityConverterHeRf extends TileEntity implements IEnergyConnec
toRF -= energyTransferred; //to prevent energy duping
}
}
recursionBrake = false;
return power - (energyTransferred / 4);
}

View File

@ -1,4 +1,4 @@
package com.hbm.tileentity.machine;
package com.hbm.tileentity.network;
import com.hbm.interfaces.Untested;
@ -30,14 +30,20 @@ public class TileEntityConverterRfHe extends TileEntity implements IEnergyGenera
}
private long subBuffer;
private boolean recursionBrake = false;;
@Untested
@Override
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) {
if(recursionBrake)
return 0;
if(simulate)
return 0;
recursionBrake = true;
long capacity = maxReceive / 4L;
subBuffer = capacity;
@ -45,6 +51,8 @@ public class TileEntityConverterRfHe extends TileEntity implements IEnergyGenera
this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
recursionBrake = false;
return (int) ((capacity - subBuffer) * 4L);
}

View File

@ -766,6 +766,7 @@ item.balefire_and_ham.name=Ham and Balefire-Eggs
item.balefire_and_steel.name=Balefire-Zeug
item.balefire_scrambled.name=Rühr-Balefire-Ei
item.ball_dynamite.name=Dynamit
item.ball_tnt.name=TNT
item.ballistite.name=Ballistit
item.bandaid.name=Samtenes Pflaster
item.bathwater.name=Toxisches Seifenwasser
@ -1021,6 +1022,8 @@ item.centrifuge_element.name=Zentrifugenelement
item.centrifuge_tower.name=Zentrifugenturm
item.chainsaw.name=Kettensäge
item.cheese.name=Käse
item.chemistry_set.name=Laborgläser
item.chemistry_set_boron.name=Laborgläser (Borglas)
item.chemistry_template.name=Chemievorlage:
item.chernobylsign.name=Tschernobyl-Warnschild-Streitaxt
item.chlorine_pinwheel.name=Chlorgas-Konverter
@ -1523,6 +1526,7 @@ item.gun_xvl1456.name=XVL1456 Tau-Kanone Prototyp
item.gun_xvl1456_ammo.name=Kiste mit erschöpftem Uran-235
item.gun_zomg.name=ZOMG Kanone
item.hand_drill.name=Handbohrer
item.hand_drill_desh.name=Desh-Handbohrer
item.hazmat_boots.name=Strahlenschutzstiefel
item.hazmat_boots_grey.name=Hochleistungs-Strahlenschutzstiefel
item.hazmat_boots_red.name=Verbesserte Strahlenschutzstiefel
@ -1685,6 +1689,8 @@ item.key.name=Schlüssel
item.key_fake.name=Gefälschter Schlüssel
item.key_kit.name=Schlüssel-Imitationskit
item.key_red.name=Roter Schlüssel
item.kit_toolbox.name=Werkzeugkasten
item.kit_toolbox_empty.name=Leerer Werkzeugkasten
item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uran-Thorium-Kristallmatrix
item.laser_crystal_bismuth.name=BiSmUTh-Laserkristall
item.laser_crystal_cmb.desc=Antischrabidium in einem CMB-Schrabidat Legierungsgitter
@ -2138,6 +2144,7 @@ item.powder_astatine.name=Astatstaub
item.powder_at209.name=Astat-209-Staub
item.powder_au198.name=Gold-198-Staub
item.powder_australium.name=Australiumstaub
item.powder_bakelite.name=Bakelitstaub
item.powder_balefire.name=Thermonukleare Asche
item.powder_beryllium.name=Berylliumstaub
item.powder_borax.name=Borax
@ -2464,6 +2471,7 @@ item.rune_hagalaz.name=Rough Catalyst Matrix
item.rune_isa.name=Cool Catalyst Matrix
item.rune_jera.name=Multiplicative Catalyst Matrix
item.rune_thurisaz.name=Additive Catalyst Matrix
item.safety_fuse.name=Zündschnur
item.sat_base.name=Satellitenkörper
item.sat_chip.name=Satelliten-ID-Chip
item.sat_coord.name=Satelliten-Zielmarkierer
@ -2498,6 +2506,7 @@ item.scrap.name=Schrott
item.scrap_nuclear.name=Radioaktiver Schutt
item.scrap_plastic.name=Geschreddertes Plastik
item.screwdriver.name=Schraubenzieher
item.screwdriver_desh.name=Desh-Schraubenzieher
item.scrumpy.name=Flasche Scrumpy
item.security_boots.name=Sicherheitsstiefel
item.security_helmet.name=Sicherheitshelm
@ -3521,6 +3530,7 @@ tile.therm_exo.name=Exothermische Bombe
tile.tile_lab.name=Laborfliesen
tile.tile_lab_broken.name=Gebrochene Labotfliesen
tile.tile_lab_cracked.name=Gesprungene Laborfliesen
tile.tnt_ntm.name=Echtes TNT
tile.toxic_block.name=Stereotypischer grüner Schleim
tile.turret_cheapo.name=Billigsdorfer Gatling-Geschütz
tile.turret_chekhov.name=Schweres MG-Geschütz "Tschechows Gewehr"

View File

@ -933,6 +933,7 @@ item.balefire_and_ham.name=Ham and Balefire Eggs
item.balefire_and_steel.name=Balefire and Steel
item.balefire_scrambled.name=Scrambled Balefire Egg
item.ball_dynamite.name=Dynamite
item.ball_tnt.name=TNT
item.ballistite.name=Ballistite
item.bandaid.name=Velvet Band-Aid
item.bathwater.name=Toxic Soapy Water
@ -1199,6 +1200,8 @@ item.centrifuge_element.name=Centrifuge Element
item.centrifuge_tower.name=Centrifuge Tower
item.chainsaw.name=Chainsaw
item.cheese.name=Cheese
item.chemistry_set.name=Laboratory Glassware
item.chemistry_set_boron.name=Laboratory Glassware (Boron Glass)
item.chemistry_template.name=Chemistry Template:
item.chernobylsign.name=Chernobyl Warning Sign Battle Axe
item.chlorine_pinwheel.name=Chlorine Pinwheel
@ -1719,6 +1722,7 @@ item.gun_xvl1456.name=XVL1456 Tau Cannon Prototype
item.gun_xvl1456_ammo.name=Depleted Uranium-235 Box
item.gun_zomg.name=ZOMG Cannon
item.hand_drill.name=Hand Drill
item.hand_drill_desh.name=Desh Hand Drill
item.hazmat_boots.name=Hazmat Boots
item.hazmat_boots_grey.name=High-Performance Hazmat Boots
item.hazmat_boots_red.name=Advanced Hazmat Boots
@ -1898,6 +1902,8 @@ item.key_kit.name=Key Imitation Kit
item.key_red.name=Red Key
item.key_red.desc=Explore the other side.
item.key_red.desc.P11=§4e§r
item.kit_toolbox.name=Toolbox
item.kit_toolbox_empty.name=Empty Toolbox
item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix
item.laser_crystal_bismuth.name=BiSmUTh Laser Crystal
item.laser_crystal_cmb.desc=Antischrabidium Suspended in a CMB-Schrabidate Alloy Lattice
@ -2402,6 +2408,7 @@ item.powder_astatine.name=Astatine Powder
item.powder_at209.name=Astatine-209 Powder
item.powder_au198.name=Gold-198 Powder
item.powder_australium.name=Australium Powder
item.powder_bakelite.name=Bakelite Powder
item.powder_balefire.name=Thermonuclear Ashes
item.powder_beryllium.name=Beryllium Powder
item.powder_borax.name=Borax
@ -2788,6 +2795,7 @@ item.rune_hagalaz.name=Rough Catalyst Matrix
item.rune_isa.name=Cool Catalyst Matrix
item.rune_jera.name=Multiplicative Catalyst Matrix
item.rune_thurisaz.name=Additive Catalyst Matrix
item.safety_fuse.name=Safety Fuse
item.sat_base.name=Satellite Base
item.sat_chip.name=Satellite ID-Chip
item.sat_coord.name=Satellite Designator
@ -2823,6 +2831,7 @@ item.scrap_nuclear.name=Radioactive Scraps
item.scrap_plastic.name=Plastic Scraps
item.screwdriver.name=Screwdriver
item.screwdriver.desc=Could be used instead of a fuse...
item.screwdriver_desh.name=Desh Screwdriver
item.scrumpy.name=Bottle of Scrumpy
item.security_boots.name=Security Boots
item.security_helmet.name=Security Helmet
@ -3858,6 +3867,7 @@ tile.therm_exo.name=Exothermic Bomb
tile.tile_lab.name=Laboratory Tiles
tile.tile_lab_broken.name=Broken Laboratory Tiles
tile.tile_lab_cracked.name=Cracked Laboratory Tiles
tile.tnt_ntm.name=Actual TNT
tile.toxic_block.name=Stereotypical Green Ooze
tile.turret_cheapo.name=Cheapo Gatling Sentry
tile.turret_chekhov.name=Heavy Machine Gun Turret "Chekhov's Gun"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 446 B

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 610 B

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 411 B

After

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 B

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 648 B

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 806 B

After

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 530 B

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 670 B

After

Width:  |  Height:  |  Size: 671 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 542 B

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 575 B

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 B

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 B

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 395 B

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 B

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 610 B

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 B

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

After

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 438 B

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 562 B

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 B

After

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 484 B

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 608 B

After

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 573 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 B

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 B

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B