Merge remote-tracking branch 'HbmMods/master'
@ -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());
|
||||
|
||||
13
src/main/java/com/hbm/blocks/bomb/BlockTNT.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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() });
|
||||
|
||||
@ -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 });
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
87
src/main/java/com/hbm/explosion/vanillant/ExplosionVNT.java
Normal 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;
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
11
src/main/java/com/hbm/explosion/vanillant/IExplosionSFX.java
Normal 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);
|
||||
}
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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) {
|
||||
|
||||
77
src/main/java/com/hbm/items/special/ItemKitNBT.java
Normal 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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
|
||||
@ -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) });
|
||||
|
||||
@ -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);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
|
Before Width: | Height: | Size: 446 B After Width: | Height: | Size: 446 B |
BIN
src/main/resources/assets/hbm/textures/blocks/tnt_bottom.png
Normal file
|
After Width: | Height: | Size: 332 B |
BIN
src/main/resources/assets/hbm/textures/blocks/tnt_side.png
Normal file
|
After Width: | Height: | Size: 310 B |
BIN
src/main/resources/assets/hbm/textures/blocks/tnt_top.png
Normal file
|
After Width: | Height: | Size: 636 B |
|
Before Width: | Height: | Size: 610 B After Width: | Height: | Size: 612 B |
|
Before Width: | Height: | Size: 411 B After Width: | Height: | Size: 481 B |
|
Before Width: | Height: | Size: 554 B After Width: | Height: | Size: 555 B |
|
Before Width: | Height: | Size: 287 B After Width: | Height: | Size: 289 B |
|
Before Width: | Height: | Size: 353 B After Width: | Height: | Size: 625 B |
|
Before Width: | Height: | Size: 310 B After Width: | Height: | Size: 563 B |
BIN
src/main/resources/assets/hbm/textures/gui/fluids/diesel.png
Normal file
|
After Width: | Height: | Size: 492 B |
|
After Width: | Height: | Size: 530 B |
|
Before Width: | Height: | Size: 648 B After Width: | Height: | Size: 648 B |
|
Before Width: | Height: | Size: 806 B After Width: | Height: | Size: 808 B |
|
Before Width: | Height: | Size: 530 B After Width: | Height: | Size: 542 B |
|
Before Width: | Height: | Size: 670 B After Width: | Height: | Size: 671 B |
|
Before Width: | Height: | Size: 542 B After Width: | Height: | Size: 544 B |
|
Before Width: | Height: | Size: 575 B After Width: | Height: | Size: 577 B |
|
Before Width: | Height: | Size: 501 B After Width: | Height: | Size: 503 B |
|
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 482 B |
|
Before Width: | Height: | Size: 395 B After Width: | Height: | Size: 484 B |
|
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 491 B |
|
Before Width: | Height: | Size: 437 B After Width: | Height: | Size: 491 B |
|
Before Width: | Height: | Size: 610 B After Width: | Height: | Size: 613 B |
|
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 491 B |
|
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 483 B |
|
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 490 B |
|
Before Width: | Height: | Size: 554 B After Width: | Height: | Size: 555 B |
|
Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 476 B |
|
Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 441 B |
|
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 377 B |
|
Before Width: | Height: | Size: 562 B After Width: | Height: | Size: 563 B |
|
Before Width: | Height: | Size: 311 B After Width: | Height: | Size: 530 B |
|
Before Width: | Height: | Size: 484 B After Width: | Height: | Size: 484 B |
|
Before Width: | Height: | Size: 608 B After Width: | Height: | Size: 610 B |
BIN
src/main/resources/assets/hbm/textures/gui/fluids/water_base.png
Normal file
|
After Width: | Height: | Size: 573 B |
|
After Width: | Height: | Size: 526 B |
|
Before Width: | Height: | Size: 330 B After Width: | Height: | Size: 330 B |
BIN
src/main/resources/assets/hbm/textures/items/chemistry_set.png
Normal file
|
After Width: | Height: | Size: 217 B |
|
After Width: | Height: | Size: 249 B |
BIN
src/main/resources/assets/hbm/textures/items/hand_drill_desh.png
Normal file
|
After Width: | Height: | Size: 226 B |
|
Before Width: | Height: | Size: 330 B After Width: | Height: | Size: 386 B |
|
After Width: | Height: | Size: 237 B |