This commit is contained in:
Bob 2023-04-23 22:00:59 +02:00
parent 43c43eb14f
commit d0854bb795
29 changed files with 396 additions and 50 deletions

View File

@ -1,6 +1,6 @@
mod_version=1.0.27 mod_version=1.0.27
# Empty build number makes a release type # Empty build number makes a release type
mod_build_number=4562 mod_build_number=4578
credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\
\ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\

View File

@ -177,12 +177,7 @@ public class BlockTallPlant extends BlockEnumMulti implements IPlantable, IGrowa
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) {
if(meta > 7) { if(meta > 7) {
// dead
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) { } else if(world.getBlock(x, y + 1, z) == this) {
if(player.capabilities.isCreativeMode) { if(player.capabilities.isCreativeMode) {

View File

@ -11,6 +11,7 @@ import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityCrucible; import com.hbm.tileentity.machine.TileEntityCrucible;
import api.hbm.block.ICrucibleAcceptor;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -24,8 +25,9 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.client.event.DrawBlockHighlightEvent;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineCrucible extends BlockDummyable { public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor {
public MachineCrucible() { public MachineCrucible() {
super(Material.rock); super(Material.rock);
@ -151,4 +153,31 @@ public class MachineCrucible extends BlockDummyable {
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(aabb.expand(exp, exp, exp).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1);
ICustomBlockHighlight.cleanup(); ICustomBlockHighlight.cleanup();
} }
@Override
public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return false;
TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]);
if(!(tile instanceof TileEntityCrucible)) return false;
TileEntityCrucible crucible = (TileEntityCrucible) tile;
return crucible.canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack);
}
@Override
public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return stack;
TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]);
if(!(tile instanceof TileEntityCrucible)) return stack;
TileEntityCrucible crucible = (TileEntityCrucible) tile;
return crucible.pour(world, x, y, z, dX, dY, dZ, side, stack);
}
@Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return false; }
@Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return null; }
} }

View File

@ -3,12 +3,14 @@ package com.hbm.crafting;
import static com.hbm.inventory.OreDictManager.*; import static com.hbm.inventory.OreDictManager.*;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBreedingRod.*; import com.hbm.items.machine.ItemBreedingRod.*;
import com.hbm.items.machine.ItemWatzPellet.EnumWatzType;
import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType;
import com.hbm.main.CraftingManager; import com.hbm.main.CraftingManager;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapedOreRecipe;
/** /**
@ -123,6 +125,20 @@ public class RodRecipes {
addRBMKRod(ModItems.billet_zfb_pu241, ModItems.rbmk_fuel_zfb_pu241); addRBMKRod(ModItems.billet_zfb_pu241, ModItems.rbmk_fuel_zfb_pu241);
addRBMKRod(ModItems.billet_zfb_am_mix, ModItems.rbmk_fuel_zfb_am_mix); addRBMKRod(ModItems.billet_zfb_am_mix, ModItems.rbmk_fuel_zfb_am_mix);
CraftingManager.addShapelessAuto(new ItemStack(ModItems.rbmk_fuel_drx, 1), new Object[] { ModItems.rbmk_fuel_balefire, ModItems.particle_digamma }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.rbmk_fuel_drx, 1), new Object[] { ModItems.rbmk_fuel_balefire, ModItems.particle_digamma });
addPellet(SA326, EnumWatzType.SCHRABIDIUM);
addPellet(ModItems.ingot_hes, EnumWatzType.HES);
addPellet(ModItems.ingot_schrabidium_fuel, EnumWatzType.MES);
addPellet(ModItems.ingot_les, EnumWatzType.LES);
addPellet(NP237, EnumWatzType.HEN);
addPellet(ModItems.ingot_uranium_fuel, EnumWatzType.MEU);
addPellet(ModItems.ingot_pu_mix, EnumWatzType.MEP);
addPellet(PB, EnumWatzType.LEAD);
addPellet(B, EnumWatzType.BORON);
addPellet(U238, EnumWatzType.DU);
/* GT6 */
if(OreDictionary.doesOreNameExist("ingotNaquadah-Enriched")) addPellet(new DictFrame("Naquadah-Enriched"), EnumWatzType.NQD);
if(OreDictionary.doesOreNameExist("ingotNaquadria")) addPellet(new DictFrame("Naquadria"), EnumWatzType.NQR);
} }
//Fill rods with one billet. For fuels only, therefore no unloading or ore dict //Fill rods with one billet. For fuels only, therefore no unloading or ore dict
@ -223,4 +239,12 @@ public class RodRecipes {
public static void addZIRNOXRod(DictFrame mat, EnumZirnoxType num) { public static void addZIRNOXRod(DictFrame mat, EnumZirnoxType num) {
CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_zirnox, 1, num.ordinal()), new Object[] { ModItems.rod_zirnox_empty, mat.billet(), mat.billet() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_zirnox, 1, num.ordinal()), new Object[] { ModItems.rod_zirnox_empty, mat.billet(), mat.billet() });
} }
/** Watz pellet crafting **/
public static void addPellet(DictFrame mat, EnumWatzType num) {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.watz_pellet, 1, num.ordinal()), new Object[] { " I ", "IGI", " I ", 'I', mat.ingot(), 'G', GRAPHITE.ingot() });
}
public static void addPellet(Item item, EnumWatzType num) {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.watz_pellet, 1, num.ordinal()), new Object[] { " I ", "IGI", " I ", 'I', item, 'G', GRAPHITE.ingot() });
}
} }

View File

@ -5,6 +5,8 @@ import com.hbm.config.GeneralConfig;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import static com.hbm.inventory.OreDictManager.*; import static com.hbm.inventory.OreDictManager.*;
import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemBattery;
import com.hbm.items.tool.ItemBlowtorch; import com.hbm.items.tool.ItemBlowtorch;
@ -137,6 +139,7 @@ public class ToolRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.chemistry_set_boron), new Object[] { "GIG", "GCG", 'G', ModBlocks.glass_boron, 'I', STEEL.ingot(), 'C', CO.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.chemistry_set_boron), new Object[] { "GIG", "GCG", 'G', ModBlocks.glass_boron, 'I', STEEL.ingot(), 'C', CO.ingot() });
CraftingManager.addRecipeAuto(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), new Object[] { "CC ", " I ", "CCC", 'C', CU.plate528(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), new Object[] { "CC ", " I ", "CCC", 'C', CU.plate528(), 'I', IRON.ingot() });
CraftingManager.addRecipeAuto(ItemBlowtorch.getEmptyTool(ModItems.acetylene_torch), new Object[] { "SS ", " PS", " T ", 'S', STEEL.plate528(), 'P', ANY_PLASTIC.ingot(), 'T', ModItems.tank_steel }); CraftingManager.addRecipeAuto(ItemBlowtorch.getEmptyTool(ModItems.acetylene_torch), new Object[] { "SS ", " PS", " T ", 'S', STEEL.plate528(), 'P', ANY_PLASTIC.ingot(), 'T', ModItems.tank_steel });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.boltgun), new Object[] { "DPS", " RD", " D ", 'D', DURA.ingot(), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'R', RUBBER.ingot(), 'S', ModItems.hull_small_steel });
//Bobmazon //Bobmazon
CraftingManager.addShapelessAuto(new ItemStack(ModItems.bobmazon_materials), new Object[] { Items.book, Items.gold_nugget, Items.string }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.bobmazon_materials), new Object[] { Items.book, Items.gold_nugget, Items.string });

View File

@ -29,6 +29,7 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect; import net.minecraft.potion.PotionEffect;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -66,8 +67,9 @@ public class EntityMist extends Entity {
public void onEntityUpdate() { public void onEntityUpdate() {
float height = this.dataWatcher.getWatchableObjectFloat(12); float height = this.dataWatcher.getWatchableObjectFloat(12);
this.yOffset = -height / 2F; this.yOffset = 0;
this.setSize(this.dataWatcher.getWatchableObjectFloat(11), height); this.setSize(this.dataWatcher.getWatchableObjectFloat(11), height);
this.setPosition(this.posX, this.posY, this.posZ);
if(!worldObj.isRemote) { if(!worldObj.isRemote) {
@ -90,11 +92,20 @@ public class EntityMist extends Entity {
return; return;
} }
List<Entity> affected = worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox); AxisAlignedBB aabb = this.boundingBox.copy();
List<Entity> affected = worldObj.getEntitiesWithinAABBExcludingEntity(this, aabb.offset(-this.width / 2, 0, -this.width / 2));
for(Entity e : affected) { for(Entity e : affected) {
this.affect(e, intensity); this.affect(e, intensity);
} }
} else {
for(int i = 0; i < 2; i++) {
double x = this.boundingBox.minX + rand.nextDouble() * (this.boundingBox.maxX - this.boundingBox.minX);
double y = this.boundingBox.minY + rand.nextDouble() * (this.boundingBox.maxY - this.boundingBox.minY);
double z = this.boundingBox.minZ + rand.nextDouble() * (this.boundingBox.maxZ - this.boundingBox.minZ);
worldObj.spawnParticle("cloud", x, y, z, 0, 0, 0);
}
} }
} }

View File

@ -32,6 +32,7 @@ public class EntityCreeperPhosgene extends EntityCreeper {
if(!this.worldObj.isRemote) { if(!this.worldObj.isRemote) {
this.setDead(); this.setDead();
worldObj.createExplosion(this, posX, posY + this.height / 2, posZ, 2F, false);
EntityMist mist = new EntityMist(worldObj); EntityMist mist = new EntityMist(worldObj);
mist.setType(Fluids.PHOSGENE); mist.setType(Fluids.PHOSGENE);
mist.setPosition(posX, posY, posZ); mist.setPosition(posX, posY, posZ);

View File

@ -80,10 +80,15 @@ public class EntityShrapnel extends EntityThrowable {
} }
} }
} else if(this.dataWatcher.getWatchableObjectByte(16) == 3) {
if(worldObj.getBlock(mop.blockX, mop.blockY + 1, mop.blockZ).isReplaceable(worldObj, mop.blockX, mop.blockY + 1, mop.blockZ)) {
worldObj.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.mud_block);
}
} else { } else {
for(int i = 0; i < 5; i++) for(int i = 0; i < 5; i++) worldObj.spawnParticle("lava", posX, posY, posZ, 0.0, 0.0, 0.0);
worldObj.spawnParticle("lava", posX, posY, posZ, 0.0, 0.0, 0.0);
} }
worldObj.playSoundEffect(posX, posY, posZ, "random.fizz", 1.0F, 1.0F); worldObj.playSoundEffect(posX, posY, posZ, "random.fizz", 1.0F, 1.0F);
@ -97,4 +102,8 @@ public class EntityShrapnel extends EntityThrowable {
public void setVolcano(boolean b) { public void setVolcano(boolean b) {
this.dataWatcher.updateObject(16, (byte) (b ? 2 : 0)); this.dataWatcher.updateObject(16, (byte) (b ? 2 : 0));
} }
public void setWatz(boolean b) {
this.dataWatcher.updateObject(16, (byte) (b ? 3 : 0));
}
} }

View File

@ -162,8 +162,8 @@ public class Gun762mmFactory {
final BulletConfiguration bullet = Gun556mmFactory.get556Config().clone(); final BulletConfiguration bullet = Gun556mmFactory.get556Config().clone();
bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.STOCK)); bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.STOCK));
bullet.dmgMax *= 2; bullet.dmgMax = 20;
bullet.dmgMin *= 2; bullet.dmgMin = 24;
bullet.velocity *= 2.5; bullet.velocity *= 2.5;
bullet.maxAge *= 2; bullet.maxAge *= 2;
bullet.spread /= 2; bullet.spread /= 2;
@ -177,8 +177,8 @@ public class Gun762mmFactory {
final BulletConfiguration bullet = get762NATOConfig(); final BulletConfiguration bullet = get762NATOConfig();
bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.AP)); bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.AP));
bullet.dmgMax *= 1.5; bullet.dmgMax = 24;
bullet.dmgMin *= 1.5; bullet.dmgMin = 28;
bullet.spentCasing = CASING762NATO.clone().register("762NATOAP"); bullet.spentCasing = CASING762NATO.clone().register("762NATOAP");
@ -189,8 +189,8 @@ public class Gun762mmFactory {
final BulletConfiguration bullet = get762NATOConfig(); final BulletConfiguration bullet = get762NATOConfig();
bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.DU)); bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.DU));
bullet.dmgMax *= 2; bullet.dmgMax = 36;
bullet.dmgMin *= 2; bullet.dmgMin = 40;
bullet.spentCasing = CASING762NATO.clone().register("762NATODU"); bullet.spentCasing = CASING762NATO.clone().register("762NATODU");

View File

@ -223,8 +223,8 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler {
case 4: return new int[][] { case 4: return new int[][] {
{102, 24 - 9}, {102, 24 - 9},
{120, 24 - 9}, {120, 24 - 9},
{138 + 36, 24 + 9}, {102, 24 + 9},
{156 + 36, 24 + 9} {120, 24 + 9}
}; };
} }

View File

@ -9,10 +9,12 @@ import com.hbm.config.GeneralConfig;
import com.hbm.hazard.modifier.*; import com.hbm.hazard.modifier.*;
import com.hbm.hazard.transformer.*; import com.hbm.hazard.transformer.*;
import com.hbm.hazard.type.*; import com.hbm.hazard.type.*;
import com.hbm.inventory.OreDictManager.DictFrame;
import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.material.MaterialShapes;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType;
import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial;
import com.hbm.items.machine.ItemWatzPellet.EnumWatzType;
import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType;
import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage;
import com.hbm.util.Compat; import com.hbm.util.Compat;
@ -104,6 +106,7 @@ public class HazardRegistry {
public static final float saf = 5.85F; public static final float saf = 5.85F;
public static final float sas3 = 5F; public static final float sas3 = 5F;
public static final float gh336 = 5.0F; public static final float gh336 = 5.0F;
public static final float mud = 1.0F;
public static final float radsource_mult = 3.0F; public static final float radsource_mult = 3.0F;
public static final float pobe = po210 * radsource_mult; public static final float pobe = po210 * radsource_mult;
public static final float rabe = ra226 * radsource_mult; public static final float rabe = ra226 * radsource_mult;
@ -429,6 +432,17 @@ public class HazardRegistry {
registerRBMKPellet(rbmk_pellet_zfb_am_mix, pu241 * billet * 0.1F, wst * billet * 10F); registerRBMKPellet(rbmk_pellet_zfb_am_mix, pu241 * billet * 0.1F, wst * billet * 10F);
registerRBMKPellet(rbmk_pellet_drx, bf * billet, bf * billet * 100F, true, 0F, 1F/24F); registerRBMKPellet(rbmk_pellet_drx, bf * billet, bf * billet * 100F, true, 0F, 1F/24F);
HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.SCHRABIDIUM), makeData(RADIATION, sa326 * ingot * 4));
HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.HES), makeData(RADIATION, saf * ingot * 4));
HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.MES), makeData(RADIATION, saf * ingot * 4));
HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.LES), makeData(RADIATION, saf * ingot * 4));
HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.HEN), makeData(RADIATION, np237 * ingot * 4));
HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.MEU), makeData(RADIATION, uf * ingot * 4));
HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.MEP), makeData(RADIATION, purg * ingot * 4));
HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.DU), makeData(RADIATION, u238 * ingot * 4));
HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.NQD), makeData(RADIATION, u235 * ingot * 4));
HazardSystem.register(DictFrame.fromOne(ModItems.watz_pellet, EnumWatzType.NQR), makeData(RADIATION, pu239 * ingot * 4));
HazardSystem.register(powder_yellowcake, makeData(RADIATION, yc * powder)); HazardSystem.register(powder_yellowcake, makeData(RADIATION, yc * powder));
HazardSystem.register(block_yellowcake, makeData(RADIATION, yc * block * powder_mult)); HazardSystem.register(block_yellowcake, makeData(RADIATION, yc * block * powder_mult));
HazardSystem.register(ModItems.fallout, makeData(RADIATION, fo * powder)); HazardSystem.register(ModItems.fallout, makeData(RADIATION, fo * powder));

View File

@ -32,6 +32,7 @@ import com.hbm.util.Compat;
import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -138,6 +139,7 @@ public class OreDictManager {
public static final DictFrame SBD = new DictFrame("Schrabidate"); public static final DictFrame SBD = new DictFrame("Schrabidate");
public static final DictFrame SRN = new DictFrame("Schraranium"); public static final DictFrame SRN = new DictFrame("Schraranium");
public static final DictFrame GH336 = new DictFrame("Ghiorsium336", "Gh336"); public static final DictFrame GH336 = new DictFrame("Ghiorsium336", "Gh336");
public static final DictFrame MUD = new DictFrame("WatzMud");
/* /*
* STABLE * STABLE
*/ */
@ -297,7 +299,7 @@ public class OreDictManager {
IRON.plate(plate_iron).dust(powder_iron).ore(ore_gneiss_iron); IRON.plate(plate_iron).dust(powder_iron).ore(ore_gneiss_iron);
GOLD.plate(plate_gold).dust(powder_gold).ore(ore_gneiss_gold); GOLD.plate(plate_gold).dust(powder_gold).ore(ore_gneiss_gold);
LAPIS.dust(powder_lapis); LAPIS.dust(powder_lapis);
NETHERQUARTZ.gem(Items.quartz).dust(powder_quartz); NETHERQUARTZ.gem(Items.quartz).dust(powder_quartz).ore(Blocks.quartz_ore);
DIAMOND.dust(powder_diamond).ore(gravel_diamond); DIAMOND.dust(powder_diamond).ore(gravel_diamond);
EMERALD.dust(powder_emerald); EMERALD.dust(powder_emerald);
@ -331,6 +333,7 @@ public class OreDictManager {
SBD .rad(HazardRegistry.sb) .blinding(50F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate); SBD .rad(HazardRegistry.sb) .blinding(50F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate);
SRN .rad(HazardRegistry.sr) .blinding(50F) .ingot(ingot_schraranium) .block(block_schraranium); SRN .rad(HazardRegistry.sr) .blinding(50F) .ingot(ingot_schraranium) .block(block_schraranium);
GH336 .rad(HazardRegistry.gh336) .nugget(nugget_gh336) .billet(billet_gh336) .ingot(ingot_gh336); GH336 .rad(HazardRegistry.gh336) .nugget(nugget_gh336) .billet(billet_gh336) .ingot(ingot_gh336);
MUD .rad(HazardRegistry.mud) .ingot(ingot_mud);
/* /*
* STABLE * STABLE

View File

@ -123,6 +123,7 @@ public class Mats {
public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, CASTPLATE, 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"), 0xF1E0BB, 0x6F6256, 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_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setShapes(BLOCK);
public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).setShapes(INGOT);
@Deprecated public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } @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); } @Deprecated public static NTMMaterial makeAdditive(int id, DictFrame dict, int color) { return makeAdditive(id, dict, color, color, color); }

View File

@ -298,15 +298,13 @@ public class AssemblerRecipes {
makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600);
makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300);
makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), new OreDictStack(TI.ingot(), 24), new OreDictStack(ALLOY.plate(), 18), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), new OreDictStack(TI.ingot(), 24), new OreDictStack(ALLOY.plate(), 18), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500);
makeRecipe(new ComparableStack(ModBlocks.machine_combine_factory, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(TI.plate(), 4), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.coil_advanced_alloy, 8), new ComparableStack(ModItems.coil_tungsten, 4), new OreDictStack(MAGTUNG.ingot(), 12), },150);
makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.coil_advanced_alloy, 5), },150); makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.coil_advanced_alloy, 5), },150);
makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.wire_advanced_alloy, 24), },200); makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.wire_advanced_alloy, 24), },200);
makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250); makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250);
makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150); makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150);
makeRecipe(new ComparableStack(ModBlocks.watz_element, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.rod_empty, 2), new ComparableStack(ModItems.wire_magnetized_tungsten, 2), new ComparableStack(ModItems.wire_advanced_alloy, 4), },200); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200);
makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 1), new AStack[] {new OreDictStack(W.ingot(), 2), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(KNO.dust(), 4), },300); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200);
makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateTriple()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plate(), 9), }, 100); makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateTriple()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plate(), 9), }, 100);
makeRecipe(new ComparableStack(ModBlocks.watz_core, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.circuit_schrabidium, 2), new ComparableStack(ModItems.wire_magnetized_tungsten, 12), },350);
makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250);
makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250);
makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack(DIAMOND.dust(), 6), new OreDictStack(MAGTUNG.dust(), 6), new OreDictStack(DESH.dust(), 4), },300); makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack(DIAMOND.dust(), 6), new OreDictStack(MAGTUNG.dust(), 6), new OreDictStack(DESH.dust(), 4), },300);

View File

@ -20,6 +20,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemWatzPellet.EnumWatzType;
import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre;
import com.hbm.items.special.ItemByproduct.EnumByproduct; import com.hbm.items.special.ItemByproduct.EnumByproduct;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
@ -134,6 +135,73 @@ public class CentrifugeRecipes extends SerializableRecipe {
new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu238, 1),
new ItemStack(ModItems.nugget_technetium, 1), new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 6) }); new ItemStack(ModItems.nuclear_waste_tiny, 6) });
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.SCHRABIDIUM)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
new ItemStack(ModItems.nugget_solinium, 15),
new ItemStack(ModItems.nugget_euphemium, 3),
new ItemStack(ModItems.nuclear_waste, 2) });
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.HES)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
new ItemStack(ModItems.nugget_solinium, 17),
new ItemStack(ModItems.nugget_euphemium, 1),
new ItemStack(ModItems.nuclear_waste, 2) });
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.MES)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
new ItemStack(ModItems.nugget_solinium, 12),
new ItemStack(ModItems.nugget_tantalium, 6),
new ItemStack(ModItems.nuclear_waste, 2) });
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.LES)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
new ItemStack(ModItems.nugget_solinium, 9),
new ItemStack(ModItems.nugget_tantalium, 9),
new ItemStack(ModItems.nuclear_waste, 2) });
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.HEN)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
new ItemStack(ModItems.nugget_pu239, 12),
new ItemStack(ModItems.nugget_technetium, 6),
new ItemStack(ModItems.nuclear_waste, 2) });
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.MEU)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
new ItemStack(ModItems.nugget_pu239, 12),
new ItemStack(ModItems.nugget_bismuth, 6),
new ItemStack(ModItems.nuclear_waste, 2) });
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.MEP)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
new ItemStack(ModItems.nugget_pu241, 12),
new ItemStack(ModItems.nugget_bismuth, 6),
new ItemStack(ModItems.nuclear_waste, 2) });
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.LEAD)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
new ItemStack(ModItems.nugget_lead, 6),
new ItemStack(ModItems.nugget_bismuth, 12),
new ItemStack(ModItems.nuclear_waste, 2) });
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.BORON)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
new ItemStack(ModItems.powder_coal_tiny, 12),
new ItemStack(ModItems.nugget_co60, 6),
new ItemStack(ModItems.nuclear_waste, 2) });
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.DU)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
new ItemStack(ModItems.nugget_polonium, 12),
new ItemStack(ModItems.nugget_pu238, 6),
new ItemStack(ModItems.nuclear_waste, 2) });
if(OreDictionary.doesOreNameExist("nuggetNaquadria")) {
ItemStack nuggetNQR = OreDictionary.getOres("nuggetNaquadria").get(0);
ItemStack copy = nuggetNQR.copy();
copy.stackSize = 12;
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.NQD)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
copy,
new ItemStack(ModItems.nugget_euphemium, 6),
new ItemStack(ModItems.nuclear_waste, 2) });
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.NQR)), new ItemStack[] {
new ItemStack(ModItems.ingot_mud, 1),
new ItemStack(ModItems.nugget_co60, 12),
new ItemStack(ModItems.nugget_euphemium, 6),
new ItemStack(ModItems.nuclear_waste, 2) });
}
recipes.put(new ComparableStack(ModItems.powder_cloud), new ItemStack[] { recipes.put(new ComparableStack(ModItems.powder_cloud), new ItemStack[] {
new ItemStack(ModItems.powder_copper, 1), new ItemStack(ModItems.powder_copper, 1),

View File

@ -96,6 +96,10 @@ public class CrucibleRecipes extends SerializableRecipe {
.inputs(new MaterialStack(Mats.MAT_STEEL, n * 8), new MaterialStack(Mats.MAT_CADMIUM, n)) .inputs(new MaterialStack(Mats.MAT_STEEL, n * 8), new MaterialStack(Mats.MAT_CADMIUM, n))
.outputs(new MaterialStack(Mats.MAT_CDALLOY, i))); .outputs(new MaterialStack(Mats.MAT_CDALLOY, i)));
recipes.add(new CrucibleRecipe(13, "crucible.cmb", 3, new ItemStack(ModItems.ingot_combine_steel))
.inputs(new MaterialStack(Mats.MAT_MAGTUNG, n * 6), new MaterialStack(Mats.MAT_MUD, n * 3))
.outputs(new MaterialStack(Mats.MAT_CMB, i)));
registerMoldsForNEI(); registerMoldsForNEI();
} }

View File

@ -66,6 +66,7 @@ public class SolidificationRecipes extends SerializableRecipe {
registerRecipe(BIOGAS, 250, ModItems.biomass_compressed); registerRecipe(BIOGAS, 250, ModItems.biomass_compressed);
registerRecipe(SALIENT, 1280, new ItemStack(ModItems.bio_wafer, 8)); //4 (food val) * 2 (sat mod) * 2 (constant) * 10 (quanta) * 8 (batch size) registerRecipe(SALIENT, 1280, new ItemStack(ModItems.bio_wafer, 8)); //4 (food val) * 2 (sat mod) * 2 (constant) * 10 (quanta) * 8 (batch size)
registerRecipe(ENDERJUICE, 100, Items.ender_pearl); registerRecipe(ENDERJUICE, 100, Items.ender_pearl);
registerRecipe(WATZ, 1000, ModItems.ingot_mud);
registerRecipe(OIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); registerRecipe(OIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE));
registerRecipe(CRACKOIL, SF_CRACK, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)); registerRecipe(CRACKOIL, SF_CRACK, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK));

View File

@ -359,6 +359,7 @@ public class ModItems {
public static Item ingot_cadmium; public static Item ingot_cadmium;
public static Item powder_cadmium; public static Item powder_cadmium;
public static Item powder_bismuth; public static Item powder_bismuth;
public static Item ingot_mud;
public static Item ingot_lanthanium; public static Item ingot_lanthanium;
public static Item ingot_actinium; public static Item ingot_actinium;
@ -2651,6 +2652,7 @@ public class ModItems {
ingot_cadmium = new Item().setUnlocalizedName("ingot_cadmium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cadmium"); 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_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"); powder_bismuth = new Item().setUnlocalizedName("powder_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bismuth");
ingot_mud = new Item().setUnlocalizedName("ingot_mud").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_mud");
ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":byproduct"); ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":byproduct");
@ -5540,6 +5542,7 @@ public class ModItems {
//GameRegistry.registerItem(ingot_pet, ingot_pet.getUnlocalizedName()); //GameRegistry.registerItem(ingot_pet, ingot_pet.getUnlocalizedName());
GameRegistry.registerItem(ingot_pc, ingot_pc.getUnlocalizedName()); GameRegistry.registerItem(ingot_pc, ingot_pc.getUnlocalizedName());
GameRegistry.registerItem(ingot_pvc, ingot_pvc.getUnlocalizedName()); GameRegistry.registerItem(ingot_pvc, ingot_pvc.getUnlocalizedName());
GameRegistry.registerItem(ingot_mud, ingot_mud.getUnlocalizedName());
GameRegistry.registerItem(ingot_schraranium, ingot_schraranium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schraranium, ingot_schraranium.getUnlocalizedName());
GameRegistry.registerItem(ingot_schrabidium, ingot_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidium, ingot_schrabidium.getUnlocalizedName());
GameRegistry.registerItem(ingot_schrabidate, ingot_schrabidate.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidate, ingot_schrabidate.getUnlocalizedName());

View File

@ -36,18 +36,18 @@ public class ItemWatzPellet extends ItemEnumMulti {
public static enum EnumWatzType { public static enum EnumWatzType {
SCHRABIDIUM( 0x32FFFF, 0x005C5C, 2_000, 20D, 0.02D, new FunctionLinear(1.5D), new FunctionSqrt(1D/20D).withOff(20D * 20D), null), SCHRABIDIUM( 0x32FFFF, 0x005C5C, 2_000, 20D, 0.01D, new FunctionLinear(1.5D), new FunctionSqrtFalling(10D), null),
HES( 0x66DCD6, 0x023933, 1_750, 20D, 0.01D, new FunctionLinear(1.25D), new FunctionSqrt(1/15D).withOff(15D*15D), null), HES( 0x66DCD6, 0x023933, 1_750, 20D, 0.005D, new FunctionLinear(1.25D), new FunctionSqrtFalling(15D), null),
MES( 0xCBEADF, 0x28473C, 1_500, 15D, 0.005D, new FunctionLinear(1.15D), new FunctionSqrt(1/15D).withOff(15D*15D), null), MES( 0xCBEADF, 0x28473C, 1_500, 15D, 0.0025D, new FunctionLinear(1.15D), new FunctionSqrtFalling(15D), null),
LES( 0xABB4A8, 0x0C1105, 1_250, 15D, 0.0025D, new FunctionLinear(1D), new FunctionSqrt(1/10D).withOff(10D*10D), null), LES( 0xABB4A8, 0x0C1105, 1_250, 15D, 0.00125D, new FunctionLinear(1D), new FunctionSqrtFalling(20D), null),
HEN( 0xA6B2A6, 0x030F03, 0, 10D, 0.001D, new FunctionSqrt(100), null, null), HEN( 0xA6B2A6, 0x030F03, 0, 10D, 0.0005D, new FunctionSqrt(100), new FunctionSqrtFalling(10D), null),
MEU( 0xC1C7BD, 0x2B3227, 0, 10D, 0.001D, new FunctionSqrt(75), null, null), MEU( 0xC1C7BD, 0x2B3227, 0, 10D, 0.0005D, new FunctionSqrt(75), new FunctionSqrtFalling(10D), null),
MEP( 0x9AA3A0, 0x111A17, 0, 15D, 0.001D, new FunctionSqrt(150), new FunctionSqrt(1D/20D).withOff(20D * 20D), null), MEP( 0x9AA3A0, 0x111A17, 0, 15D, 0.0005D, new FunctionSqrt(150), new FunctionSqrtFalling(10D), null),
LEAD( 0xA6A6B2, 0x03030F, 0, 0, 0.005D, null, null, new FunctionSqrt(10)), //standard absorber, negative coefficient LEAD( 0xA6A6B2, 0x03030F, 0, 0, 0.0025D, null, null, new FunctionSqrt(10)), //standard absorber, negative coefficient
BORON( 0xBDC8D2, 0x29343E, 0, 0, 0.005D, null, null, new FunctionLinear(10)), //improved absorber, linear BORON( 0xBDC8D2, 0x29343E, 0, 0, 0.0025D, null, null, new FunctionLinear(10)), //improved absorber, linear
DU( 0xC1C7BD, 0x2B3227, 0, 0, 0.005D, null, null, new FunctionQuadratic(1D, 1D).withDiv(100)), //absorber with positive coefficient DU( 0xC1C7BD, 0x2B3227, 0, 0, 0.0025D, null, null, new FunctionQuadratic(1D, 1D).withDiv(100)), //absorber with positive coefficient
NQD( 0x4B4B4B, 0x121212, 2_000, 20, 0.02D, new FunctionLinear(2D), new FunctionSqrt(1D/25D).withOff(25D * 25D), null), NQD( 0x4B4B4B, 0x121212, 2_000, 20, 0.01D, new FunctionLinear(2D), new FunctionSqrt(1D/25D).withOff(25D * 25D), null),
NQR( 0x2D2D2D, 0x0B0B0B, 2_500, 30, 0.02D, new FunctionLinear(1.5D), new FunctionSqrt(1D/25D).withOff(25D * 25D), null); NQR( 0x2D2D2D, 0x0B0B0B, 2_500, 30, 0.01D, new FunctionLinear(1.5D), new FunctionSqrt(1D/25D).withOff(25D * 25D), null);
public double yield = 1_000_000_000; public double yield = 1_000_000_000;
public int colorLight; public int colorLight;
@ -123,6 +123,9 @@ public class ItemWatzPellet extends ItemEnumMulti {
@Override @Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
if(this != ModItems.watz_pellet) return;
EnumWatzType num = EnumUtil.grabEnumSafely(EnumWatzType.class, stack.getItemDamage()); EnumWatzType num = EnumUtil.grabEnumSafely(EnumWatzType.class, stack.getItemDamage());
list.add(EnumChatFormatting.GREEN + "Depletion: " + String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D) + "%"); list.add(EnumChatFormatting.GREEN + "Depletion: " + String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D) + "%");
@ -145,7 +148,7 @@ public class ItemWatzPellet extends ItemEnumMulti {
@Override @Override
public boolean showDurabilityBar(ItemStack stack) { public boolean showDurabilityBar(ItemStack stack) {
return getDurabilityForDisplay(stack) > 0D; return this == ModItems.watz_pellet && getDurabilityForDisplay(stack) > 0D;
} }
@Override @Override
@ -184,6 +187,7 @@ public class ItemWatzPellet extends ItemEnumMulti {
@Override @Override
public void onCreated(ItemStack stack, World world, EntityPlayer player) { public void onCreated(ItemStack stack, World world, EntityPlayer player) {
if(this != ModItems.watz_pellet) return;
setNBTDefaults(stack); //minimize the window where NBT screwups can happen setNBTDefaults(stack); //minimize the window where NBT screwups can happen
} }
} }

View File

@ -690,7 +690,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu
GunConfiguration gcfg = gun.mainConfig; GunConfiguration gcfg = gun.mainConfig;
if(type == ElementType.HOTBAR) { if(type == ElementType.HOTBAR) {
BulletConfiguration bcfg = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(ItemGunBase.getMagType(stack))); int mag = ItemGunBase.getMagType(stack);
if(gun.mainConfig.config.size() == 0) return;
BulletConfiguration bcfg = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(mag < gun.mainConfig.config.size() ? mag : 0));
if(bcfg == null) { if(bcfg == null) {
return; return;

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings { public class RefStrings {
public static final String MODID = "hbm"; public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod"; public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (4562)"; public static final String VERSION = "1.0.27 BETA (4578)";
//HBM's Beta Naming Convention: //HBM's Beta Naming Convention:
//V T (X) //V T (X)
//V -> next release version //V -> next release version

View File

@ -366,7 +366,8 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', ModItems.bolt_tungsten, 'I', MINGRADE.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', ModItems.bolt_tungsten, 'I', MINGRADE.ingot() });
addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() });
addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 });
addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateTriple(), 'C', KEY_CIRCUIT_BISMUTH, 'S', ModItems.pipes_steel });
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_cooler), 1), new Object[] { "IPI", "IPI", "IPI", 'I', TI.ingot(), 'P', TI.plate() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_cooler), 1), new Object[] { "IPI", "IPI", "IPI", 'I', TI.ingot(), 'P', TI.plate() });
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_tank), 1), new Object[] { "CGC", "GGG", "CGC", 'C', CMB.plate(), 'G', KEY_ANYPANE }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_tank), 1), new Object[] { "CGC", "GGG", "CGC", 'C', CMB.plate(), 'G', KEY_ANYPANE });
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_scaffold), 1), new Object[] { "IPI", "P P", "IPI", 'I', W.ingot(), 'P', getReflector() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_scaffold), 1), new Object[] { "IPI", "P P", "IPI", 'I', W.ingot(), 'P', getReflector() });
@ -765,6 +766,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium }); addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium });
addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS });
addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater });
addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_schrabidium, 'B', ANY_RESISTANTALLOY.plateTriple(), 'H', ModBlocks.watz_cooler });
addShapelessAuto(new ItemStack(ModBlocks.fusion_heater), new Object[] { ModBlocks.fusion_hatch }); addShapelessAuto(new ItemStack(ModBlocks.fusion_heater), new Object[] { ModBlocks.fusion_hatch });
addShapelessAuto(new ItemStack(ModItems.energy_core), new Object[] { ModItems.fusion_core, ModItems.fuse }); addShapelessAuto(new ItemStack(ModItems.energy_core), new Object[] { ModItems.fusion_core, ModItems.fuse });
addRecipeAuto(new ItemStack(ModItems.catalytic_converter, 1), new Object[] { "PCP", "PBP", "PCP", 'P', ANY_HARDPLASTIC.ingot(), 'C', CO.dust(), 'B', BI.ingot() }); addRecipeAuto(new ItemStack(ModItems.catalytic_converter, 1), new Object[] { "PCP", "PBP", "PCP", 'P', ANY_HARDPLASTIC.ingot(), 'C', CO.dust(), 'B', BI.ingot() });

View File

@ -29,7 +29,7 @@ public class RenderShrapnel extends Render {
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/shrapnel.png")); bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/shrapnel.png"));
if(rocket instanceof EntityShrapnel) { if(rocket instanceof EntityShrapnel) {
if(rocket.getDataWatcher().getWatchableObjectByte(16) == 2) { //scale up lava blobs if(rocket.getDataWatcher().getWatchableObjectByte(16) >= 2) { //scale up lava blobs
GL11.glScaled(3, 3, 3); GL11.glScaled(3, 3, 3);
} }
} }

View File

@ -23,6 +23,7 @@ import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.CrucibleUtil; import com.hbm.util.CrucibleUtil;
import api.hbm.block.ICrucibleAcceptor;
import api.hbm.tile.IHeatSource; import api.hbm.tile.IHeatSource;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
@ -41,7 +42,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityCrucible extends TileEntityMachineBase implements IGUIProvider, IConfigurableMachine { public class TileEntityCrucible extends TileEntityMachineBase implements IGUIProvider, ICrucibleAcceptor, IConfigurableMachine {
public int heat; public int heat;
public int progress; public int progress;
@ -529,4 +530,57 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro
public double getMaxRenderDistanceSquared() { public double getMaxRenderDistanceSquared() {
return 65536.0D; return 65536.0D;
} }
@Override
public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
CrucibleRecipe recipe = getLoadedRecipe();
if(recipe == null) {
return getQuantaFromType(this.wasteStack, null) < this.wasteZCapacity;
}
int recipeContent = recipe.getInputAmount();
int recipeInputRequired = getQuantaFromType(recipe.input, stack.material);
int matMaximum = recipeInputRequired * this.recipeZCapacity / recipeContent;
int amountStored = getQuantaFromType(recipeStack, stack.material);
return amountStored < matMaximum;
}
@Override
public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
CrucibleRecipe recipe = getLoadedRecipe();
if(recipe == null) {
int amount = getQuantaFromType(this.wasteStack, null);
if(amount + stack.amount <= this.wasteZCapacity) {
this.addToStack(this.wasteStack, stack.copy());
return null;
} else {
int toAdd = this.wasteZCapacity - amount;
this.addToStack(this.wasteStack, new MaterialStack(stack.material, toAdd));
return new MaterialStack(stack.material, stack.amount - toAdd);
}
}
int recipeContent = recipe.getInputAmount();
int recipeInputRequired = getQuantaFromType(recipe.input, stack.material);
int matMaximum = recipeInputRequired * this.recipeZCapacity / recipeContent;
if(recipeInputRequired + stack.amount <= matMaximum) {
this.addToStack(this.recipeStack, stack.copy());
return null;
}
int toAdd = matMaximum - stack.amount;
this.addToStack(this.recipeStack, new MaterialStack(stack.material, toAdd));
return new MaterialStack(stack.material, stack.amount - toAdd);
}
@Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return false; }
@Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return null; }
} }

View File

@ -2,8 +2,11 @@ package com.hbm.tileentity.machine;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.entity.projectile.EntityShrapnel;
import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IControlReceiver;
import com.hbm.inventory.container.ContainerWatz; import com.hbm.inventory.container.ContainerWatz;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
@ -14,6 +17,9 @@ import com.hbm.inventory.gui.GUIWatz;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemWatzPellet; import com.hbm.items.machine.ItemWatzPellet;
import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.Compat; import com.hbm.util.Compat;
@ -22,10 +28,13 @@ import com.hbm.util.fauxpointtwelve.DirPos;
import com.hbm.util.function.Function; import com.hbm.util.function.Function;
import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@ -126,6 +135,29 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
} }
segments.get(segments.size() - 1).sendOutBottom(); segments.get(segments.size() - 1).sendOutBottom();
/* explode on mud overflow */
if(sharedTanks[2].getFill() > 0) {
for(int x = -3; x <= 3; x++) {
for(int y = 3; y < 6; y++) {
for(int z = -3; z <= 3; z++) {
worldObj.setBlock(xCoord + x, yCoord + y, zCoord + z, Blocks.air);
}
}
}
this.disassemble();
ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord + 1, zCoord, 1_000F);
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 2, zCoord + 0.5, "hbm:block.rbmk_explosion", 50.0F, 1.0F);
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "rbmkmush");
data.setFloat("scale", 5);
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5, yCoord + 2, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250));
MainRegistry.proxy.effectNT(data);
return;
}
} }
} }
@ -137,7 +169,7 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
public void updateCoolant(FluidTank[] tanks) { public void updateCoolant(FluidTank[] tanks) {
double coolingFactor = 0.05D; //20% per tick, TEMP double coolingFactor = 0.1D; //10% per tick, TEMP
double heatToUse = this.heat * coolingFactor; double heatToUse = this.heat * coolingFactor;
FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class);
@ -215,17 +247,21 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
} }
for(int i = 0; i < 24; i++) {
ItemStack stack = slots[i];
/* deplete */
if(stack != null && stack.getItem() == ModItems.watz_pellet && ItemWatzPellet.getEnrichment(stack) <= 0) {
slots[i] = new ItemStack(ModItems.watz_pellet_depleted, 1, stack.getItemDamage());
continue; // depleted pellets may persist for one tick
}
}
if(above != null) { if(above != null) {
for(int i = 0; i < 24; i++) { for(int i = 0; i < 24; i++) {
ItemStack stackBottom = slots[i]; ItemStack stackBottom = slots[i];
ItemStack stackTop = above.slots[i]; ItemStack stackTop = above.slots[i];
/* deplete */
if(stackBottom != null && stackBottom.getItem() == ModItems.watz_pellet && ItemWatzPellet.getYield(stackBottom) <= 0) {
slots[i] = new ItemStack(ModItems.watz_pellet_depleted, 1, stackBottom.getItemDamage());
continue; // depleted pellets may persist for one tick
}
/* items fall down if the bottom slot is empty */ /* items fall down if the bottom slot is empty */
if(stackBottom == null && stackTop != null) { if(stackBottom == null && stackTop != null) {
slots[i] = stackTop.copy(); slots[i] = stackTop.copy();
@ -407,6 +443,73 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
return bb; return bb;
} }
private void disassemble() {
int count = 20;
Random rand = worldObj.rand;
for(int i = 0; i < count * 5; i++) {
EntityShrapnel shrapnel = new EntityShrapnel(worldObj);
shrapnel.posX = xCoord + 0.5;
shrapnel.posY = yCoord + 3;
shrapnel.posZ = zCoord + 0.5;
shrapnel.motionY = ((rand.nextFloat() * 0.5) + 0.5) * (1 + (count / (15 + rand.nextInt(21)))) + (rand.nextFloat() / 50 * count);
shrapnel.motionX = rand.nextGaussian() * 1 * (1 + (count / 100));
shrapnel.motionZ = rand.nextGaussian() * 1 * (1 + (count / 100));
shrapnel.setWatz(true);
worldObj.spawnEntityInWorld(shrapnel);
}
worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.mud_block);
worldObj.setBlock(xCoord, yCoord + 1, zCoord, ModBlocks.mud_block);
worldObj.setBlock(xCoord, yCoord + 2, zCoord, ModBlocks.mud_block);
setBrokenColumn(0, ModBlocks.watz_element, 0, 1, 0);
setBrokenColumn(0, ModBlocks.watz_element, 0, 2, 0);
setBrokenColumn(0, ModBlocks.watz_element, 0, 0, 1);
setBrokenColumn(0, ModBlocks.watz_element, 0, 0, 2);
setBrokenColumn(0, ModBlocks.watz_element, 0, -1, 0);
setBrokenColumn(0, ModBlocks.watz_element, 0, -2, 0);
setBrokenColumn(0, ModBlocks.watz_element, 0, 0, -1);
setBrokenColumn(0, ModBlocks.watz_element, 0, 0, -2);
setBrokenColumn(0, ModBlocks.watz_element, 0, 1, 1);
setBrokenColumn(0, ModBlocks.watz_element, 0, 1, -1);
setBrokenColumn(0, ModBlocks.watz_element, 0, -1, 1);
setBrokenColumn(0, ModBlocks.watz_element, 0, -1, -1);
setBrokenColumn(0, ModBlocks.watz_cooler, 0, 2, 1);
setBrokenColumn(0, ModBlocks.watz_cooler, 0, 2, -1);
setBrokenColumn(0, ModBlocks.watz_cooler, 0, 1, 2);
setBrokenColumn(0, ModBlocks.watz_cooler, 0, -1, 2);
setBrokenColumn(0, ModBlocks.watz_cooler, 0, -2, 1);
setBrokenColumn(0, ModBlocks.watz_cooler, 0, -2, -1);
setBrokenColumn(0, ModBlocks.watz_cooler, 0, 1, -2);
setBrokenColumn(0, ModBlocks.watz_cooler, 0, -1, -2);
for(int j = -1; j < 2; j++) {
setBrokenColumn(1, ModBlocks.watz_end, 1, 3, j);
setBrokenColumn(1, ModBlocks.watz_end, 1, j, 3);
setBrokenColumn(1, ModBlocks.watz_end, 1, -3, j);
setBrokenColumn(1, ModBlocks.watz_end, 1, j, -3);
}
setBrokenColumn(1, ModBlocks.watz_end, 1, 2, 2);
setBrokenColumn(1, ModBlocks.watz_end, 1, 2, -2);
setBrokenColumn(1, ModBlocks.watz_end, 1, -2, 2);
setBrokenColumn(1, ModBlocks.watz_end, 1, -2, -2);
}
private void setBrokenColumn(int minHeight, Block b, int meta, int x, int z) {
int height = minHeight + worldObj.rand.nextInt(3 - minHeight);
for(int i = 0; i < 3; i++) {
if(i <= height) {
worldObj.setBlock(xCoord + x, yCoord + i, zCoord + z, b, meta, 3);
} else {
worldObj.setBlock(xCoord + x, yCoord + i, zCoord + z, ModBlocks.mud_block);
}
}
}
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() { public double getMaxRenderDistanceSquared() {

View File

@ -64,6 +64,13 @@ public abstract class Function {
@Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"; } @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"; }
} }
public static class FunctionSqrtFalling extends FunctionSqrt {
public FunctionSqrtFalling(double fallFactor) {
super(1D / fallFactor);
this.withOff(fallFactor * fallFactor);
}
}
public static class FunctionLinear extends FunctionSingleArg { public static class FunctionLinear extends FunctionSingleArg {
public FunctionLinear(double level) { super(level); } public FunctionLinear(double level) { super(level); }
@Override public double effonix(double x) { return getX(x) * this.level; } @Override public double effonix(double x) { return getX(x) * this.level; }

View File

@ -416,6 +416,7 @@ container.zirnox=ZIRNOX Atomreaktor
crucible.aa=Herstellung - Fortgeschrittene Legierung crucible.aa=Herstellung - Fortgeschrittene Legierung
crucible.cdalloy=Herstellung Cadmiumstahl crucible.cdalloy=Herstellung Cadmiumstahl
crucible.cmb=Herstellung CMB-Stahl
crucible.ferro=Herstellung - Ferrouran crucible.ferro=Herstellung - Ferrouran
crucible.hematite=Herstellung - Eisen aus Hämatit crucible.hematite=Herstellung - Eisen aus Hämatit
crucible.hss=Herstellung - Schnellarbeitsstahl crucible.hss=Herstellung - Schnellarbeitsstahl
@ -781,6 +782,7 @@ hbmmat.uranium=Uran
hbmmat.uranium233=Uran-233 hbmmat.uranium233=Uran-233
hbmmat.uranium235=Uran-235 hbmmat.uranium235=Uran-235
hbmmat.uranium238=Uran-238 hbmmat.uranium238=Uran-238
hbmmat.watzmud=Giftiger Schlamm
hbmmat.whitephosphorus=Weißer Phosphor hbmmat.whitephosphorus=Weißer Phosphor
hbmmat.workersalloy=Desh hbmmat.workersalloy=Desh
hbmmat.wroughtiron=Schmiedeeisen hbmmat.wroughtiron=Schmiedeeisen
@ -2014,6 +2016,7 @@ item.ingot_magnetized_tungsten.name=Magnetisierter Wolframbarren
item.ingot_meteorite.name=Meteoritenbarren item.ingot_meteorite.name=Meteoritenbarren
item.ingot_meteorite_forged.name=Geschmiedeter Meteoritenbarren item.ingot_meteorite_forged.name=Geschmiedeter Meteoritenbarren
item.ingot_mox_fuel.name=MOX-Kernbrennstoffbarren item.ingot_mox_fuel.name=MOX-Kernbrennstoffbarren
item.ingot_mud.name=Fester Schlammziegel
item.ingot_neptunium.name=Neptuniumbarren item.ingot_neptunium.name=Neptuniumbarren
item.ingot_neptunium_fuel.name=Neptuniumkernbrennstoffbarren item.ingot_neptunium_fuel.name=Neptuniumkernbrennstoffbarren
item.ingot_niobium.name=Niobbarren item.ingot_niobium.name=Niobbarren
@ -4277,6 +4280,7 @@ tile.waste_mycelium.name=Leuchtende Myzel
tile.waste_planks.name=Verkohlte Holzbretter tile.waste_planks.name=Verkohlte Holzbretter
tile.waste_trinitite.name=Trinititerz tile.waste_trinitite.name=Trinititerz
tile.waste_trinitite_red.name=Rotes Trinititerz tile.waste_trinitite_red.name=Rotes Trinititerz
tile.watz.name=Watzkraftwerk
tile.watz_conductor.name=Watz-Stromanschluss tile.watz_conductor.name=Watz-Stromanschluss
tile.watz_control.name=Verstärkte Steuerstäbe tile.watz_control.name=Verstärkte Steuerstäbe
tile.watz_cooler.name=Watz-Superkühler tile.watz_cooler.name=Watz-Superkühler
@ -4285,6 +4289,7 @@ tile.watz_element.name=Watzreaktionskammer
tile.watz_end.name=Watz-Stabilitätselement tile.watz_end.name=Watz-Stabilitätselement
tile.watz_end_bolted.name=Watz-Stabilitätselement (Genietet) tile.watz_end_bolted.name=Watz-Stabilitätselement (Genietet)
tile.watz_hatch.name=Watzreaktorzugriffsluke tile.watz_hatch.name=Watzreaktorzugriffsluke
tile.watz_pump.name=Watz-Druckpumpe
tile.yellow_barrel.name=Radioaktives Fass tile.yellow_barrel.name=Radioaktives Fass
tile.zirnox_destroyed.name=Zerstörter ZINOX tile.zirnox_destroyed.name=Zerstörter ZINOX

View File

@ -709,6 +709,7 @@ container.zirnox=ZIRNOX Nuclear Reactor
crucible.aa=Advanced Alloy Production crucible.aa=Advanced Alloy Production
crucible.cdalloy=Cadmium Steel Production crucible.cdalloy=Cadmium Steel Production
crucible.cmb=CMB Steel Production
crucible.ferro=Ferrouranium Production crucible.ferro=Ferrouranium Production
crucible.hematite=Iron Production from Hematite crucible.hematite=Iron Production from Hematite
crucible.hss=High-Speed Steel Production crucible.hss=High-Speed Steel Production
@ -1358,6 +1359,7 @@ hbmmat.uranium=Uranium
hbmmat.uranium233=Uranium-233 hbmmat.uranium233=Uranium-233
hbmmat.uranium235=Uranium-235 hbmmat.uranium235=Uranium-235
hbmmat.uranium238=Uranium-238 hbmmat.uranium238=Uranium-238
hbmmat.watzmud=Poisonous Mud
hbmmat.whitephosphorus=White Phosphorus hbmmat.whitephosphorus=White Phosphorus
hbmmat.workersalloy=Desh hbmmat.workersalloy=Desh
hbmmat.wroughtiron=Wroght Iron hbmmat.wroughtiron=Wroght Iron
@ -2663,6 +2665,7 @@ item.ingot_magnetized_tungsten.name=Magnetized Tungsten Ingot
item.ingot_meteorite.name=Meteorite Ingot item.ingot_meteorite.name=Meteorite Ingot
item.ingot_meteorite_forged.name=Forged Meteorite Ingot item.ingot_meteorite_forged.name=Forged Meteorite Ingot
item.ingot_mox_fuel.name=Ingot of MOX Fuel item.ingot_mox_fuel.name=Ingot of MOX Fuel
item.ingot_mud.name=Solid Mud Brick
item.ingot_neptunium.name=Neptunium Ingot item.ingot_neptunium.name=Neptunium Ingot
item.ingot_neptunium.desc=That one's my favourite! item.ingot_neptunium.desc=That one's my favourite!
item.ingot_neptunium.desc.P11=Woo, scary! item.ingot_neptunium.desc.P11=Woo, scary!
@ -5095,6 +5098,7 @@ tile.waste_mycelium.name=Glowing Mycelium
tile.waste_planks.name=Charred Wooden Planks tile.waste_planks.name=Charred Wooden Planks
tile.waste_trinitite.name=Trinitite Ore tile.waste_trinitite.name=Trinitite Ore
tile.waste_trinitite_red.name=Red Trinitite Ore tile.waste_trinitite_red.name=Red Trinitite Ore
tile.watz.name=Watz Powerplant
tile.watz_conductor.name=Watz Electricity Port tile.watz_conductor.name=Watz Electricity Port
tile.watz_control.name=Reinforced Control Rods tile.watz_control.name=Reinforced Control Rods
tile.watz_cooler.name=Watz Reactor Supercooler tile.watz_cooler.name=Watz Reactor Supercooler
@ -5103,6 +5107,7 @@ tile.watz_element.name=Watz Reaction Chamber
tile.watz_end.name=Watz Reactor Stability Element tile.watz_end.name=Watz Reactor Stability Element
tile.watz_end_bolted.name=Watz Reactor Stability Element (Riveted) tile.watz_end_bolted.name=Watz Reactor Stability Element (Riveted)
tile.watz_hatch.name=Watz Reactor Access Hatch tile.watz_hatch.name=Watz Reactor Access Hatch
tile.watz_pump.name=Watz Pressure Pump
tile.yellow_barrel.name=Radioactive Barrel tile.yellow_barrel.name=Radioactive Barrel
tile.zirnox_destroyed.name=Destroyed ZINROX tile.zirnox_destroyed.name=Destroyed ZINROX

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B