funny flowers
@ -444,7 +444,7 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl
|
||||
z = pos[2];
|
||||
|
||||
for(AxisAlignedBB aabb :this.bounding) {
|
||||
AxisAlignedBB boxlet = getAABBRotationOffset(aabb, x, y, z, ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - this.offset).getRotation(ForgeDirection.UP));
|
||||
AxisAlignedBB boxlet = getAABBRotationOffset(aabb, x + 0.5, y, z + 0.5, ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - this.offset).getRotation(ForgeDirection.UP));
|
||||
|
||||
if(entityBounding.intersectsWith(boxlet)) {
|
||||
list.add(boxlet);
|
||||
@ -452,7 +452,7 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl
|
||||
}
|
||||
}
|
||||
|
||||
public static AxisAlignedBB getAABBRotationOffset(AxisAlignedBB aabb, int x, int y, int z, ForgeDirection dir) {
|
||||
public static AxisAlignedBB getAABBRotationOffset(AxisAlignedBB aabb, double x, double y, double z, ForgeDirection dir) {
|
||||
|
||||
AxisAlignedBB newBox = null;
|
||||
|
||||
@ -462,7 +462,7 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl
|
||||
if(dir == ForgeDirection.WEST) newBox = AxisAlignedBB.getBoundingBox(aabb.minZ, aabb.minY, -aabb.maxX, aabb.maxZ, aabb.maxY, -aabb.minX);
|
||||
|
||||
if(newBox != null) {
|
||||
newBox.offset(x + 0.5, y, z + 0.5);
|
||||
newBox.offset(x, y, z);
|
||||
return newBox;
|
||||
}
|
||||
|
||||
@ -505,7 +505,7 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl
|
||||
float exp = 0.002F;
|
||||
|
||||
ICustomBlockHighlight.setup();
|
||||
for(AxisAlignedBB aabb : this.bounding) event.context.drawOutlinedBoundingBox(aabb.expand(exp, exp, exp).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1);
|
||||
for(AxisAlignedBB aabb : this.bounding) event.context.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, ForgeDirection.getOrientation(tile.getBlockMetadata() - offset).getRotation(ForgeDirection.UP)).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1);
|
||||
ICustomBlockHighlight.cleanup();
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,7 +19,7 @@ public class BlockEnumMulti extends BlockMulti {
|
||||
this.multiTexture = multiTexture;
|
||||
}
|
||||
|
||||
private IIcon[] icons;
|
||||
protected IIcon[] icons;
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
|
||||
@ -485,6 +485,7 @@ public class ModBlocks {
|
||||
public static Block mush_block_stem;
|
||||
|
||||
public static Block plant_flower;
|
||||
public static Block plant_tall;
|
||||
public static Block plant_dead;
|
||||
public static Block reeds;
|
||||
|
||||
@ -1656,6 +1657,7 @@ public class ModBlocks {
|
||||
mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem");
|
||||
|
||||
plant_flower = new BlockNTMFlower().setBlockName("plant_flower").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F);
|
||||
plant_tall = new BlockTallPlant().setBlockName("plant_tall").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F);
|
||||
plant_dead = new BlockDeadPlant().setBlockName("plant_dead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F);
|
||||
reeds = new BlockReeds().setBlockName("plant_reeds").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F);
|
||||
|
||||
@ -2764,6 +2766,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(deco_pipe_quad_red, ItemBlockBase.class, deco_pipe_quad_red.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad_marked, ItemBlockBase.class, deco_pipe_quad_marked.getUnlocalizedName());
|
||||
register(plant_flower);
|
||||
register(plant_tall);
|
||||
register(plant_dead);
|
||||
register(reeds);
|
||||
GameRegistry.registerBlock(mush, mush.getUnlocalizedName());
|
||||
|
||||
@ -103,7 +103,9 @@ public class BlockGrate extends Block implements ITooltipProvider {
|
||||
return;
|
||||
}
|
||||
|
||||
if((entity instanceof EntityItem || entity instanceof EntityXPOrb) && entity.posY < y + 1.5) {
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
if((entity instanceof EntityItem || entity instanceof EntityXPOrb) && entity.posY < y + meta * 0.125D + 0.375) {
|
||||
entity.motionX = 0;
|
||||
entity.motionY = -0.25;
|
||||
entity.motionZ = 0;
|
||||
|
||||
@ -5,6 +5,9 @@ import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.BlockEnumMulti;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockDeadPlant.EnumDeadPlantType;
|
||||
import com.hbm.blocks.generic.BlockTallPlant.EnumTallFlower;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.IGrowable;
|
||||
@ -17,19 +20,26 @@ import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.EnumPlantType;
|
||||
import net.minecraftforge.common.IPlantable;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, IGrowable, ITooltipProvider {
|
||||
|
||||
public BlockNTMFlower() {
|
||||
super(Material.plants, EnumFlowerType.class, true, true);
|
||||
this.setTickRandomly(true);
|
||||
}
|
||||
|
||||
public static enum EnumFlowerType {
|
||||
FOXGLOVE,
|
||||
TOBACCO,
|
||||
NIGHTSHADE,
|
||||
WEED
|
||||
FOXGLOVE(false),
|
||||
TOBACCO(false),
|
||||
NIGHTSHADE(false),
|
||||
WEED(false),
|
||||
CD0(true),
|
||||
CD1(true);
|
||||
|
||||
public boolean needsOil;
|
||||
private EnumFlowerType(boolean needsOil) {
|
||||
this.needsOil = needsOil;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -53,7 +63,7 @@ public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, IGrowa
|
||||
}
|
||||
|
||||
protected boolean canPlaceBlockOn(Block block) {
|
||||
return block == Blocks.grass || block == Blocks.dirt || block == Blocks.farmland;
|
||||
return block == Blocks.grass || block == Blocks.dirt || block == Blocks.farmland || block == ModBlocks.dirt_dead || block == ModBlocks.dirt_oily;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -65,13 +75,13 @@ public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, IGrowa
|
||||
protected void checkAndDropBlock(World world, int x, int y, int z) {
|
||||
if(!this.canBlockStay(world, x, y, z)) {
|
||||
this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0);
|
||||
world.setBlock(x, y, z, getBlockById(0), 0, 2);
|
||||
world.setBlock(x, y, z, Blocks.air, 0, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBlockStay(World world, int x, int y, int z) {
|
||||
return world.getBlock(x, y - 1, z).canSustainPlant(world, x, y - 1, z, ForgeDirection.UP, this);
|
||||
return canPlaceBlockOn(world.getBlock(x, y - 1, z));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -96,24 +106,96 @@ public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, IGrowa
|
||||
|
||||
@Override
|
||||
public int damageDropped(int meta) {
|
||||
|
||||
if(meta == EnumFlowerType.CD1.ordinal()) {
|
||||
return EnumFlowerType.CD0.ordinal();
|
||||
}
|
||||
|
||||
return meta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTick(World world, int x, int y, int z, Random rand) {
|
||||
|
||||
if(world.isRemote) return; //not possible i believe, but better safe than sorry
|
||||
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
EnumFlowerType type = EnumFlowerType.values()[rectify(meta)];
|
||||
|
||||
if(!(type == EnumFlowerType.WEED || type == EnumFlowerType.CD0 || type == EnumFlowerType.CD1)) return;
|
||||
|
||||
if(func_149851_a(world, x, y, z, false) && func_149852_a(world, rand, x, y, z) && rand.nextInt(3) == 0) {
|
||||
func_149853_b(world, rand, x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
/* grow condition */
|
||||
@Override
|
||||
public boolean func_149851_a(World world, int x, int y, int z, boolean b) {
|
||||
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
//cadmium willows can only grow with water
|
||||
if(meta == EnumFlowerType.CD0.ordinal() || meta == EnumFlowerType.CD1.ordinal()) {
|
||||
|
||||
if(world.getBlock(x + 1, y - 1, z).getMaterial() != Material.water &&
|
||||
world.getBlock(x - 1, y - 1, z).getMaterial() != Material.water &&
|
||||
world.getBlock(x, y - 1, z + 1).getMaterial() != Material.water &&
|
||||
world.getBlock(x, y - 1, z - 1).getMaterial() != Material.water) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(meta == EnumFlowerType.WEED.ordinal() || meta == EnumFlowerType.CD1.ordinal()) {
|
||||
return world.isAirBlock(x, y + 1, z);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* chance */
|
||||
@Override
|
||||
public boolean func_149852_a(World p_149852_1_, Random p_149852_2_, int p_149852_3_, int p_149852_4_, int p_149852_5_) {
|
||||
public boolean func_149852_a(World world, Random rand, int x, int y, int z) {
|
||||
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
if(meta == EnumFlowerType.WEED.ordinal() || meta == EnumFlowerType.CD0.ordinal() || meta == EnumFlowerType.CD1.ordinal()) {
|
||||
return rand.nextFloat() < 0.33F;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/* grow */
|
||||
@Override
|
||||
public void func_149853_b(World world, Random rand, int x, int y, int z) {
|
||||
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
Block onTop = world.getBlock(x, y - 1, z);
|
||||
|
||||
if(meta == EnumFlowerType.WEED.ordinal()) {
|
||||
if(onTop == ModBlocks.dirt_dead || onTop == ModBlocks.dirt_oily) {
|
||||
world.setBlock(x, y, z, ModBlocks.plant_dead, EnumDeadPlantType.GENERIC.ordinal(), 3);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(meta == EnumFlowerType.WEED.ordinal()) {
|
||||
world.setBlock(x, y, z, ModBlocks.plant_tall, EnumTallFlower.WEED.ordinal(), 3);
|
||||
world.setBlock(x, y + 1, z, ModBlocks.plant_tall, EnumTallFlower.WEED.ordinal() + 8, 3);
|
||||
return;
|
||||
}
|
||||
|
||||
if(meta == EnumFlowerType.CD0.ordinal()) {
|
||||
world.setBlock(x, y, z, ModBlocks.plant_flower, EnumFlowerType.CD1.ordinal(), 3);
|
||||
return;
|
||||
}
|
||||
|
||||
if(meta == EnumFlowerType.CD1.ordinal()) {
|
||||
world.setBlock(x, y, z, ModBlocks.plant_tall, EnumTallFlower.CD2.ordinal(), 3);
|
||||
world.setBlock(x, y + 1, z, ModBlocks.plant_tall, EnumTallFlower.CD2.ordinal() + 8, 3);
|
||||
return;
|
||||
}
|
||||
|
||||
this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0);
|
||||
}
|
||||
|
||||
|
||||
318
src/main/java/com/hbm/blocks/generic/BlockTallPlant.java
Normal file
@ -0,0 +1,318 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.BlockEnumMulti;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockDeadPlant.EnumDeadPlantType;
|
||||
import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType;
|
||||
import com.hbm.inventory.OreDictManager.DictFrame;
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.IGrowable;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.EnumPlantType;
|
||||
import net.minecraftforge.common.IPlantable;
|
||||
|
||||
public class BlockTallPlant extends BlockEnumMulti implements IPlantable, IGrowable {
|
||||
|
||||
public BlockTallPlant() {
|
||||
super(Material.plants, EnumTallFlower.class, true, true);
|
||||
this.setTickRandomly(true);
|
||||
}
|
||||
|
||||
public static enum EnumTallFlower {
|
||||
WEED(false),
|
||||
CD2(true),
|
||||
CD3(true),
|
||||
CD4(true);
|
||||
|
||||
public boolean needsOil;
|
||||
private EnumTallFlower(boolean needsOil) {
|
||||
this.needsOil = needsOil;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int meta, Random rand, int fortune) {
|
||||
|
||||
/*if(meta == EnumTallFlower.WEED.ordinal()) {
|
||||
return Item.getItemFromBlock(ModBlocks.plant_flower);
|
||||
}
|
||||
|
||||
return Item.getItemFromBlock(this);*/
|
||||
|
||||
return Item.getItemFromBlock(ModBlocks.plant_flower);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int quantityDropped(int meta, int fortune, Random random) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int damageDropped(int meta) {
|
||||
meta = rectify(meta);
|
||||
|
||||
if(meta == EnumTallFlower.WEED.ordinal()) {
|
||||
return EnumFlowerType.WEED.ordinal();
|
||||
}
|
||||
|
||||
return EnumFlowerType.CD0.ordinal();
|
||||
}
|
||||
|
||||
protected IIcon[] bottomIcons;
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister reg) {
|
||||
|
||||
Enum[] enums = theEnum.getEnumConstants();
|
||||
this.icons = new IIcon[enums.length];
|
||||
this.bottomIcons = new IIcon[enums.length];
|
||||
|
||||
for(int i = 0; i < icons.length; i++) {
|
||||
Enum num = enums[i];
|
||||
this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase() + ".upper");
|
||||
this.bottomIcons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase() + ".lower");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
return meta > 7 ? this.icons[meta % this.icons.length] : this.bottomIcons[meta % this.icons.length];
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlaceBlockAt(World world, int x, int y, int z) {
|
||||
return super.canPlaceBlockAt(world, x, y, z) && this.canBlockStay(world, x, y, z) && world.isAirBlock(x, y + 1, z);
|
||||
}
|
||||
|
||||
protected boolean canPlaceBlockOn(Block block) {
|
||||
return block == Blocks.grass || block == Blocks.dirt || block == Blocks.farmland || block == ModBlocks.dirt_dead || block == ModBlocks.dirt_oily;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
|
||||
super.onNeighborBlockChange(world, x, y, z, block);
|
||||
this.checkAndDropBlock(world, x, y, z);
|
||||
}
|
||||
|
||||
public static boolean detectCut = true;
|
||||
protected void checkAndDropBlock(World world, int x, int y, int z) {
|
||||
if(!this.canBlockStay(world, x, y, z)) {
|
||||
if(world.getBlockMetadata(x, y, z) < 8) {
|
||||
this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0);
|
||||
}
|
||||
world.setBlock(x, y, z, Blocks.air, 0, 3);
|
||||
}
|
||||
|
||||
if(!detectCut) return;
|
||||
|
||||
Block block = world.getBlock(x, y + 1, z);
|
||||
int meta = world.getBlockMetadata(x, y + 1, z);
|
||||
int ownMeta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
if(ownMeta < 8 && (meta != ownMeta + 8 || block != this) && ModBlocks.plant_flower.canBlockStay(world, x, y, z)) {
|
||||
|
||||
if(ownMeta == EnumTallFlower.WEED.ordinal())
|
||||
world.setBlock(x, y, z, ModBlocks.plant_flower, EnumFlowerType.WEED.ordinal(), 3);
|
||||
else
|
||||
world.setBlock(x, y, z, ModBlocks.plant_flower, EnumFlowerType.CD0.ordinal(), 3);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBlockStay(World world, int x, int y, int z) {
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
if(meta > 7) {
|
||||
return world.getBlock(x, y - 1, z) == this && world.getBlockMetadata(x, y - 1, z) == meta - 8;
|
||||
}
|
||||
|
||||
return canPlaceBlockOn(world.getBlock(x, y - 1, z));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDamageValue(World world, int x, int y, int z) {
|
||||
return world.getBlockMetadata(x, y, z) % 8;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) {
|
||||
|
||||
if(meta > 7) {
|
||||
|
||||
if(world.getBlock(x, y - 1, z) == this) {
|
||||
if(!player.capabilities.isCreativeMode) {
|
||||
this.dropBlockAsItem(world, x, y - 1, z, world.getBlockMetadata(x, y - 1, z), 0);
|
||||
}
|
||||
}
|
||||
} else if(world.getBlock(x, y + 1, z) == this) {
|
||||
|
||||
if(player.capabilities.isCreativeMode) {
|
||||
world.setBlock(x, y + 1, z, Blocks.air, 0, 2);
|
||||
} else {
|
||||
this.dropBlockAsItem(world, x, y + 1, z, world.getBlockMetadata(x, y + 1, z), 0);
|
||||
}
|
||||
}
|
||||
|
||||
super.onBlockHarvested(world, x, y, z, meta, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack) {
|
||||
world.setBlock(x, y + 1, z, this, stack.getItemDamage() + 8, 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTick(World world, int x, int y, int z, Random rand) {
|
||||
|
||||
if(world.isRemote) return; //not possible i believe, but better safe than sorry
|
||||
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
if(meta > 7) return;
|
||||
|
||||
EnumTallFlower type = EnumTallFlower.values()[rectify(meta)];
|
||||
Block onTop = world.getBlock(x, y - 1, z);
|
||||
|
||||
if(!type.needsOil) {
|
||||
if(onTop == ModBlocks.dirt_dead || onTop == ModBlocks.dirt_oily) {
|
||||
world.setBlock(x, y, z, ModBlocks.plant_dead, EnumDeadPlantType.BIGFLOWER.ordinal(), 3);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(func_149851_a(world, x, y, z, false) && func_149852_a(world, rand, x, y, z) && rand.nextInt(3) == 0) {
|
||||
func_149853_b(world, rand, x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
/* grow condition */
|
||||
@Override
|
||||
public boolean func_149851_a(World world, int x, int y, int z, boolean b) {
|
||||
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
int rec = rectify(meta);
|
||||
|
||||
if(rec == EnumTallFlower.CD2.ordinal() || rec == EnumTallFlower.CD3.ordinal()) {
|
||||
|
||||
int y0 = rec == meta ? y : y - 1;
|
||||
|
||||
if(world.getBlock(x + 1, y0 - 1, z).getMaterial() != Material.water &&
|
||||
world.getBlock(x - 1, y0 - 1, z).getMaterial() != Material.water &&
|
||||
world.getBlock(x, y0 - 1, z + 1).getMaterial() != Material.water &&
|
||||
world.getBlock(x, y0 - 1, z - 1).getMaterial() != Material.water) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(rec == EnumTallFlower.CD3.ordinal()) {
|
||||
Block onTop = world.getBlock(x, y - (rec == meta ? 1 : 2), z);
|
||||
return onTop == ModBlocks.dirt_dead || onTop == ModBlocks.dirt_oily;
|
||||
}
|
||||
|
||||
return rec != EnumTallFlower.CD4.ordinal() && rec != EnumTallFlower.WEED.ordinal();
|
||||
}
|
||||
|
||||
/* chance */
|
||||
@Override
|
||||
public boolean func_149852_a(World world, Random rand, int x, int y, int z) {
|
||||
int meta = rectify(world.getBlockMetadata(x, y, z));
|
||||
if(meta == EnumTallFlower.CD3.ordinal()) {
|
||||
return true;
|
||||
}
|
||||
return rand.nextFloat() < 0.33F;
|
||||
}
|
||||
|
||||
/* grow */
|
||||
@Override
|
||||
public void func_149853_b(World world, Random rand, int x, int y, int z) {
|
||||
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
int rec = rectify(meta);
|
||||
|
||||
detectCut = false;
|
||||
|
||||
if(rec == EnumTallFlower.CD2.ordinal() || rec == EnumTallFlower.CD3.ordinal()) {
|
||||
|
||||
if(meta == rec) {
|
||||
world.setBlockMetadataWithNotify(x, y + 1, z, meta + 9, 3);
|
||||
world.setBlockMetadataWithNotify(x, y, z, meta + 1, 3);
|
||||
if(rec == EnumTallFlower.CD3.ordinal()) {
|
||||
world.setBlock(x, y - 1, z, Blocks.dirt);
|
||||
}
|
||||
} else {
|
||||
world.setBlockMetadataWithNotify(x, y, z, meta + 1, 3);
|
||||
world.setBlockMetadataWithNotify(x, y - 1, z, rec + 1, 3);
|
||||
if(rec == EnumTallFlower.CD3.ordinal()) {
|
||||
world.setBlock(x, y - 2, z, Blocks.dirt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
detectCut = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumPlantType getPlantType(IBlockAccess world, int x, int y, int z) {
|
||||
return EnumPlantType.Plains;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block getPlant(IBlockAccess world, int x, int y, int z) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPlantMetadata(IBlockAccess world, int x, int y, int z) {
|
||||
return world.getBlockMetadata(x, y, z);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
|
||||
ArrayList<ItemStack> ret = super.getDrops(world, x, y, z, metadata, fortune);
|
||||
|
||||
if(rectify(world.getBlockMetadata(x, y, z)) == EnumTallFlower.CD4.ordinal()) {
|
||||
ret.add(DictFrame.fromOne(ModItems.plant_item, com.hbm.items.ItemEnums.EnumPlantType.MUSTARDWILLOW, 3 + world.rand.nextInt(4)));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@ -11,6 +11,7 @@ import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
@ -19,6 +20,11 @@ public class MachineGasFlare extends BlockDummyable implements ITooltipProvider
|
||||
|
||||
public MachineGasFlare(Material mat) {
|
||||
super(mat);
|
||||
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, -1.5D, 1.5D, 3.875D, 1.5D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-0.75D, 3.875D, -0.75D, 0.75D, 9, 0.75D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 9D, -1.5D, 1.5D, 9.375D, 1.5D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-0.75D, 9.375D, -0.75D, 0.75D, 12, 0.75D));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -171,7 +171,9 @@ public class MachineSawmill extends BlockDummyable implements ILookOverlay, IToo
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { }
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
this.addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printHook(Pre event, World world, int x, int y, int z) {
|
||||
|
||||
@ -47,8 +47,9 @@ public class WorldConfig {
|
||||
public static int aluminiumClusterSpawn = 3;
|
||||
public static int copperClusterSpawn = 4;
|
||||
public static int alexandriteSpawn = 100;
|
||||
|
||||
|
||||
public static int malachiteSpawn = 1;
|
||||
public static int limestoneSpawn = 1;
|
||||
|
||||
public static int netherUraniumuSpawn = 8;
|
||||
public static int netherTungstenSpawn = 10;
|
||||
@ -147,6 +148,7 @@ public class WorldConfig {
|
||||
copperClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C03_copperClusterSpawn", "Amount of copper cluster veins per chunk", 4);
|
||||
|
||||
malachiteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.L01_malachiteSpawn", "Amount of malachite block veins per chunk", 1);
|
||||
limestoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.L02_limestoneSpawn", "Amount of limestone block veins per chunk", 1);
|
||||
|
||||
netherUraniumuSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.N00_uraniumSpawnrate", "Amount of nether uranium per chunk", 8);
|
||||
netherTungstenSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.N01_tungstenSpawnrate", "Amount of nether tungsten per chunk", 10);
|
||||
|
||||
@ -2,6 +2,7 @@ package com.hbm.crafting;
|
||||
|
||||
import static com.hbm.inventory.OreDictManager.*;
|
||||
|
||||
import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemChemicalDye.EnumChemDye;
|
||||
@ -52,18 +53,9 @@ public class PowderRecipes {
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_desh_ready, 1), new Object[] { ModItems.powder_desh_mix, ModItems.ingot_mercury, ModItems.ingot_mercury, COAL.dust() });
|
||||
|
||||
//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, 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() });
|
||||
//CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_red_copper, 2), new Object[] { REDSTONE.dust(), CU.dust() });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_steel, 1), new Object[] { IRON.dust(), COAL.dust() });
|
||||
//CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_dura_steel, 2), new Object[] { STEEL.dust(), W.dust() });
|
||||
//CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_dura_steel, 2), new Object[] { STEEL.dust(), CO.dust() });
|
||||
//CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_dura_steel, 4), new Object[] { IRON.dust(), COAL.dust(), W.dust(), W.dust() });
|
||||
//CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_dura_steel, 4), new Object[] { IRON.dust(), COAL.dust(), CO.dust(), CO.dust() });
|
||||
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 1), new Object[] { new ItemStack(Items.coal, 1, 1), KEY_SAND });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 2), new Object[] { COAL.dust(), KEY_SAND });
|
||||
@ -72,6 +64,20 @@ public class PowderRecipes {
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 12), new Object[] { CA.dust(), KEY_SAND });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 16), new Object[] { BORAX.dust(), KEY_SAND });
|
||||
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_fertilizer, 4), new Object[] { CA.dust(), P_RED.dust(), KNO.dust(), S.dust() });
|
||||
|
||||
if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting) {
|
||||
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, 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_red_copper, 2), new Object[] { REDSTONE.dust(), CU.dust() });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_dura_steel, 2), new Object[] { STEEL.dust(), W.dust() });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_dura_steel, 2), new Object[] { STEEL.dust(), CO.dust() });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_dura_steel, 4), new Object[] { IRON.dust(), COAL.dust(), W.dust(), W.dust() });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_dura_steel, 4), new Object[] { IRON.dust(), COAL.dust(), CO.dust(), CO.dust() });
|
||||
}
|
||||
|
||||
//Unleash the colores
|
||||
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GRAY, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE) });
|
||||
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.SILVER, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GRAY), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE) });
|
||||
|
||||
@ -105,6 +105,7 @@ public class SmeltingRecipes {
|
||||
GameRegistry.addSmelting(ModItems.powder_niobium, new ItemStack(ModItems.ingot_niobium), 1.0F);
|
||||
GameRegistry.addSmelting(ModItems.powder_bismuth, new ItemStack(ModItems.ingot_bismuth), 1.0F);
|
||||
GameRegistry.addSmelting(ModItems.powder_calcium, new ItemStack(ModItems.ingot_calcium), 1.0F);
|
||||
GameRegistry.addSmelting(ModItems.powder_cadmium, new ItemStack(ModItems.ingot_cadmium), 1.0F);
|
||||
|
||||
GameRegistry.addSmelting(ModItems.combine_scrap, new ItemStack(ModItems.ingot_combine_steel), 1.0F);
|
||||
GameRegistry.addSmelting(ModItems.tank_waste, new ItemStack(ModItems.tank_waste), 0.0F);
|
||||
|
||||
@ -120,7 +120,7 @@ public class ToolRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', POLYMER.ingot(), 'S', STEEL.plate() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ModItems.plate_polymer });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', TCALLOY.ingot(), 'R', ModItems.reacher, 'C', ModItems.circuit_aluminium });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', ModItems.circuit_aluminium });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.sat_chip, 'I', GOLD.ingot() });
|
||||
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() });
|
||||
|
||||
@ -29,6 +29,7 @@ public class BulletConfigSyncingUtil {
|
||||
public static int IRON_HS = i++;
|
||||
public static int STEEL_HS = i++;
|
||||
public static int GOLD_HS = i++;
|
||||
public static int LEAD_HS = i++;
|
||||
public static int DESH_HS = i++;
|
||||
|
||||
public static int G20_NORMAL = i++;
|
||||
@ -305,6 +306,7 @@ public class BulletConfigSyncingUtil {
|
||||
configSet.put(IRON_HS, Gun357MagnumFactory.getRevIronConfig().setHeadshot(3F));
|
||||
configSet.put(STEEL_HS, Gun357MagnumFactory.getRevCursedConfig().setHeadshot(3F));
|
||||
configSet.put(GOLD_HS, Gun357MagnumFactory.getRevGoldConfig().setHeadshot(3F));
|
||||
configSet.put(LEAD_HS, Gun357MagnumFactory.getRevLeadConfig().setHeadshot(3F));
|
||||
configSet.put(DESH_HS, Gun357MagnumFactory.getRevDeshConfig().setHeadshot(3F));
|
||||
|
||||
configSet.put(G20_NORMAL, Gun20GaugeFactory.get20GaugeConfig());
|
||||
|
||||
@ -193,11 +193,11 @@ public class Gun357MagnumFactory {
|
||||
config.name = "bio";
|
||||
config.manufacturer = EnumGunManufacturer.RYAN;
|
||||
|
||||
config.config.add(BulletConfigSyncingUtil.STEEL_REVOLVER);
|
||||
config.config.add(BulletConfigSyncingUtil.GOLD_REVOLVER);
|
||||
config.config.add(BulletConfigSyncingUtil.IRON_REVOLVER);
|
||||
config.config.add(BulletConfigSyncingUtil.LEAD_REVOLVER);
|
||||
config.config.add(BulletConfigSyncingUtil.DESH_REVOLVER);
|
||||
config.config.add(BulletConfigSyncingUtil.STEEL_HS);
|
||||
config.config.add(BulletConfigSyncingUtil.GOLD_HS);
|
||||
config.config.add(BulletConfigSyncingUtil.IRON_HS);
|
||||
config.config.add(BulletConfigSyncingUtil.LEAD_HS);
|
||||
config.config.add(BulletConfigSyncingUtil.DESH_HS);
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ public class CrucibleCastingHandler extends TemplateRecipeHandler {
|
||||
|
||||
if(outputId.equals("ntmCrucibleFoundry")) {
|
||||
|
||||
for(ItemStack[] recipe : CrucibleRecipes.moldRecipes) {
|
||||
for(ItemStack[] recipe : CrucibleRecipes.getMoldRecipes()) {
|
||||
this.arecipes.add(new RecipeSet(recipe));
|
||||
}
|
||||
} else {
|
||||
@ -85,7 +85,7 @@ public class CrucibleCastingHandler extends TemplateRecipeHandler {
|
||||
@Override
|
||||
public void loadCraftingRecipes(ItemStack result) {
|
||||
|
||||
for(ItemStack[] recipe : CrucibleRecipes.moldRecipes) {
|
||||
for(ItemStack[] recipe : CrucibleRecipes.getMoldRecipes()) {
|
||||
if(NEIServerUtils.areStacksSameTypeCrafting(recipe[3], result)) {
|
||||
this.arecipes.add(new RecipeSet(recipe));
|
||||
}
|
||||
@ -105,7 +105,7 @@ public class CrucibleCastingHandler extends TemplateRecipeHandler {
|
||||
@Override
|
||||
public void loadUsageRecipes(ItemStack ingredient) {
|
||||
|
||||
for(ItemStack[] recipe : CrucibleRecipes.moldRecipes) {
|
||||
for(ItemStack[] recipe : CrucibleRecipes.getMoldRecipes()) {
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
if(NEIServerUtils.areStacksSameTypeCrafting(recipe[i], ingredient)) {
|
||||
|
||||
@ -153,11 +153,14 @@ public class OreDictManager {
|
||||
public static final DictFrame STEEL = new DictFrame("Steel");
|
||||
/** TECHNETIUM STEEL */
|
||||
public static final DictFrame TCALLOY = new DictFrame("TcAlloy");
|
||||
/** CADMIUM STEEL */
|
||||
public static final DictFrame CDALLOY = new DictFrame("CdAlloy");
|
||||
/** LEAD */
|
||||
public static final DictFrame PB = new DictFrame("Lead");
|
||||
public static final DictFrame BI = new DictFrame("Bismuth");
|
||||
public static final DictFrame AS = new DictFrame("Arsenic");
|
||||
public static final DictFrame CA = new DictFrame("Calcium");
|
||||
public static final DictFrame CD = new DictFrame("Cadmium");
|
||||
/** TANTALUM */
|
||||
public static final DictFrame TA = new DictFrame("Tantalum");
|
||||
public static final DictFrame COLTAN = new DictFrame("Coltan");
|
||||
@ -268,6 +271,8 @@ public class OreDictManager {
|
||||
public static final DictGroup ANY_PLASTIC = new DictGroup("AnyPlastic", POLYMER, BAKELITE); //using the Any prefix means that it's just the secondary prefix, and that shape prefixes are applicable
|
||||
/** Any post vacuum polymer like PET or PVC */
|
||||
public static final DictGroup ANY_HARDPLASTIC = new DictGroup("AnyHardPlastic", PC, PVC);
|
||||
/** Any post nuclear steel like TCA or CDA */
|
||||
public static final DictGroup ANY_RESISTANTALLOY = new DictGroup("AnyResistantAlloy", TCALLOY, CDALLOY);
|
||||
/** Any "powder" propellant like gunpowder, ballistite and cordite */
|
||||
public static final DictFrame ANY_GUNPOWDER = new DictFrame("AnyPropellant");
|
||||
/** Any smokeless powder like ballistite and cordite */
|
||||
@ -337,10 +342,12 @@ public class OreDictManager {
|
||||
AL .ingot(ingot_aluminium) .dust(powder_aluminium) .plate(plate_aluminium) .block(block_aluminium) .ore(ore_aluminium, ore_meteor_aluminium);
|
||||
STEEL .ingot(ingot_steel) .dustSmall(powder_steel_tiny) .dust(powder_steel) .plate(plate_steel) .block(block_steel);
|
||||
TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy);
|
||||
CDALLOY .ingot(ingot_cdalloy);
|
||||
PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead, ore_meteor_lead);
|
||||
BI .nugget(nugget_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth);
|
||||
AS .nugget(nugget_arsenic) .ingot(ingot_arsenic);
|
||||
CA .ingot(ingot_calcium) .dust(powder_calcium);
|
||||
CD .ingot(ingot_cadmium) .dust(powder_cadmium);
|
||||
TA .nugget(nugget_tantalium) .gem(gem_tantalium) .ingot(ingot_tantalium) .dust(powder_tantalium) .block(block_tantalium);
|
||||
COLTAN .ingot(fragment_coltan) .dust(powder_coltan_ore) .block(block_coltan) .ore(ore_coltan);
|
||||
NB .nugget(fragment_niobium) .ingot(ingot_niobium) .dustSmall(powder_niobium_tiny) .dust(powder_niobium) .block(block_niobium);
|
||||
@ -565,6 +572,7 @@ public class OreDictManager {
|
||||
public static void registerGroups() {
|
||||
ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true);
|
||||
ANY_HARDPLASTIC.addPrefix(INGOT, true);
|
||||
ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(PLATECAST, true).addPrefix(BLOCK, true);
|
||||
ANY_TAR.addPrefix(ANY, false);
|
||||
}
|
||||
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.inventory.FluidContainerRegistry;
|
||||
import com.hbm.inventory.SlotMachineOutput;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.IItemFluidIdentifier;
|
||||
import com.hbm.tileentity.machine.TileEntitySILEX;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@ -57,17 +58,25 @@ public class ContainerSILEX extends Container {
|
||||
ItemStack var5 = var4.getStack();
|
||||
var3 = var5.copy();
|
||||
|
||||
if(par2 <= silex.getSizeInventory() - 1) {
|
||||
if(!this.mergeItemStack(var5, silex.getSizeInventory(), this.inventorySlots.size(), true)) {
|
||||
if(par2 <= 10) {
|
||||
if(!this.mergeItemStack(var5, 11, this.inventorySlots.size(), true)) {
|
||||
return null;
|
||||
}
|
||||
} else if(var5.getItem() == ModItems.turret_chip) { //did i copy this from turrets? tf is happening lol
|
||||
} else {
|
||||
|
||||
if(!this.mergeItemStack(var5, 0, 1, false))
|
||||
return null;
|
||||
|
||||
} else if(!this.mergeItemStack(var5, 1, silex.getSizeInventory(), false)) {
|
||||
return null;
|
||||
if(var3.getItem() instanceof IItemFluidIdentifier) {
|
||||
if(!this.mergeItemStack(var5, 1, 2, false)) {
|
||||
return null;
|
||||
}
|
||||
} else if(FluidContainerRegistry.getFluidContent(var3, silex.tank.getTankType()) > 0) {
|
||||
if(!this.mergeItemStack(var5, 2, 3, false)) {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
if(!this.mergeItemStack(var5, 0, 1, false)) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(var5.stackSize == 0) {
|
||||
|
||||
@ -12,7 +12,10 @@ import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import com.hbm.blocks.BlockEnums.EnumStoneType;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.OreDictManager;
|
||||
import com.hbm.inventory.OreDictManager.DictFrame;
|
||||
import com.hbm.inventory.RecipesCommon.AStack;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
||||
@ -78,8 +81,7 @@ public class MatDistribution extends SerializableRecipe {
|
||||
|
||||
registerOre(OreDictManager.HEMATITE.ore(), MAT_HEMATITE, INGOT.q(4));
|
||||
registerOre(OreDictManager.MALACHITE.ore(), MAT_MALACHITE, INGOT.q(4));
|
||||
|
||||
registerEntry(ModItems.powder_flux, MAT_FLUX, DUST.q(1));
|
||||
registerEntry(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), MAT_FLUX, DUST.q(10));
|
||||
}
|
||||
|
||||
public static void registerEntry(Object key, Object... matDef) {
|
||||
|
||||
@ -106,6 +106,7 @@ public class Mats {
|
||||
public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(NUGGET, INGOT, DUST, BLOCK);
|
||||
public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK);
|
||||
public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK);
|
||||
public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST);
|
||||
|
||||
//Alloys
|
||||
public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, BLOCK);
|
||||
@ -114,13 +115,14 @@ public class Mats {
|
||||
public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(INGOT, DUST, BLOCK);
|
||||
public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x4DA3AF, 0x00000C, 0x4DA3AF).setShapes(INGOT, DUST, BLOCK);
|
||||
public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, BLOCK);
|
||||
public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST);
|
||||
public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST, CASTPLATE);
|
||||
public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setShapes(INGOT);
|
||||
public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(INGOT, DUST, BLOCK);
|
||||
public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK);
|
||||
public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0x404242, 0x404242, 0xDECCAD).setShapes(DUST);
|
||||
public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0xF1E0BB, 0x6F6256, 0xDECCAD).setShapes(DUST);
|
||||
public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setShapes(BLOCK);
|
||||
public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK);
|
||||
public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(INGOT, CASTPLATE);
|
||||
|
||||
@Deprecated public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); }
|
||||
@Deprecated public static NTMMaterial makeAdditive(int id, DictFrame dict, int color) { return makeAdditive(id, dict, color, color, color); }
|
||||
|
||||
@ -291,8 +291,8 @@ public class AssemblerRecipes {
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(TCALLOY.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(TCALLOY.ingot(), 12), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 12), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_drill, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(STEEL.ingot(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.motor, 1), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new ComparableStack(ModItems.drill_titanium, 1), },200);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(STEEL.plate528(), 16), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500);
|
||||
@ -553,7 +553,7 @@ public class AssemblerRecipes {
|
||||
new ComparableStack(ModItems.hull_big_steel, 6),
|
||||
new OreDictStack(STEEL.plate528(), 32),
|
||||
new OreDictStack(TI.plate528(), 12),
|
||||
new OreDictStack(TCALLOY.ingot(), 16),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16),
|
||||
new ComparableStack(ModItems.turbine_tungsten, 5),
|
||||
new ComparableStack(ModItems.turbine_titanium, 3),
|
||||
new ComparableStack(ModItems.flywheel_beryllium, 1),
|
||||
@ -779,7 +779,7 @@ public class AssemblerRecipes {
|
||||
new ComparableStack(ModItems.pipes_steel, 1),
|
||||
new ComparableStack(ModItems.mechanism_special, 3),
|
||||
new ComparableStack(ModItems.magnetron, 16),
|
||||
new OreDictStack(TCALLOY.ingot(), 8),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8),
|
||||
new ComparableStack(ModItems.crt_display, 1)
|
||||
}, 200);
|
||||
makeRecipe(new ComparableStack(ModBlocks.turret_fritz, 1), new AStack[] {
|
||||
@ -904,7 +904,7 @@ public class AssemblerRecipes {
|
||||
}, 100);
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.multitool_hit, 1), new AStack[] {
|
||||
new OreDictStack(TCALLOY.ingot(), 4),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),
|
||||
new OreDictStack(STEEL.plate(), 4),
|
||||
new ComparableStack(ModItems.wire_gold, 12),
|
||||
new ComparableStack(ModItems.motor, 4),
|
||||
@ -913,7 +913,7 @@ public class AssemblerRecipes {
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_assemfac, 1), new AStack[] {
|
||||
new OreDictStack(STEEL.ingot(), 48),
|
||||
new OreDictStack(TCALLOY.ingot(), 8),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8),
|
||||
new OreDictStack(B.ingot(), 4),
|
||||
new OreDictStack(RUBBER.ingot(), 16),
|
||||
new OreDictStack(KEY_ANYPANE, 64),
|
||||
@ -925,7 +925,7 @@ public class AssemblerRecipes {
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[] {
|
||||
new OreDictStack(STEEL.ingot(), 48),
|
||||
new OreDictStack(TCALLOY.ingot(), 8),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8),
|
||||
new OreDictStack(NB.ingot(), 4),
|
||||
new OreDictStack(RUBBER.ingot(), 16),
|
||||
new ComparableStack(ModItems.hull_big_steel, 12),
|
||||
@ -960,7 +960,7 @@ public class AssemblerRecipes {
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_vacuum_distill, 1), new AStack[] {
|
||||
new OreDictStack(STEEL.plateCast(), 16),
|
||||
new OreDictStack(CU.plate528(), 16),
|
||||
new OreDictStack(TCALLOY.ingot(), 4),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),
|
||||
new ComparableStack(ModItems.sphere_steel, 1),
|
||||
new ComparableStack(ModItems.pipes_steel, 1),
|
||||
new ComparableStack(ModItems.motor_desh, 3),
|
||||
@ -970,7 +970,7 @@ public class AssemblerRecipes {
|
||||
new OreDictStack(STEEL.plateCast(), 12),
|
||||
new OreDictStack(CU.plate528(), 8),
|
||||
new OreDictStack(NB.ingot(), 8),
|
||||
new OreDictStack(TCALLOY.ingot(), 4),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),
|
||||
new ComparableStack(ModItems.hull_big_steel, 3),
|
||||
new ComparableStack(ModItems.pipes_steel, 1),
|
||||
new ComparableStack(ModItems.motor, 1),
|
||||
@ -994,8 +994,8 @@ public class AssemblerRecipes {
|
||||
makeRecipe(new ComparableStack(ModBlocks.reactor_conductor, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(CU.plate(), 12), new ComparableStack(ModItems.wire_tungsten, 4), },130);
|
||||
makeRecipe(new ComparableStack(ModBlocks.reactor_computer, 1), new AStack[] {new ComparableStack(ModBlocks.reactor_conductor, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new ComparableStack(ModItems.circuit_gold, 1), },250);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), },400);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(TCALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150);
|
||||
makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(TCALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit_copper, 2), },300);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150);
|
||||
makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit_copper, 2), },300);
|
||||
|
||||
} else {
|
||||
addTantalium(new ComparableStack(ModBlocks.machine_centrifuge, 1), 5);
|
||||
@ -1056,7 +1056,7 @@ public class AssemblerRecipes {
|
||||
new ComparableStack(ModBlocks.hadron_coil_alloy, 24),
|
||||
new OreDictStack(STEEL.ingot(), 8),
|
||||
new OreDictStack(ANY_PLASTIC.ingot(), 16),
|
||||
new OreDictStack(TCALLOY.ingot(), 8),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8),
|
||||
new ComparableStack(ModItems.circuit_gold, 5),
|
||||
new ComparableStack(ModItems.circuit_schrabidium, 5),
|
||||
new ComparableStack(ModItems.circuit_tantalium, 192),
|
||||
@ -1136,7 +1136,7 @@ public class AssemblerRecipes {
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_radiolysis), new AStack[] {
|
||||
new OreDictStack(STEEL.ingot(), 12),
|
||||
new OreDictStack(TCALLOY.ingot(), 4),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),
|
||||
new OreDictStack(DURA.ingot(), 10),
|
||||
new OreDictStack(RUBBER.ingot(), 4),
|
||||
new OreDictStack(PB.plate528(), 12),
|
||||
|
||||
@ -120,11 +120,11 @@ public class ChemplantRecipes extends SerializableRecipe {
|
||||
new FluidStack(Fluids.PHOSGENE, 500))
|
||||
.outputItems(new ItemStack(ModItems.ingot_pc)));
|
||||
recipes.add(new ChemRecipe(96, "PVC", 100)
|
||||
.inputItems(new OreDictStack(CA.dust())) //placeholder!
|
||||
.inputItems(new OreDictStack(CD.dust()))
|
||||
.inputFluids(
|
||||
new FluidStack(Fluids.UNSATURATEDS, 250),
|
||||
new FluidStack(Fluids.CHLORINE, 250))
|
||||
.outputItems(new ItemStack(ModItems.ingot_pvc)));
|
||||
.outputItems(new ItemStack(ModItems.ingot_pvc, 2)));
|
||||
recipes.add(new ChemRecipe(89, "DYNAMITE", 50)
|
||||
.inputItems(
|
||||
new ComparableStack(Items.sugar),
|
||||
|
||||
@ -92,6 +92,10 @@ public class CrucibleRecipes extends SerializableRecipe {
|
||||
.inputs(new MaterialStack(Mats.MAT_STEEL, n * 8), new MaterialStack(Mats.MAT_TECHNIETIUM, n))
|
||||
.outputs(new MaterialStack(Mats.MAT_TCALLOY, i)));
|
||||
|
||||
recipes.add(new CrucibleRecipe(12, "crucible.cdalloy", 9, new ItemStack(ModItems.ingot_cdalloy))
|
||||
.inputs(new MaterialStack(Mats.MAT_STEEL, n * 8), new MaterialStack(Mats.MAT_CADMIUM, n))
|
||||
.outputs(new MaterialStack(Mats.MAT_CDALLOY, i)));
|
||||
|
||||
registerMoldsForNEI();
|
||||
}
|
||||
|
||||
@ -221,6 +225,7 @@ public class CrucibleRecipes extends SerializableRecipe {
|
||||
public void deleteRecipes() {
|
||||
this.indexMapping.clear();
|
||||
this.recipes.clear();
|
||||
this.moldRecipes.clear();
|
||||
}
|
||||
|
||||
/** Returns a map containing all recipes where an item becomes a liquid material in the crucible. */
|
||||
@ -264,9 +269,17 @@ public class CrucibleRecipes extends SerializableRecipe {
|
||||
return map;
|
||||
}
|
||||
|
||||
public static List<ItemStack[]> moldRecipes = new ArrayList();
|
||||
private static List<ItemStack[]> moldRecipes = new ArrayList();
|
||||
|
||||
public static void registerMoldsForNEI() {
|
||||
public static List<ItemStack[]> getMoldRecipes() {
|
||||
if(moldRecipes.isEmpty()) {
|
||||
registerMoldsForNEI();
|
||||
}
|
||||
|
||||
return moldRecipes;
|
||||
}
|
||||
|
||||
private static void registerMoldsForNEI() {
|
||||
|
||||
for(NTMMaterial material : Mats.orderedList) {
|
||||
|
||||
|
||||
@ -19,6 +19,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.recipes.loader.SerializableRecipe;
|
||||
import com.hbm.items.ItemEnums.EnumPlantType;
|
||||
import com.hbm.items.ItemEnums.EnumTarType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemChemicalDye.EnumChemDye;
|
||||
@ -91,6 +92,9 @@ public class CrystallizerRecipes extends SerializableRecipe {
|
||||
registerRecipe(new ComparableStack(Items.rotten_flesh), new CrystallizerRecipe(Items.leather, utilityTime));
|
||||
registerRecipe(new ComparableStack(ModItems.coal_infernal), new CrystallizerRecipe(ModItems.solid_fuel, utilityTime));
|
||||
registerRecipe(new ComparableStack(ModBlocks.stone_gneiss), new CrystallizerRecipe(ModItems.powder_lithium, utilityTime));
|
||||
registerRecipe(new ComparableStack(Items.dye, 1, 15), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 4), 20), new FluidStack(Fluids.SULFURIC_ACID, 250));
|
||||
registerRecipe(new ComparableStack(Items.bone), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 16), 20), new FluidStack(Fluids.SULFURIC_ACID, 1_000));
|
||||
registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CrystallizerRecipe(new ItemStack(ModItems.powder_cadmium), 100).setReq(10), new FluidStack(Fluids.RADIOSOLVENT, 250));
|
||||
|
||||
registerRecipe(DIAMOND.dust(), new CrystallizerRecipe(Items.diamond, utilityTime));
|
||||
registerRecipe(EMERALD.dust(), new CrystallizerRecipe(Items.emerald, utilityTime));
|
||||
@ -187,10 +191,12 @@ public class CrystallizerRecipes extends SerializableRecipe {
|
||||
FluidType acid = key.getValue();
|
||||
|
||||
if(input instanceof String) {
|
||||
OreDictStack stack = new OreDictStack((String) input);
|
||||
OreDictStack stack = new OreDictStack((String) input, recipe.itemAmount);
|
||||
recipes.put(new Object[] {ItemFluidIcon.make(acid, recipe.acidAmount), stack}, recipe.output);
|
||||
} else {
|
||||
ComparableStack stack = (ComparableStack) input;
|
||||
ComparableStack stack = ((ComparableStack) input);
|
||||
stack = (ComparableStack) stack.copy();
|
||||
stack.stacksize = recipe.itemAmount;
|
||||
if(stack.item == ModItems.scrap_plastic) continue;
|
||||
recipes.put(new Object[] {ItemFluidIcon.make(acid, recipe.acidAmount), stack}, recipe.output);
|
||||
}
|
||||
@ -210,12 +216,18 @@ public class CrystallizerRecipes extends SerializableRecipe {
|
||||
|
||||
public static class CrystallizerRecipe {
|
||||
public int acidAmount;
|
||||
public int itemAmount = 1;
|
||||
public int duration;
|
||||
public ItemStack output;
|
||||
|
||||
public CrystallizerRecipe(Block output, int duration) { this(new ItemStack(output), duration); }
|
||||
public CrystallizerRecipe(Item output, int duration) { this(new ItemStack(output), duration); }
|
||||
|
||||
public CrystallizerRecipe setReq(int amount) {
|
||||
this.itemAmount = amount;
|
||||
return this;
|
||||
}
|
||||
|
||||
public CrystallizerRecipe(ItemStack output, int duration) {
|
||||
this.output = output;
|
||||
this.duration = duration;
|
||||
@ -242,10 +254,11 @@ public class CrystallizerRecipes extends SerializableRecipe {
|
||||
FluidStack fluid = this.readFluidStack(obj.get("fluid").getAsJsonArray());
|
||||
int duration = obj.get("duration").getAsInt();
|
||||
|
||||
CrystallizerRecipe cRecipe = new CrystallizerRecipe(output, duration);
|
||||
CrystallizerRecipe cRecipe = new CrystallizerRecipe(output, duration).setReq(input.stacksize);
|
||||
input.stacksize = 1;
|
||||
cRecipe.acidAmount = fluid.fill;
|
||||
if(input instanceof ComparableStack) {
|
||||
recipes.put(new Pair(((ComparableStack) input).makeSingular(), fluid.type), cRecipe);
|
||||
recipes.put(new Pair(((ComparableStack) input), fluid.type), cRecipe);
|
||||
} else if(input instanceof OreDictStack) {
|
||||
recipes.put(new Pair(((OreDictStack) input).name, fluid.type), cRecipe);
|
||||
}
|
||||
@ -256,7 +269,8 @@ public class CrystallizerRecipes extends SerializableRecipe {
|
||||
Entry<Pair, CrystallizerRecipe> rec = (Entry<Pair, CrystallizerRecipe>) recipe;
|
||||
CrystallizerRecipe cRecipe = rec.getValue();
|
||||
Pair<Object, FluidType> pair = rec.getKey();
|
||||
AStack input = pair.getKey() instanceof String ? new OreDictStack((String )pair.getKey()) : (ComparableStack) pair.getKey();
|
||||
AStack input = pair.getKey() instanceof String ? new OreDictStack((String )pair.getKey()) : ((ComparableStack) pair.getKey()).copy();
|
||||
input.stacksize = cRecipe.itemAmount;
|
||||
FluidStack fluid = new FluidStack(pair.value, cRecipe.acidAmount);
|
||||
|
||||
writer.name("duration").value(cRecipe.duration);
|
||||
@ -272,4 +286,9 @@ public class CrystallizerRecipes extends SerializableRecipe {
|
||||
public void deleteRecipes() {
|
||||
recipes.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getComment() {
|
||||
return "The acidizer also supports stack size requirements for input items, eg. the cadmium recipe requires 10 willow leaves.";
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,6 +9,7 @@ import java.util.Map.Entry;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.FluidStack;
|
||||
import com.hbm.inventory.RecipesCommon.AStack;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
@ -52,6 +53,8 @@ public class LiquefactionRecipes extends SerializableRecipe {
|
||||
recipes.put(new ComparableStack(Items.ender_pearl), new FluidStack(100, Fluids.ENDERJUICE));
|
||||
|
||||
recipes.put(new ComparableStack(Items.sugar), new FluidStack(100, Fluids.ETHANOL));
|
||||
recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 3), new FluidStack(150, Fluids.ETHANOL));
|
||||
recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 4), new FluidStack(50, Fluids.ETHANOL));
|
||||
recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(125, Fluids.BIOGAS));
|
||||
|
||||
recipes.put(new ComparableStack(Items.wheat_seeds), new FluidStack(50, Fluids.SEEDSLURRY));
|
||||
|
||||
@ -40,6 +40,7 @@ public class MixerRecipes extends SerializableRecipe {
|
||||
recipes.put(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500)));
|
||||
recipes.put(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(S.dust())));
|
||||
recipes.put(Fluids.NITRIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust())));
|
||||
recipes.put(Fluids.RADIOSOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250)));
|
||||
recipes.put(Fluids.SCHRABIDIC, new MixerRecipe(16_000, 100).setStack1(new FluidStack(Fluids.SAS3, 8_000)).setStack2(new FluidStack(Fluids.ACID, 6_000)).setSolid(new ComparableStack(ModItems.pellet_charged)));
|
||||
|
||||
recipes.put(Fluids.LUBRICANT, new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.HEATINGOIL, 500)).setStack2(new FluidStack(Fluids.UNSATURATEDS, 500)));
|
||||
|
||||
@ -167,6 +167,7 @@ public class ShredderRecipes extends SerializableRecipe {
|
||||
ShredderRecipes.setRecipe(Blocks.clay, new ItemStack(Items.clay_ball, 4));
|
||||
ShredderRecipes.setRecipe(Blocks.hardened_clay, new ItemStack(Items.clay_ball, 4));
|
||||
ShredderRecipes.setRecipe(Blocks.tnt, new ItemStack(Items.gunpowder, Compat.isModLoaded(Compat.MOD_GT6) ? 4 : 5));
|
||||
ShredderRecipes.setRecipe(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), new ItemStack(ModItems.powder_calcium));
|
||||
ShredderRecipes.setRecipe(ModBlocks.stone_gneiss, new ItemStack(ModItems.powder_lithium_tiny, 1));
|
||||
ShredderRecipes.setRecipe(ModItems.powder_lapis, new ItemStack(ModItems.powder_cobalt_tiny, 1));
|
||||
ShredderRecipes.setRecipe(ModItems.fragment_neodymium, new ItemStack(ModItems.powder_neodymium_tiny, 1));
|
||||
|
||||
@ -36,6 +36,7 @@ public class ItemEnums {
|
||||
|
||||
public static enum EnumPlantType {
|
||||
TOBACCO,
|
||||
ROPE
|
||||
ROPE,
|
||||
MUSTARDWILLOW
|
||||
}
|
||||
}
|
||||
|
||||
@ -137,6 +137,7 @@ public class ModItems {
|
||||
public static Item nugget_schrabidium_fuel;
|
||||
public static Item ingot_advanced_alloy;
|
||||
public static Item ingot_tcalloy;
|
||||
public static Item ingot_cdalloy;
|
||||
public static Item lithium;
|
||||
public static Item ingot_zirconium;
|
||||
public static Item ingot_hes;
|
||||
@ -355,6 +356,8 @@ public class ModItems {
|
||||
public static Item powder_asbestos;
|
||||
public static Item ingot_calcium;
|
||||
public static Item powder_calcium;
|
||||
public static Item ingot_cadmium;
|
||||
public static Item powder_cadmium;
|
||||
public static Item powder_bismuth;
|
||||
|
||||
public static Item ingot_lanthanium;
|
||||
@ -525,6 +528,7 @@ public class ModItems {
|
||||
public static Item powder_balefire;
|
||||
public static Item powder_sawdust;
|
||||
public static Item powder_flux;
|
||||
public static Item powder_fertilizer;
|
||||
|
||||
public static Item fragment_neodymium;
|
||||
public static Item fragment_cobalt;
|
||||
@ -2681,6 +2685,7 @@ public class ModItems {
|
||||
nugget_schrabidium_fuel = new Item().setUnlocalizedName("nugget_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium_fuel");
|
||||
ingot_advanced_alloy = new Item().setUnlocalizedName("ingot_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_advanced_alloy");
|
||||
ingot_tcalloy = new Item().setUnlocalizedName("ingot_tcalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tcalloy");
|
||||
ingot_cdalloy = new Item().setUnlocalizedName("ingot_cdalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cdalloy");
|
||||
|
||||
niter = new Item().setUnlocalizedName("niter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":salpeter");
|
||||
ingot_copper = new Item().setUnlocalizedName("ingot_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_copper");
|
||||
@ -2817,6 +2822,8 @@ public class ModItems {
|
||||
bottle_mercury = new ItemCustomLore().setUnlocalizedName("bottle_mercury").setContainerItem(Items.glass_bottle).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bottle_mercury");
|
||||
ingot_calcium = new Item().setUnlocalizedName("ingot_calcium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_calcium");
|
||||
powder_calcium = new Item().setUnlocalizedName("powder_calcium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_calcium");
|
||||
ingot_cadmium = new Item().setUnlocalizedName("ingot_cadmium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cadmium");
|
||||
powder_cadmium = new Item().setUnlocalizedName("powder_cadmium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cadmium");
|
||||
powder_bismuth = new Item().setUnlocalizedName("powder_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bismuth");
|
||||
|
||||
ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":byproduct");
|
||||
@ -3063,6 +3070,7 @@ public class ModItems {
|
||||
powder_balefire = new Item().setUnlocalizedName("powder_balefire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_balefire");
|
||||
powder_sawdust = new Item().setUnlocalizedName("powder_sawdust").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sawdust");
|
||||
powder_flux = new Item().setUnlocalizedName("powder_flux").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_flux");
|
||||
powder_fertilizer = new ItemFertilizer().setUnlocalizedName("powder_fertilizer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_fertilizer");
|
||||
powder_coltan_ore = new Item().setUnlocalizedName("powder_coltan_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan_ore");
|
||||
powder_coltan = new Item().setUnlocalizedName("powder_coltan").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan");
|
||||
powder_tektite = new Item().setUnlocalizedName("powder_tektite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tektite");
|
||||
@ -4280,30 +4288,17 @@ public class ModItems {
|
||||
gun_karl = new ItemGunBase(GunRocketFactory.getKarlConfig()).setUnlocalizedName("gun_karl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_karl");
|
||||
gun_panzerschreck = new ItemGunBase(GunRocketFactory.getPanzConfig()).setUnlocalizedName("gun_panzerschreck").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_panzerschreck");
|
||||
gun_quadro = new ItemGunBase(GunRocketFactory.getQuadroConfig()).setUnlocalizedName("gun_quadro").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_quadro");
|
||||
//gun_rpg_ammo = new Item().setUnlocalizedName("gun_rpg_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_rpg_ammo_alt");
|
||||
gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69");
|
||||
gun_stinger = new ItemGunBase(GunRocketHomingFactory.getStingerConfig()).setUnlocalizedName("gun_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger");
|
||||
gun_skystinger = new ItemGunBase(GunRocketHomingFactory.getSkyStingerConfig()).setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger");
|
||||
//gun_stinger_ammo = new Item().setUnlocalizedName("gun_stinger_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_stinger_ammo");
|
||||
//gun_revolver_ammo = new Item().setUnlocalizedName("gun_revolver_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_ammo");
|
||||
gun_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver");
|
||||
gun_revolver_saturnite = new ItemGunBase(Gun357MagnumFactory.getRevolverSaturniteConfig()).setUnlocalizedName("gun_revolver_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_saturnite");
|
||||
//gun_revolver_iron_ammo = new Item().setUnlocalizedName("gun_revolver_iron_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_iron_ammo");
|
||||
//gun_revolver_iron = new ItemGunBase(Gun357MagnumFactory.getRevolverIronConfig()).setUnlocalizedName("gun_revolver_iron").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_iron");
|
||||
//gun_revolver_gold_ammo = new Item().setUnlocalizedName("gun_revolver_gold_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_gold_ammo");
|
||||
gun_revolver_gold = new ItemGunBase(Gun357MagnumFactory.getRevolverGoldConfig()).setUnlocalizedName("gun_revolver_gold").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_gold");
|
||||
//gun_revolver_lead_ammo = new Item().setUnlocalizedName("gun_revolver_lead_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_lead_ammo");
|
||||
//gun_revolver_schrabidium_ammo = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("gun_revolver_schrabidium_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_schrabidium_ammo");
|
||||
gun_revolver_schrabidium = new ItemGunBase(Gun357MagnumFactory.getRevolverSchrabidiumConfig()).setUnlocalizedName("gun_revolver_schrabidium").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_schrabidium");
|
||||
//gun_revolver_cursed_ammo = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gun_revolver_cursed_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_cursed_ammo");
|
||||
gun_revolver_cursed = new ItemGunBase(Gun357MagnumFactory.getRevolverCursedConfig()).setUnlocalizedName("gun_revolver_cursed").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_cursed");
|
||||
//gun_revolver_nightmare_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_nightmare_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare_ammo");
|
||||
gun_revolver_nightmare = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmareConfig()).setUnlocalizedName("gun_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare");
|
||||
//gun_revolver_nightmare2_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_nightmare2_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2_ammo");
|
||||
gun_revolver_nightmare2 = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmare2Config()).setUnlocalizedName("gun_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2");
|
||||
//gun_revolver_pip_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_pip_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_pip_ammo");
|
||||
gun_revolver_pip = new ItemGunBase(Gun44MagnumFactory.getMacintoshConfig()).setUnlocalizedName("gun_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_pip");
|
||||
//gun_revolver_nopip_ammo = new Item().setUnlocalizedName("gun_revolver_nopip_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_nopip_ammo");
|
||||
gun_revolver_nopip = new ItemGunBase(Gun44MagnumFactory.getNovacConfig()).setUnlocalizedName("gun_revolver_nopip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nopip");
|
||||
gun_revolver_blackjack = new ItemGunBase(Gun44MagnumFactory.getBlackjackConfig()).setUnlocalizedName("gun_revolver_blackjack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_blackjack");
|
||||
gun_revolver_silver = new ItemGunBase(Gun44MagnumFactory.getSilverConfig()).setUnlocalizedName("gun_revolver_silver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_silver");
|
||||
@ -4312,40 +4307,31 @@ public class ModItems {
|
||||
gun_bio_revolver = new ItemGunBio(Gun357MagnumFactory.getRevolverBioConfig()).setUnlocalizedName("gun_bio_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bio_revolver");
|
||||
gun_flechette = new ItemGunBase(Gun556mmFactory.getSPIWConfig(), Gun556mmFactory.getGLauncherConfig()).setUnlocalizedName("gun_flechette").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flechette");
|
||||
gun_ar15 = new ItemGunBase(Gun50BMGFactory.getAR15Config()).setUnlocalizedName("gun_ar15").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_ar15");
|
||||
//gun_calamity_ammo = new ItemCustomLore().setUnlocalizedName("gun_calamity_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_calamity_ammo");
|
||||
gun_calamity = new ItemGunBase(Gun762mmFactory.getCalamityConfig()).setUnlocalizedName("gun_calamity").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity");
|
||||
//gun_lacunae_ammo = new ItemCustomLore().setUnlocalizedName("gun_lacunae_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lacunae_ammo");
|
||||
gun_minigun = new ItemGunLacunae(Gun5mmFactory.get53Config()).setUnlocalizedName("gun_minigun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_minigun");
|
||||
gun_avenger = new ItemGunLacunae(Gun5mmFactory.get57Config()).setUnlocalizedName("gun_avenger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_avenger");
|
||||
gun_lacunae = new ItemGunLacunae(Gun5mmFactory.getLacunaeConfig()).setUnlocalizedName("gun_lacunae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lacunae");
|
||||
gun_folly = new GunFolly().setUnlocalizedName("gun_folly").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_folly");
|
||||
//gun_fatman_ammo = new Item().setUnlocalizedName("gun_fatman_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_fatman_ammo");
|
||||
gun_fatman = new ItemGunBase(GunFatmanFactory.getFatmanConfig()).setUnlocalizedName("gun_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman");
|
||||
gun_proto = new ItemGunBase(GunFatmanFactory.getProtoConfig()).setUnlocalizedName("gun_proto").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman");
|
||||
//gun_mirv_ammo = new Item().setUnlocalizedName("gun_mirv_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mirv_ammo");
|
||||
gun_mirv = new ItemGunBase(GunFatmanFactory.getMIRVConfig()).setUnlocalizedName("gun_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mirv");
|
||||
gun_bf_ammo = new Item().setUnlocalizedName("gun_bf_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf_ammo");
|
||||
gun_bf = new ItemGunBase(GunFatmanFactory.getBELConfig()).setUnlocalizedName("gun_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf");
|
||||
gun_chemthrower = new ItemGunChemthrower().setUnlocalizedName("gun_chemthrower").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman");
|
||||
//gun_mp40_ammo = new Item().setUnlocalizedName("gun_mp40_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mp40_ammo");
|
||||
gun_mp40 = new ItemGunBase(Gun9mmFactory.getMP40Config()).setUnlocalizedName("gun_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mp40");
|
||||
gun_thompson = new ItemGunBase(Gun45ACPFactory.getThompsonConfig()).setUnlocalizedName("gun_thompson").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_thompson");
|
||||
//gun_uzi_ammo = new Item().setUnlocalizedName("gun_uzi_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_ammo");
|
||||
gun_uzi = new ItemGunBase(Gun22LRFactory.getUziConfig()).setUnlocalizedName("gun_uzi").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi");
|
||||
gun_uzi_silencer = new ItemGunBase(Gun22LRFactory.getUziConfig().silenced()).setUnlocalizedName("gun_uzi_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_silencer");
|
||||
gun_uzi_saturnite = new ItemGunBase(Gun22LRFactory.getSaturniteConfig()).setUnlocalizedName("gun_uzi_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite");
|
||||
gun_uzi_saturnite_silencer = new ItemGunBase(Gun22LRFactory.getSaturniteConfig().silenced()).setUnlocalizedName("gun_uzi_saturnite_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite_silencer");
|
||||
//gun_uboinik_ammo = new Item().setUnlocalizedName("gun_uboinik_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uboinik_ammo");
|
||||
gun_uboinik = new ItemGunBase(Gun12GaugeFactory.getUboinikConfig()).setUnlocalizedName("gun_uboinik").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik");
|
||||
gun_spas12 = new ItemGunBase(Gun12GaugeFactory.getSpas12Config(), Gun12GaugeFactory.getSpas12AltConfig()).setUnlocalizedName("gun_spas12").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spas12");
|
||||
gun_supershotgun = new ItemGunShotty(Gun12GaugeFactory.getShottyConfig()).setUnlocalizedName("gun_supershotgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik");
|
||||
gun_ks23 = new ItemGunBase(Gun4GaugeFactory.getKS23Config()).setUnlocalizedName("gun_ks23").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik");
|
||||
gun_sauer = new ItemGunBase(Gun4GaugeFactory.getSauerConfig()).setUnlocalizedName("gun_sauer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik");
|
||||
//gun_lever_action_ammo = new Item().setUnlocalizedName("gun_lever_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lever_action_ammo");
|
||||
gun_lever_action = new ItemGunBase(Gun20GaugeFactory.getMareConfig()).setUnlocalizedName("gun_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action");
|
||||
gun_lever_action_dark = new ItemGunBase(Gun20GaugeFactory.getMareDarkConfig()).setUnlocalizedName("gun_lever_action_dark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_dark");
|
||||
gun_lever_action_sonata = new GunLeverActionS().setUnlocalizedName("gun_lever_action_sonata").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_sonata");
|
||||
//gun_bolt_action_ammo = new Item().setUnlocalizedName("gun_bolt_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolt_action_ammo");
|
||||
gun_bolt_action = new ItemGunBase(Gun20GaugeFactory.getBoltConfig()).setUnlocalizedName("gun_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action");
|
||||
gun_bolt_action_green = new ItemGunBase(Gun20GaugeFactory.getBoltGreenConfig()).setUnlocalizedName("gun_bolt_action_green").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_green");
|
||||
gun_bolt_action_saturnite = new ItemGunBase(Gun20GaugeFactory.getBoltSaturniteConfig()).setUnlocalizedName("gun_bolt_action_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_saturnite");
|
||||
@ -4364,7 +4350,6 @@ public class ModItems {
|
||||
gun_cryolator_ammo = new Item().setUnlocalizedName("gun_cryolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator_ammo");
|
||||
gun_cryolator = new GunCryolator().setUnlocalizedName("gun_cryolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator");
|
||||
gun_fireext = new ItemGunBase(GunEnergyFactory.getExtConfig()).setUnlocalizedName("gun_fireext").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fireext");
|
||||
//ammo_566_gold = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gun_mp_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm_ammo");
|
||||
gun_mp = new ItemGunBase(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_mp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm");
|
||||
gun_bolter = new ItemGunBase(Gun75BoltFactory.getBolterConfig()).setUnlocalizedName("gun_bolter").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolter");
|
||||
gun_bolter_digamma = new ItemGunBase(Gun75BoltFactory.getBolterConfig()).setUnlocalizedName("gun_bolter_digamma").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolter_digamma");
|
||||
@ -5705,10 +5690,12 @@ public class ModItems {
|
||||
GameRegistry.registerItem(ingot_aluminium, ingot_aluminium.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_steel, ingot_steel.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_tcalloy, ingot_tcalloy.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_cdalloy, ingot_cdalloy.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_lead, ingot_lead.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_bismuth, ingot_bismuth.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_arsenic, ingot_arsenic.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_calcium, ingot_calcium.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_cadmium, ingot_cadmium.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_tantalium, ingot_tantalium.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_niobium, ingot_niobium.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_beryllium, ingot_beryllium.getUnlocalizedName());
|
||||
@ -5883,6 +5870,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(powder_lead, powder_lead.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_bismuth, powder_bismuth.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_calcium, powder_calcium.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_cadmium, powder_cadmium.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_coltan_ore, powder_coltan_ore.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_coltan, powder_coltan.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_tantalium, powder_tantalium.getUnlocalizedName());
|
||||
@ -5937,6 +5925,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(powder_cloud, powder_cloud.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_sawdust, powder_sawdust.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_flux, powder_flux.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_fertilizer, powder_fertilizer.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_balefire, powder_balefire.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_semtex_mix, powder_semtex_mix.getUnlocalizedName());
|
||||
GameRegistry.registerItem(powder_desh_mix, powder_desh_mix.getUnlocalizedName());
|
||||
|
||||
101
src/main/java/com/hbm/items/tool/ItemFertilizer.java
Normal file
@ -0,0 +1,101 @@
|
||||
package com.hbm.items.tool;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.Event.Result;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.IGrowable;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldServer;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.util.FakePlayerFactory;
|
||||
import net.minecraftforge.event.entity.player.BonemealEvent;
|
||||
|
||||
public class ItemFertilizer extends Item {
|
||||
|
||||
@Override
|
||||
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) {
|
||||
|
||||
if(!player.canPlayerEdit(x, y, z, side, stack)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
world.captureBlockSnapshots = false; //what the fuck is the point of this?!
|
||||
|
||||
boolean didSomething = false;
|
||||
|
||||
for(int i = x - 1; i <= x + 1; i++) {
|
||||
for(int j = y - 1; j <= y + 1; j++) {
|
||||
for(int k = z - 1; k <= z + 1; k++) {
|
||||
boolean success = fertilize(world, i, j, k, player, i == x && j == y && k == z);
|
||||
didSomething = didSomething || success;
|
||||
if(success && !world.isRemote) {
|
||||
world.playAuxSFX(2005, i, j, k, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(didSomething && !player.capabilities.isCreativeMode) {
|
||||
stack.stackSize--;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean useFertillizer(ItemStack stack, World world, int x, int y, int z) {
|
||||
|
||||
if(!(world instanceof WorldServer)) return false;
|
||||
EntityPlayer player = FakePlayerFactory.getMinecraft((WorldServer)world);
|
||||
|
||||
boolean didSomething = false;
|
||||
|
||||
for(int i = x - 1; i <= x + 1; i++) {
|
||||
for(int j = y - 1; j <= y + 1; j++) {
|
||||
for(int k = z - 1; k <= z + 1; k++) {
|
||||
boolean success = fertilize(world, i, j, k, player, i == x && j == y && k == z);
|
||||
didSomething = didSomething || success;
|
||||
if(success && !world.isRemote) {
|
||||
world.playAuxSFX(2005, i, j, k, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(didSomething) stack.stackSize--;
|
||||
|
||||
return didSomething;
|
||||
}
|
||||
|
||||
public static boolean fertilize(World world, int x, int y, int z, EntityPlayer player, boolean force) {
|
||||
|
||||
Block b = world.getBlock(x, y, z);
|
||||
|
||||
BonemealEvent event = new BonemealEvent(player, world, b, x, y, z);
|
||||
if(MinecraftForge.EVENT_BUS.post(event)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(event.getResult() == Result.ALLOW) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if(b instanceof IGrowable) {
|
||||
IGrowable growable = (IGrowable) b;
|
||||
|
||||
if(growable.func_149851_a(world, x, y, z, world.isRemote)) {
|
||||
|
||||
if(!world.isRemote) {
|
||||
if(force || growable.func_149852_a(world, world.rand, x, y, z)) {
|
||||
growable.func_149853_b(world, world.rand, x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -5,6 +5,7 @@ import java.util.List;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.saveddata.TomSaveData;
|
||||
import com.hbm.util.TimeAnalyzer;
|
||||
import com.hbm.world.feature.OilSpot;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
@ -25,12 +26,12 @@ public class ItemWandD extends Item {
|
||||
|
||||
if(pos != null) {
|
||||
|
||||
TimeAnalyzer.startCount("setBlock");
|
||||
/*TimeAnalyzer.startCount("setBlock");
|
||||
world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt);
|
||||
TimeAnalyzer.startEndCount("getBlock");
|
||||
world.getBlock(pos.blockX, pos.blockY, pos.blockZ);
|
||||
TimeAnalyzer.endCount();
|
||||
TimeAnalyzer.dump();
|
||||
TimeAnalyzer.dump();*/
|
||||
|
||||
/*TomSaveData data = TomSaveData.forWorld(world);
|
||||
data.impact = false;
|
||||
@ -60,7 +61,7 @@ public class ItemWandD extends Item {
|
||||
//MapGenStronghold.Start startS = new MapGenStronghold.Start(world, world.rand, pos.blockX >> 4, pos.blockZ >> 4);
|
||||
//startS.generateStructure(world, world.rand, new StructureBoundingBox(k - 124, l - 124, k + 15 + 124, l + 15 + 124));
|
||||
|
||||
/*OilSpot.generateOilSpot(world, pos.blockX, pos.blockZ, 20, 500);*/
|
||||
OilSpot.generateOilSpot(world, pos.blockX, pos.blockZ, 3, 50, true);
|
||||
|
||||
/*EntityNukeTorex torex = new EntityNukeTorex(world);
|
||||
torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0);
|
||||
|
||||
@ -156,6 +156,7 @@ public class HbmWorldGen implements IWorldGenerator {
|
||||
|
||||
//DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.hematiteSpawn, 10, 4, 80, ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal());
|
||||
DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.malachiteSpawn, 10, 6, 40, ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal());
|
||||
DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.limestoneSpawn, 12, 25, 30, ModBlocks.stone_resource, EnumStoneType.LIMESTONE.ordinal());
|
||||
|
||||
DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.IRON, 1, WorldConfig.bedrockIronSpawn);
|
||||
DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.COPPER, 1, WorldConfig.bedrockCopperSpawn);
|
||||
@ -613,7 +614,7 @@ public class HbmWorldGen implements IWorldGenerator {
|
||||
}
|
||||
|
||||
DungeonToolbox.generateOre(world, rand, i, j, 16, 8, 10, 50, ModBlocks.stone_porous);
|
||||
OilSpot.generateOilSpot(world, randPosX, randPosZ, 5, 50);
|
||||
OilSpot.generateOilSpot(world, randPosX, randPosZ, 5, 50, true);
|
||||
}
|
||||
|
||||
if(WorldConfig.meteoriteSpawn > 0 && rand.nextInt(WorldConfig.meteoriteSpawn) == 0) {
|
||||
|
||||
@ -13,6 +13,7 @@ import com.hbm.crafting.*;
|
||||
import com.hbm.crafting.handlers.*;
|
||||
import com.hbm.inventory.OreDictManager;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.material.Mats;
|
||||
|
||||
import static com.hbm.inventory.OreDictManager.*;
|
||||
|
||||
@ -84,8 +85,9 @@ public class CraftingManager {
|
||||
|
||||
addRecipeAuto(new ItemStack(ModItems.redstone_sword, 1), new Object[] { "R", "R", "S", 'R', REDSTONE.block(), 'S', KEY_STICK });
|
||||
addRecipeAuto(new ItemStack(ModItems.big_sword, 1), new Object[] { "QIQ", "QIQ", "GSG", 'G', Items.gold_ingot, 'S', KEY_STICK, 'I', Items.iron_ingot, 'Q', Items.quartz});
|
||||
|
||||
|
||||
addRecipeAuto(new ItemStack(ModItems.board_copper, 1), new Object[] { "TTT", "TTT", 'T', CU.plate() });
|
||||
addRecipeAuto(Mats.MAT_IRON.make(ModItems.plate_cast), new Object[] { "BPB", "BPB", "BPB", 'B', ModItems.bolt_tungsten, 'P', IRON.plate() });
|
||||
addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_red, 1), new Object[] { "C", "R", "C", 'C', ModItems.hazmat_cloth, 'R', REDSTONE.dust() });
|
||||
addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { " P ", "ICI", " L ", 'C', ModItems.hazmat_cloth_red, 'P', IRON.plate(), 'L', PB.plate(), 'I', ModItems.plate_polymer });
|
||||
addRecipeAuto(new ItemStack(ModItems.asbestos_cloth, 8), new Object[] { "SCS", "CPC", "SCS", 'S', Items.string, 'P', BR.dust(), 'C', Blocks.wool });
|
||||
@ -151,6 +153,7 @@ public class CraftingManager {
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Blocks.pumpkin });
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Blocks.melon_block });
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Items.wheat, Items.wheat, Items.wheat, Items.wheat, Items.wheat, Items.wheat });
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED) });
|
||||
|
||||
//addRecipeAuto(new ItemStack(ModItems.part_lithium), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', LI.dust() });
|
||||
//addRecipeAuto(new ItemStack(ModItems.part_beryllium), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', BE.dust() });
|
||||
@ -192,7 +195,7 @@ public class CraftingManager {
|
||||
//addRecipeAuto(new ItemStack(ModItems.rtg_unit, 1), new Object[] { "TIT", "PCP", "TIT", 'T', ModItems.thermo_element, 'I', PB.ingot(), 'P', ModItems.board_copper, 'C', ModItems.circuit_copper });
|
||||
//addRecipeAuto(new ItemStack(ModItems.thermo_unit_empty, 1), new Object[] { "TTT", " S ", "P P", 'S', STEEL.ingot(), 'P', TI.plate(), 'T', ModItems.coil_copper_torus });
|
||||
//addRecipeAuto(new ItemStack(ModItems.levitation_unit, 1), new Object[] { "CSC", "TAT", "PSP", 'C', ModItems.coil_copper, 'S', ModItems.nugget_schrabidium, 'T', ModItems.coil_tungsten, 'P', TI.plate(), 'A', STEEL.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.deuterium_filter, 1), new Object[] { "TST", "SCS", "TST", 'T', TCALLOY.ingot(), 'S', S.dust(), 'C', ModItems.catalyst_clay });
|
||||
addRecipeAuto(new ItemStack(ModItems.deuterium_filter, 1), new Object[] { "TST", "SCS", "TST", 'T', ANY_RESISTANTALLOY.ingot(), 'S', S.dust(), 'C', ModItems.catalyst_clay });
|
||||
|
||||
addRecipeAuto(new ItemStack(ModItems.hull_small_steel, 3), new Object[] { "PPP", " ", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.hull_small_aluminium, 3), new Object[] { "PPP", " ", "PPP", 'P', AL.plate(), 'I', AL.ingot() });
|
||||
@ -293,7 +296,7 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.safe, 1), new Object[] { "LAL", "ACA", "LAL", 'L', PB.plate(), 'A', ALLOY.plate(), 'C', ModBlocks.crate_steel });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', ModItems.circuit_copper });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 1), new Object[] { "PCP", "PMP", "PPP", 'P', DESH.ingot(), 'C', ModItems.circuit_red_copper, 'M', new ItemStack(ModBlocks.mass_storage, 1, 0) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', TCALLOY.ingot(), 'C', ModItems.circuit_gold, 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', ANY_RESISTANTALLOY.ingot(), 'C', ModItems.circuit_gold, 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston });
|
||||
@ -396,7 +399,7 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.tile_lab_broken, 6), new Object[] { " C " , "C C", " C ", 'C', ModBlocks.tile_lab_cracked });
|
||||
addShapelessAuto(new ItemStack(ModBlocks.asphalt_light, 1), new Object[] { ModBlocks.asphalt, Items.glowstone_dust });
|
||||
addShapelessAuto(new ItemStack(ModBlocks.asphalt, 1), new Object[] { ModBlocks.asphalt_light });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.block_niter_reinforced, 1), new Object[] { "TCT", "CNC", "TCT", 'T', TCALLOY.ingot(), 'C', ModBlocks.concrete, 'N', KNO.block() });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.block_niter_reinforced, 1), new Object[] { "TCT", "CNC", "TCT", 'T', ANY_RESISTANTALLOY.ingot(), 'C', ModBlocks.concrete, 'N', KNO.block() });
|
||||
|
||||
String[] dyes = { "Black", "Red", "Green", "Brown", "Blue", "Purple", "Cyan", "LightGray", "Gray", "Pink", "Lime", "Yellow", "LightBlue", "Magenta", "Orange", "White" };
|
||||
|
||||
@ -657,7 +660,7 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.vent_pink_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_pink_cloud, 'D', Blocks.dispenser });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.spikes, 4), new Object[] { "FFF", "BBB", "TTT", 'F', Items.flint, 'B', ModItems.bolt_tungsten, 'T', W.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ModItems.plate_polymer, 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', TCALLOY.ingot(), 'D', ModItems.crt_display, 'C', ModItems.circuit_targeting_tier3 });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', ANY_RESISTANTALLOY.ingot(), 'D', ModItems.crt_display, 'C', ModItems.circuit_targeting_tier3 });
|
||||
addRecipeAuto(new ItemStack(ModItems.containment_box, 1), new Object[] { "LUL", "UCU", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'C', ModBlocks.crate_steel });
|
||||
|
||||
addRecipeAuto(new ItemStack(ModBlocks.absorber, 1), new Object[] { "ICI", "CPC", "ICI", 'I', CU.ingot(), 'C', COAL.dust(), 'P', PB.dust() });
|
||||
@ -826,11 +829,15 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_moderator, 1), new Object[] { " G ", "GRG", " G ", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_blank });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_absorber, 1), new Object[] { "GGG", "GRG", "GGG", 'G', B.ingot(), 'R', ModBlocks.rbmk_blank });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_reflector, 1), new Object[] { "GGG", "GRG", "GGG", 'G', OreDictManager.getReflector(), 'R', ModBlocks.rbmk_blank });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_control, 1), new Object[] { " B ", "GRG", " B ", 'G', GRAPHITE.ingot(), 'B', ModItems.motor, 'R', ModBlocks.rbmk_absorber });
|
||||
if(!GeneralConfig.enable528) {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_control, 1), new Object[] { " B ", "GRG", " B ", 'G', GRAPHITE.ingot(), 'B', ModItems.motor, 'R', ModBlocks.rbmk_absorber });
|
||||
} else {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_control, 1), new Object[] { "CBC", "GRG", "CBC", 'G', GRAPHITE.ingot(), 'B', ModItems.motor, 'R', ModBlocks.rbmk_absorber, 'C', CD.ingot() });
|
||||
}
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_control_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_control, 'B', ModItems.nugget_bismuth });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_control_auto, 1), new Object[] { "C", "R", "D", 'C', ModItems.circuit_targeting_tier1, 'R', ModBlocks.rbmk_control, 'D', ModItems.crt_display });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_reasim, 1), new Object[] { "ZCZ", "ZRZ", "ZCZ", 'C', ModItems.hull_small_steel, 'R', ModBlocks.rbmk_blank, 'Z', ZR.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_reasim_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_rod_reasim, 'B', TCALLOY.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_reasim_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_rod_reasim, 'B', ANY_RESISTANTALLOY.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_outgasser, 1), new Object[] { "GHG", "GRG", "GTG", 'G', ModBlocks.steel_grate, 'H', Blocks.hopper, 'T', ModItems.tank_steel, 'R', ModBlocks.rbmk_blank });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_storage, 1), new Object[] { "C", "R", "C", 'C', ModBlocks.crate_steel, 'R', ModBlocks.rbmk_blank });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_loader, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.plate(), 'C', CU.ingot(), 'B', ModItems.tank_steel });
|
||||
@ -918,7 +925,7 @@ public class CraftingManager {
|
||||
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC, 4), new Object[] { " I ", "CPC", " I ", 'I', IRON.ingot(), 'C', CU.ingot(), 'P', IRON.plate() });
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC, 4), new Object[] { " I ", "CPC", " I ", 'I', STEEL.ingot(), 'C', TI.ingot(), 'P', Fluids.LUBRICANT.getDict(1000) });
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC, 4), new Object[] { " I ", "CPC", " I ", 'I', TCALLOY.ingot(), 'C', ANY_PLASTIC.ingot(), 'P', ModItems.motor });
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC, 4), new Object[] { " I ", "CPC", " I ", 'I', ANY_RESISTANTALLOY.ingot(), 'C', ANY_PLASTIC.ingot(), 'P', ModItems.motor });
|
||||
|
||||
Object[] craneCasing = new Object[] {
|
||||
Blocks.stonebrick, 1,
|
||||
|
||||
@ -2,7 +2,9 @@ package com.hbm.main;
|
||||
|
||||
import net.minecraft.block.BlockDispenser;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
|
||||
import net.minecraft.dispenser.BehaviorProjectileDispense;
|
||||
import net.minecraft.dispenser.IBlockSource;
|
||||
import net.minecraft.dispenser.IPosition;
|
||||
import net.minecraft.entity.IProjectile;
|
||||
import net.minecraft.init.Items;
|
||||
@ -12,6 +14,7 @@ import net.minecraft.item.ItemArmor.ArmorMaterial;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.stats.Achievement;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.WeightedRandomChestContent;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.AchievementPage;
|
||||
@ -60,6 +63,7 @@ import com.hbm.inventory.recipes.*;
|
||||
import com.hbm.inventory.recipes.anvil.AnvilRecipes;
|
||||
import com.hbm.inventory.recipes.loader.SerializableRecipe;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.tool.ItemFertilizer;
|
||||
import com.hbm.items.ItemAmmoEnums.Ammo4Gauge;
|
||||
import com.hbm.lib.HbmWorld;
|
||||
import com.hbm.lib.Library;
|
||||
@ -602,6 +606,27 @@ public class MainRegistry {
|
||||
return new EntityGrenadeDynamite(world, position.getX(), position.getY(), position.getZ());
|
||||
}
|
||||
});
|
||||
BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.powder_fertilizer, new BehaviorDefaultDispenseItem() {
|
||||
|
||||
private boolean dispenseSound = true;
|
||||
@Override protected ItemStack dispenseStack(IBlockSource source, ItemStack stack) {
|
||||
|
||||
EnumFacing facing = BlockDispenser.func_149937_b(source.getBlockMetadata());
|
||||
World world = source.getWorld();
|
||||
int x = source.getXInt() + facing.getFrontOffsetX();
|
||||
int y = source.getYInt() + facing.getFrontOffsetY();
|
||||
int z = source.getZInt() + facing.getFrontOffsetZ();
|
||||
this.dispenseSound = ItemFertilizer.useFertillizer(stack, world, x, y, z);
|
||||
return stack;
|
||||
}
|
||||
@Override protected void playDispenseSound(IBlockSource source) {
|
||||
if(this.dispenseSound) {
|
||||
source.getWorld().playAuxSFX(1000, source.getXInt(), source.getYInt(), source.getZInt(), 0);
|
||||
} else {
|
||||
source.getWorld().playAuxSFX(1001, source.getXInt(), source.getYInt(), source.getZInt(), 0);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
||||
@ -2,13 +2,18 @@ package com.hbm.tileentity.machine;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockTallPlant.EnumTallFlower;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.packet.AuxParticlePacketNT;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.tileentity.INBTPacketReceiver;
|
||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||
|
||||
import api.hbm.fluid.IFluidStandardReceiver;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
@ -80,7 +85,17 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN
|
||||
List<EntityLivingBase> affected = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(cX - 1, cY - 0.25, cZ - 1, cX + 1, cY + 0.25, cZ + 1));
|
||||
|
||||
for(EntityLivingBase e : affected) {
|
||||
e.attackEntityFrom(ModDamageSource.turbofan, 100);
|
||||
if(e.isEntityAlive() && e.attackEntityFrom(ModDamageSource.turbofan, 100)) {
|
||||
worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F);
|
||||
int count = Math.min((int)Math.ceil(e.getMaxHealth() / 4), 250);
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setString("type", "vanillaburst");
|
||||
data.setInteger("count", count * 4);
|
||||
data.setDouble("motion", 0.1D);
|
||||
data.setString("mode", "blockdust");
|
||||
data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block));
|
||||
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY, e.posZ, 50));
|
||||
}
|
||||
}
|
||||
|
||||
if(state == 0) {
|
||||
@ -109,7 +124,11 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN
|
||||
Block b = worldObj.getBlock(pos.blockX, pos.blockY, pos.blockZ);
|
||||
|
||||
if(b.getMaterial() == Material.wood || b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) {
|
||||
state = 1;
|
||||
|
||||
int meta = worldObj.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ);
|
||||
if(!shouldIgnore(b, meta)) {
|
||||
state = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -184,9 +203,23 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN
|
||||
}
|
||||
}
|
||||
|
||||
/** Anything additionally that the detector nor the blades should pick up on, like non-mature willows */
|
||||
public static boolean shouldIgnore(Block b, int meta) {
|
||||
if(b == ModBlocks.plant_tall) {
|
||||
return meta == EnumTallFlower.CD2.ordinal() + 8 || meta == EnumTallFlower.CD3.ordinal() + 8;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected void tryInteract(int x, int y, int z) {
|
||||
|
||||
Block b = worldObj.getBlock(x, y, z);
|
||||
int meta = worldObj.getBlockMetadata(x, y, z);
|
||||
|
||||
if(shouldIgnore(b, meta)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) {
|
||||
worldObj.func_147480_a(x, y, z, true);
|
||||
|
||||
@ -161,7 +161,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme
|
||||
float freeChance = this.getFreeChance();
|
||||
|
||||
if(freeChance == 0 || freeChance < worldObj.rand.nextFloat())
|
||||
this.decrStackSize(0, 1);
|
||||
this.decrStackSize(0, result.itemAmount);
|
||||
}
|
||||
|
||||
private boolean canProcess() {
|
||||
@ -179,6 +179,10 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme
|
||||
if(result == null)
|
||||
return false;
|
||||
|
||||
//Not enough of the input item?
|
||||
if(slots[0].stackSize < result.itemAmount)
|
||||
return false;
|
||||
|
||||
if(tank.getFill() < result.acidAmount) return false;
|
||||
|
||||
ItemStack stack = result.output.copy();
|
||||
|
||||
@ -8,14 +8,18 @@ import com.hbm.entity.projectile.EntitySawblade;
|
||||
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.packet.AuxParticlePacketNT;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.tileentity.INBTPacketReceiver;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineAutocrafter.InventoryCraftingAuto;
|
||||
import com.hbm.util.ItemStackUtil;
|
||||
|
||||
import api.hbm.tile.IHeatSource;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
@ -87,10 +91,20 @@ public class TileEntitySawmill extends TileEntityMachineBase {
|
||||
}
|
||||
|
||||
AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(-1D, 0.375D, -1D, -0.875, 2.375D, 1D);
|
||||
aabb = BlockDummyable.getAABBRotationOffset(aabb, xCoord, yCoord, zCoord, ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getRotation(ForgeDirection.UP));
|
||||
aabb = BlockDummyable.getAABBRotationOffset(aabb, xCoord + 0.5, yCoord, zCoord + 0.5, ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getRotation(ForgeDirection.UP));
|
||||
for(Object o : worldObj.getEntitiesWithinAABB(EntityLivingBase.class, aabb)) {
|
||||
EntityLivingBase living = (EntityLivingBase) o;
|
||||
living.attackEntityFrom(ModDamageSource.turbofan, 100);
|
||||
EntityLivingBase e = (EntityLivingBase) o;
|
||||
if(e.isEntityAlive() && e.attackEntityFrom(ModDamageSource.turbofan, 100)) {
|
||||
worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F);
|
||||
int count = Math.min((int)Math.ceil(e.getMaxHealth() / 4), 250);
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setString("type", "vanillaburst");
|
||||
data.setInteger("count", count * 4);
|
||||
data.setDouble("motion", 0.1D);
|
||||
data.setString("mode", "blockdust");
|
||||
data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block));
|
||||
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY, e.posZ, 50));
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
@ -125,7 +125,7 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple
|
||||
|
||||
this.tanks[2].setFill(tanks[2].getFill() - solutionRequired);
|
||||
|
||||
OilSpot.generateOilSpot(worldObj, xCoord, zCoord, destructionRange, 10);
|
||||
OilSpot.generateOilSpot(worldObj, xCoord, zCoord, destructionRange, 10, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
150
src/main/java/com/hbm/wiaj/cannery/CanneryWillow.java
Normal file
@ -0,0 +1,150 @@
|
||||
package com.hbm.wiaj.cannery;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType;
|
||||
import com.hbm.blocks.generic.BlockTallPlant.EnumTallFlower;
|
||||
import com.hbm.inventory.OreDictManager.DictFrame;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.ItemEnums.EnumPlantType;
|
||||
import com.hbm.util.I18nUtil;
|
||||
import com.hbm.wiaj.JarScene;
|
||||
import com.hbm.wiaj.JarScript;
|
||||
import com.hbm.wiaj.WorldInAJar;
|
||||
import com.hbm.wiaj.actions.ActionCreateActor;
|
||||
import com.hbm.wiaj.actions.ActionRemoveActor;
|
||||
import com.hbm.wiaj.actions.ActionSetBlock;
|
||||
import com.hbm.wiaj.actions.ActionSetZoom;
|
||||
import com.hbm.wiaj.actions.ActionWait;
|
||||
import com.hbm.wiaj.actors.ActorFancyPanel;
|
||||
import com.hbm.wiaj.actors.ActorFancyPanel.Orientation;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class CanneryWillow extends CanneryBase {
|
||||
|
||||
@Override
|
||||
public ItemStack getIcon() {
|
||||
return DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "cannery.willow";
|
||||
}
|
||||
|
||||
@Override
|
||||
public JarScript createScript() {
|
||||
|
||||
WorldInAJar world = new WorldInAJar(5, 5, 5);
|
||||
JarScript script = new JarScript(world);
|
||||
|
||||
JarScene scene0 = new JarScene(script);
|
||||
scene0.add(new ActionSetZoom(3, 0));
|
||||
|
||||
for(int x = world.sizeX - 1; x >= 0 ; x--) {
|
||||
for(int z = 0; z < world.sizeZ; z++) {
|
||||
scene0.add(new ActionSetBlock(x, 1, z, Blocks.grass));
|
||||
scene0.add(new ActionSetBlock(x, 0, z, Blocks.dirt));
|
||||
}
|
||||
scene0.add(new ActionWait(2));
|
||||
}
|
||||
|
||||
scene0.add(new ActionWait(8));
|
||||
scene0.add(new ActionSetBlock(2, 2, 2, ModBlocks.plant_flower, EnumFlowerType.CD0.ordinal()));
|
||||
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
scene0.add(new ActionCreateActor(0, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -15, new Object[][] {{I18nUtil.resolveKey("cannery.willow.0")}}, 150)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(80));
|
||||
|
||||
scene0.add(new ActionCreateActor(0, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -15, new Object[][] {{I18nUtil.resolveKey("cannery.willow.1")}}, 150)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(80));
|
||||
scene0.add(new ActionRemoveActor(0));
|
||||
|
||||
scene0.add(new ActionWait(10));
|
||||
scene0.add(new ActionSetBlock(2, 1, 1, Blocks.air));
|
||||
scene0.add(new ActionWait(10));
|
||||
scene0.add(new ActionSetBlock(2, 1, 1, Blocks.water));
|
||||
|
||||
scene0.add(new ActionWait(20));
|
||||
|
||||
scene0.add(new ActionCreateActor(0, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -15, new Object[][] {{I18nUtil.resolveKey("cannery.willow.2")}}, 150)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(80));
|
||||
scene0.add(new ActionRemoveActor(0));
|
||||
scene0.add(new ActionWait(20));
|
||||
scene0.add(new ActionSetBlock(2, 2, 2, ModBlocks.plant_flower, EnumFlowerType.CD1.ordinal()));
|
||||
|
||||
scene0.add(new ActionWait(20));
|
||||
|
||||
scene0.add(new ActionCreateActor(0, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -15, new Object[][] {{I18nUtil.resolveKey("cannery.willow.3")}}, 150)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(80));
|
||||
scene0.add(new ActionRemoveActor(0));
|
||||
scene0.add(new ActionWait(20));
|
||||
scene0.add(new ActionSetBlock(2, 2, 2, ModBlocks.plant_tall, EnumTallFlower.CD2.ordinal()));
|
||||
scene0.add(new ActionSetBlock(2, 3, 2, ModBlocks.plant_tall, EnumTallFlower.CD2.ordinal() + 8));
|
||||
|
||||
scene0.add(new ActionWait(20));
|
||||
scene0.add(new ActionSetBlock(2, 2, 2, ModBlocks.plant_tall, EnumTallFlower.CD3.ordinal()));
|
||||
scene0.add(new ActionSetBlock(2, 3, 2, ModBlocks.plant_tall, EnumTallFlower.CD3.ordinal() + 8));
|
||||
scene0.add(new ActionWait(20));
|
||||
|
||||
scene0.add(new ActionCreateActor(0, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -35, new Object[][] {{I18nUtil.resolveKey("cannery.willow.4")}}, 150)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
scene0.add(new ActionWait(80));
|
||||
scene0.add(new ActionCreateActor(0, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -35, new Object[][] {{I18nUtil.resolveKey("cannery.willow.5")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(100));
|
||||
scene0.add(new ActionRemoveActor(0));
|
||||
scene0.add(new ActionWait(20));
|
||||
scene0.add(new ActionSetBlock(2, 1, 2, ModBlocks.dirt_oily));
|
||||
|
||||
scene0.add(new ActionWait(20));
|
||||
scene0.add(new ActionSetBlock(2, 2, 2, ModBlocks.plant_tall, EnumTallFlower.CD4.ordinal()));
|
||||
scene0.add(new ActionSetBlock(2, 3, 2, ModBlocks.plant_tall, EnumTallFlower.CD4.ordinal() + 8));
|
||||
scene0.add(new ActionSetBlock(2, 1, 2, Blocks.dirt));
|
||||
scene0.add(new ActionWait(20));
|
||||
|
||||
scene0.add(new ActionCreateActor(0, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -35, new Object[][] {{I18nUtil.resolveKey("cannery.willow.6")}}, 150)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
scene0.add(new ActionWait(100));
|
||||
scene0.add(new ActionRemoveActor(0));
|
||||
|
||||
JarScene scene1 = new JarScene(script);
|
||||
scene1.add(new ActionCreateActor(0, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -35, new Object[][] {{I18nUtil.resolveKey("cannery.willow.7")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(0));
|
||||
|
||||
scene1.add(new ActionWait(20));
|
||||
scene1.add(new ActionCreateActor(0, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 10, -25, new Object[][] {{"=", DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.CD0), "x1 + ", DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW), "x3-6"}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
scene1.add(new ActionSetBlock(2, 3, 2, Blocks.air));
|
||||
scene1.add(new ActionSetBlock(2, 2, 2, ModBlocks.plant_flower, EnumFlowerType.CD0.ordinal()));
|
||||
scene1.add(new ActionWait(60));
|
||||
|
||||
scene1.add(new ActionRemoveActor(0));
|
||||
scene1.add(new ActionWait(20));
|
||||
scene1.add(new ActionCreateActor(0, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -15, new Object[][] {{I18nUtil.resolveKey("cannery.willow.8")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
scene1.add(new ActionWait(100));
|
||||
|
||||
scene1.add(new ActionCreateActor(0, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -15, new Object[][] {{I18nUtil.resolveKey("cannery.willow.9")}}, 150)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(0));
|
||||
|
||||
script.addScene(scene0).addScene(scene1);
|
||||
return script;
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,11 @@ package com.hbm.wiaj.cannery;
|
||||
import java.util.HashMap;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType;
|
||||
import com.hbm.inventory.OreDictManager.DictFrame;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.ItemEnums.EnumPlantType;
|
||||
|
||||
public class Jars {
|
||||
|
||||
@ -19,5 +23,8 @@ public class Jars {
|
||||
canneries.put(new ComparableStack(ModBlocks.machine_silex), new CannerySILEX());
|
||||
canneries.put(new ComparableStack(ModBlocks.foundry_channel), new CanneryFoundryChannel());
|
||||
canneries.put(new ComparableStack(ModBlocks.machine_crucible), new CanneryCrucible());
|
||||
|
||||
canneries.put(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CanneryWillow());
|
||||
canneries.put(new ComparableStack(DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.CD0)), new CanneryWillow());
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,9 @@ package com.hbm.world.feature;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockDeadPlant.EnumDeadPlantType;
|
||||
import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType;
|
||||
import com.hbm.blocks.generic.BlockTallPlant;
|
||||
import com.hbm.blocks.generic.BlockTallPlant.EnumTallFlower;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockBush;
|
||||
@ -15,7 +18,7 @@ import net.minecraftforge.common.IPlantable;
|
||||
|
||||
public class OilSpot {
|
||||
|
||||
public static void generateOilSpot(World world, int x, int z, int width, int count) {
|
||||
public static void generateOilSpot(World world, int x, int z, int width, int count, boolean addWillows) {
|
||||
|
||||
for(int i = 0; i < count; i++) {
|
||||
int rX = x + (int)(world.rand.nextGaussian() * width);
|
||||
@ -26,6 +29,11 @@ public class OilSpot {
|
||||
|
||||
Block below = world.getBlock(rX, y - 1, rZ);
|
||||
Block ground = world.getBlock(rX, y, rZ);
|
||||
int meta = world.getBlockMetadata(rX, y, rZ);
|
||||
|
||||
/* don't affect mustard willows */
|
||||
if(ground == ModBlocks.plant_flower && (meta == EnumFlowerType.CD0.ordinal() || meta == EnumFlowerType.CD1.ordinal())) continue;
|
||||
if(ground == ModBlocks.plant_tall && (meta == EnumTallFlower.CD2.ordinal() || meta == EnumTallFlower.CD3.ordinal() || meta == EnumTallFlower.CD4.ordinal())) continue;
|
||||
|
||||
if(below.isNormalCube() && ground != ModBlocks.plant_dead) {
|
||||
if(ground instanceof BlockTallGrass) {
|
||||
@ -40,7 +48,7 @@ public class OilSpot {
|
||||
}
|
||||
} else if(ground instanceof BlockFlower) {
|
||||
world.setBlock(rX, y, rZ, ModBlocks.plant_dead, EnumDeadPlantType.FLOWER.ordinal(), 3);
|
||||
} else if(ground instanceof BlockDoublePlant) {
|
||||
} else if(ground instanceof BlockDoublePlant || ground instanceof BlockTallPlant) {
|
||||
world.setBlock(rX, y, rZ, ModBlocks.plant_dead, EnumDeadPlantType.BIGFLOWER.ordinal(), 3);
|
||||
} else if(ground instanceof BlockBush) {
|
||||
world.setBlock(rX, y, rZ, ModBlocks.plant_dead, EnumDeadPlantType.GENERIC.ordinal(), 3);
|
||||
@ -51,6 +59,13 @@ public class OilSpot {
|
||||
|
||||
if(ground == Blocks.grass || ground == Blocks.dirt) {
|
||||
world.setBlock(rX, y, rZ, world.rand.nextInt(10) == 0 ? ModBlocks.dirt_oily : ModBlocks.dirt_dead);
|
||||
|
||||
if(addWillows && world.rand.nextInt(50) == 0) {
|
||||
if(ModBlocks.plant_flower.canPlaceBlockAt(world, rX, y + 1, rZ)) {
|
||||
world.setBlock(rX, y + 1, rZ, ModBlocks.plant_flower, EnumFlowerType.CD0.ordinal(), 3);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
} else if(ground == Blocks.sand || ground == ModBlocks.ore_oil_sand) {
|
||||
|
||||
@ -412,6 +412,7 @@ container.watzPowerplant=Watzkraftwerk
|
||||
container.zirnox=ZIRNOX Atomreaktor
|
||||
|
||||
crucible.aa=Herstellung - Fortgeschrittene Legierung
|
||||
crucible.cdalloy=Herstellung Cadmiumstahl
|
||||
crucible.ferro=Herstellung - Ferrouran
|
||||
crucible.hematite=Herstellung - Eisen aus Hämatit
|
||||
crucible.hss=Herstellung - Schnellarbeitsstahl
|
||||
@ -701,6 +702,7 @@ hbmmat.bismuth=Bismut
|
||||
hbmmat.borax=Borax
|
||||
hbmmat.boron=Bor
|
||||
hbmmat.carbon=Kohlenstoff
|
||||
hbmmat.cdalloy=Cadmiumstahl
|
||||
hbmmat.cinnabar=Zinnober
|
||||
hbmmat.cmbsteel=Combinestahl
|
||||
hbmmat.coal=Kohle
|
||||
@ -1976,7 +1978,9 @@ item.ingot_beryllium.name=Berylliumbarren
|
||||
item.ingot_bismuth.name=Bismutbarren
|
||||
item.ingot_boron.name=Borbarren
|
||||
item.ingot_c4.name=C4-Tafel
|
||||
item.ingot_cadmium.name=Cadmiumbarren
|
||||
item.ingot_calcium.name=Kalziumbarren
|
||||
item.ingot_cdalloy.name=Cadmiumstahlbarren
|
||||
item.ingot_chainsteel.name=Schwerer Kettenstahl
|
||||
item.ingot_co60.name=Kobalt-60-Barren
|
||||
item.ingot_cobalt.name=Kobaltbarren
|
||||
@ -2549,6 +2553,7 @@ item.piston_set_dura.name=Ottomotorenkolben (Schnellarbeitsstahl)
|
||||
item.piston_set_starmetal.name=Ottomotorenkolben (Sternmetall)
|
||||
item.piston_set_steel.name=Ottomotorenkolben (Stahl)
|
||||
item.plan_c.name=Plan C
|
||||
item.plant_item.mustardwillow.name=Senf-Weidenblatt
|
||||
item.plant_item.rope.name=Seil
|
||||
item.plant_item.tobacco.name=Tabak
|
||||
item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte
|
||||
@ -2595,6 +2600,7 @@ item.powder_borax.name=Borax
|
||||
item.powder_boron.name=Borstaub
|
||||
item.powder_boron_tiny.name=Kleiner Haufen Borstaub
|
||||
item.powder_bromine.name=Bromstaub
|
||||
item.powder_cadmium.name=Cadmiumstaub
|
||||
item.powder_caesium.name=Caesiumstaub
|
||||
item.powder_calcium.name=Kalziumstaub
|
||||
item.powder_cerium.name=Cerstaub
|
||||
@ -2621,6 +2627,7 @@ item.powder_dineutronium.name=Dineutroniumstaub
|
||||
item.powder_dura_steel.name=Schnellarbeitsstahlstaub
|
||||
item.powder_emerald.name=Smaragdstaub
|
||||
item.powder_euphemium.name=Euphemiumstaub
|
||||
item.powder_fertilizer.name=Industriedünger
|
||||
item.powder_fire.name=Roter Phosphor
|
||||
item.powder_flux.name=Flussmittel
|
||||
item.powder_gold.name=Goldstaub
|
||||
@ -3768,7 +3775,7 @@ tile.heater_firebox.desc=Erzeugt Wärme aus Festbrennstoff.
|
||||
tile.heater_heatex.name=Wärmetauschender Heizer
|
||||
tile.heater_heatex.desc=Erzeugt Wärme aus heißen Flüssigkeiten.
|
||||
tile.heater_oilburner.name=Brenner
|
||||
tile.heater_oilburner.desc=Erzäuft Wärme aus fluiden Brennstoffen.
|
||||
tile.heater_oilburner.desc=Erzäuft Wärme aus fluiden Brennstoffen.$Kann mit einem Schraubenzeiher konfiguriert werden.
|
||||
tile.heater_oven.name=Heizofen
|
||||
tile.heater_oven.desc=Erzeugt Wärme aus Festbrennstoff.$Nimmt von unten Wärme mit 50%% Effizienz auf.
|
||||
tile.hev_battery.name=Anzugs-Batterie
|
||||
@ -3889,6 +3896,7 @@ tile.machine_rtg_red.name=Fulminationsgenerator
|
||||
tile.machine_rtg_yellow.name=Australium Supergenerator
|
||||
tile.machine_satlinker.name=Satelliten-ID-Manager
|
||||
tile.machine_sawmill.name=Stirling-Sägemühle
|
||||
tile.machine_sawmill.desc=Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Minimalaufnahme: 100 TU/t, Maximalaufnahme: 300 TU/t
|
||||
tile.machine_schrabidium_battery.name=Schrabidium-Energiespeicherblock
|
||||
tile.machine_schrabidium_transmutator.name=Schrabidium-Transmutationsgerät
|
||||
tile.machine_selenium.name=Hochleistungs-Sternmotor
|
||||
@ -4035,11 +4043,17 @@ tile.pink_planks.name=Pinke Holzbretter
|
||||
tile.pink_slab.name=Pinke Holzstufe
|
||||
tile.pink_stairs.name=Pinke Holztreppen
|
||||
tile.plant_dead.name=Tote Pflanze
|
||||
tile.plant_flower.cd0.name=Senf-Weide
|
||||
tile.plant_flower.cd1.name=Senf-Weide
|
||||
tile.plant_flower.foxglove.name=Roter Fingerhut
|
||||
tile.plant_flower.nightshade.name=Schwarze Tollkirsche
|
||||
tile.plant_flower.tobacco.name=Tabakpflanze
|
||||
tile.plant_flower.weed.name=Hanf
|
||||
tile.plant_reeds.name=Schilf
|
||||
tile.plant_tall.cd2.name=Senf-Weide
|
||||
tile.plant_tall.cd3.name=Senf-Weide
|
||||
tile.plant_tall.cd4.name=Senf-Weide (Reif)
|
||||
tile.plant_tall.weed.name=Hanf
|
||||
tile.plasma.name=Plasma
|
||||
tile.plasma_heater.name=Plasmaerhitzer
|
||||
tile.pole_satellite_receiver.name=Satellitenschüssel
|
||||
|
||||
@ -442,6 +442,18 @@ cannery.stirling.1=It needs to be placed on top of a heat-producing machine, suc
|
||||
cannery.stirling.2=The amount of heat it can utilize however is limited, overspinning can lead to catastrophic malfunction.
|
||||
cannery.stirling.3=The upgraded version can take significantly more heat without breaking.
|
||||
|
||||
cannery.willow=Mustard Willow
|
||||
cannery.willow.0=The mustard willow is a plant that allows cadmium metal to be harvested.
|
||||
cannery.willow.1=Willows can be placed on dirt, grass or even dead/oily dirt, but they require water to grow.
|
||||
cannery.willow.2=Willows can be fertilized with bone meal or industrial fertilizer. They do not need light to grow.
|
||||
cannery.willow.3=After the second stage of growth, they will need an extra block of space above them to grow further.
|
||||
cannery.willow.4=After the fourth stage of growth, they require dead or oily dirt below them.
|
||||
cannery.willow.5=This can be done either by manually planting willows on dead/oily dirt, or by having a hydraulic fracking tower nearby which continuously contaminates the ground.
|
||||
cannery.willow.6=After reaching the final stage, the willow will remove contamination from the ground, reverting the dead/oily dirt back into regular dirt.
|
||||
cannery.willow.7=Now the willow's leaves can be harvested. Breaking the top block will drop a small willow plant, 3-6 leaves and keep the bottom part of the plant intact.
|
||||
cannery.willow.8=Soon the plant will start growing again, yielding more leaves if the dirt is replaced with oily dirt. The leaves can be processed into cadmium powder using an ore acidizer.
|
||||
cannery.willow.9=Harvesting willow leaves can be automated using the automatic buzzsaw, it will only break plants that are ready for harvest.
|
||||
|
||||
chem.ARSENIC=Arsenic Extraction
|
||||
chem.ASPHALT=Asphalt Production
|
||||
chem.BAKELITE=Bakelite Production
|
||||
@ -693,6 +705,7 @@ container.watzPowerplant=Watz Power Plant
|
||||
container.zirnox=ZIRNOX Nuclear Reactor
|
||||
|
||||
crucible.aa=Advanced Alloy Production
|
||||
crucible.cdalloy=Cadmium Steel Production
|
||||
crucible.ferro=Ferrouranium Production
|
||||
crucible.hematite=Iron Production from Hematite
|
||||
crucible.hss=High-Speed Steel Production
|
||||
@ -1266,6 +1279,7 @@ hbmmat.bismuth=Bismuth
|
||||
hbmmat.borax=Borax
|
||||
hbmmat.boron=Boron
|
||||
hbmmat.carbon=Carbon
|
||||
hbmmat.cdalloy=Cadmium Steel
|
||||
hbmmat.cinnabar=Cinnabar
|
||||
hbmmat.cmbsteel=Combine Steel
|
||||
hbmmat.coal=Coal
|
||||
@ -2608,7 +2622,9 @@ item.ingot_beryllium.name=Beryllium Ingot
|
||||
item.ingot_bismuth.name=Bismuth Ingot
|
||||
item.ingot_boron.name=Boron Ingot
|
||||
item.ingot_c4.name=Bar of Composition C-4
|
||||
item.ingot_cadmium.name=Cadmium Ingot
|
||||
item.ingot_calcium.name=Calcium Ingot
|
||||
item.ingot_cdalloy.name=Cadmium Steel Ingot
|
||||
item.ingot_chainsteel.name=Heavy Chainsteel
|
||||
item.ingot_co60.name=Cobalt-60 Ingot
|
||||
item.ingot_cobalt.name=Cobalt Ingot
|
||||
@ -3249,6 +3265,7 @@ item.piston_set_starmetal.name=Starmetal Piston Set
|
||||
item.piston_set_steel.name=Steel Piston Set
|
||||
item.plan_c.name=Plan C
|
||||
item.plan_c.desc=Deadly
|
||||
item.plant_item.mustardwillow.name=Mustard Willow Leaf
|
||||
item.plant_item.rope.name=Rope
|
||||
item.plant_item.tobacco.name=Tobacco
|
||||
item.plate_advanced_alloy.name=Advanced Alloy Plate
|
||||
@ -3305,6 +3322,7 @@ item.powder_borax.name=Borax
|
||||
item.powder_boron.name=Boron Powder
|
||||
item.powder_boron_tiny.name=Tiny Pile of Boron Powder
|
||||
item.powder_bromine.name=Bromine Powder
|
||||
item.powder_cadmium.name=Cadmium Powder
|
||||
item.powder_caesium.name=Caesium Powder
|
||||
item.powder_calcium.name=Calcium Powder
|
||||
item.powder_cerium.name=Cerium Powder
|
||||
@ -3332,6 +3350,7 @@ item.powder_dura_steel.name=High-Speed Steel Powder
|
||||
item.powder_emerald.name=Emerald Powder
|
||||
item.powder_euphemium.name=Euphemium Powder
|
||||
item.powder_euphemium.desc=Pulverized pink.$Tastes like strawberries.
|
||||
item.powder_fertilizer.name=Industrial Fertilizer
|
||||
item.powder_fire.name=Red Phosphorus
|
||||
item.powder_fire.desc=Used in multi purpose bombs:$Incendiary bombs are fun!
|
||||
item.powder_flux.name=Flux
|
||||
@ -4568,7 +4587,7 @@ tile.heater_firebox.desc=Burns solid fuel to produce heat.
|
||||
tile.heater_heatex.name=Heat Exchanging Heater
|
||||
tile.heater_heatex.desc=Produces heat from hot fluids.
|
||||
tile.heater_oilburner.name=Fluid Burner
|
||||
tile.heater_oilburner.desc=Burns fluids to produce heat.
|
||||
tile.heater_oilburner.desc=Burns fluids to produce heat.$Can be configured with a screwdriver.
|
||||
tile.heater_oven.name=Heating Oven
|
||||
tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bottom with 50%% efficiency.
|
||||
tile.hev_battery.name=Suit Battery
|
||||
@ -4691,6 +4710,7 @@ tile.machine_rtg_red.name=Fulmination Generator
|
||||
tile.machine_rtg_yellow.name=Australium Superfuel Reactor
|
||||
tile.machine_satlinker.name=Satellite ID Manager
|
||||
tile.machine_sawmill.name=Stirling Sawmill
|
||||
tile.machine_sawmill.desc=Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Min intake: 100 TU/t, Max intake: 300 TU/t
|
||||
tile.machine_schrabidium_battery.name=Schrabidium Energy Storage Block
|
||||
tile.machine_schrabidium_transmutator.name=Schrabidium Transmutation Device
|
||||
tile.machine_selenium.name=Radial Performance Engine
|
||||
@ -4838,11 +4858,17 @@ tile.pink_planks.name=Pink Wood Planks
|
||||
tile.pink_slab.name=Pink Wood Slab
|
||||
tile.pink_stairs.name=Pink Wood Stairs
|
||||
tile.plant_dead.name=Dead Plant
|
||||
tile.plant_flower.cd0.name=Mustard Willow
|
||||
tile.plant_flower.cd1.name=Mustard Willow
|
||||
tile.plant_flower.foxglove.name=Foxglove
|
||||
tile.plant_flower.nightshade.name=Deadly Nightshade
|
||||
tile.plant_flower.tobacco.name=Tobacco Plant
|
||||
tile.plant_flower.weed.name=Hemp
|
||||
tile.plant_reeds.name=Reeds
|
||||
tile.plant_tall.cd2.name=Mustard Willow
|
||||
tile.plant_tall.cd3.name=Mustard Willow
|
||||
tile.plant_tall.cd4.name=Mustard Willow (Mature)
|
||||
tile.plant_tall.weed.name=Hemp
|
||||
tile.plasma.name=Plasma
|
||||
tile.plasma_heater.name=Plasma Heater
|
||||
tile.pole_satellite_receiver.name=Satellite Dish
|
||||
|
||||
|
After Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 433 B |
|
After Width: | Height: | Size: 499 B |
|
After Width: | Height: | Size: 323 B |
|
After Width: | Height: | Size: 480 B |
|
After Width: | Height: | Size: 398 B |
|
After Width: | Height: | Size: 465 B |
|
After Width: | Height: | Size: 410 B |
BIN
src/main/resources/assets/hbm/textures/items/ingot_cadmium.png
Normal file
|
After Width: | Height: | Size: 438 B |
BIN
src/main/resources/assets/hbm/textures/items/ingot_cdalloy.png
Normal file
|
After Width: | Height: | Size: 419 B |
|
After Width: | Height: | Size: 365 B |
BIN
src/main/resources/assets/hbm/textures/items/powder_cadmium.png
Normal file
|
After Width: | Height: | Size: 480 B |
|
After Width: | Height: | Size: 467 B |