Merge branch 'HbmMods:master' into DetectorOverlay

This commit is contained in:
WolfEclipses 2026-07-24 22:46:08 -04:00 committed by GitHub
commit d15e00b6c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
43 changed files with 2281 additions and 187 deletions

View File

@ -12,6 +12,7 @@
* Chicago pile control rods can either be fully withdrawn with redstone or fine tuned with RoR
* Additionally, channels can be drilled by right clicking a pile addon device with the hand drill, the addon doesn't need to be removed beforehand
* This is mainly for convenience when disassembling and reassembling the reactor, which requires all channels to be drilled again
* Piles that overheat will explode, throwing flaming graphite everywhere
## Changed
* Updated all oil well GUI textures
@ -24,9 +25,17 @@
* This preview is green if it can be placed and red if it can not
* On some machines, this preview might not be perfect, but the check on whether it can be placed should always be accurate
* This makes it easier to anticipate how much space a machine takes up, as well as lining up large parts like fusion reactor components which were notoriously hard to place down right
* Updated the small pylon model
* The small pylon now has a steel variant
* Items in the battery socket which previously didn't show up in the socket's model are now rendered
* Reduced the cost for the heavy stirling engine
## Fixed
* Fixed held block being placed when not sneaking when opening the cable diode's GUI
* Fixed an issue where the diesel generator's fuel capacity is the original 4,000mB instead of the intended new 16,000mB
* This means that explosive barrels and universal barrels can now be loaded into the diesel generator
* Fixed RoR terminal's `set` command not working
* Fixed RoR terminal's `set` command not working
* Fixed a longstanding issue where the transparent part of beams from tile entity models would often have incorrect render order, sometimes rendering things behind them invisible
* This also fixes the same phenomenon for other types of beams, such as those from hitscan laser and tesla weapons
* Fixed some issues regarding the new crane structure
* Fixed skeletonizer ashes floating over the floor after landing

View File

@ -631,13 +631,14 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl
if(i == 2) facing = ForgeDirection.getOrientation(3);
if(i == 3) facing = ForgeDirection.getOrientation(4);
ForgeDirection sideHit = ForgeDirection.getOrientation(mop.sideHit);
facing = getDirModified(facing);
double originX = mop.blockX + facing.offsetX * o;
double originY = pY + (mop.sideHit == 1 ? 1 : 0);
double originZ = mop.blockZ + facing.offsetZ * o;
double originX = mop.blockX + facing.offsetX * o + sideHit.offsetX;
double originY = pY + sideHit.offsetY;
double originZ = mop.blockZ + facing.offsetZ * o + sideHit.offsetZ;
boolean canPlace = checkRequirement(player.worldObj, mop.blockX, pY + 1, mop.blockZ, facing, o);
boolean canPlace = checkRequirement(player.worldObj, mop.blockX + sideHit.offsetX, pY + sideHit.offsetY, mop.blockZ + sideHit.offsetZ, facing, o);
Tessellator tess = Tessellator.instance;
GL11.glPushMatrix();

View File

@ -745,6 +745,7 @@ public class ModBlocks {
public static Block red_connector;
public static Block red_connector_super;
public static Block red_pylon;
public static Block red_pylon_steel;
public static Block red_pylon_medium_wood;
public static Block red_pylon_medium_wood_transformer;
public static Block red_pylon_medium_steel;
@ -1510,8 +1511,8 @@ public class ModBlocks {
reinforced_ducrete = new BlockNoSpawn(Material.rock).setBlockName("reinforced_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_ducrete");
lightstone = new BlockLightstone(Material.rock, LightstoneType.class, true, true).setBlockName("lightstone").setCreativeTab(MainRegistry.blockTab).setHardness(2F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":lightstone");
brick_forgotten = new BlockPillar(Material.rock, RefStrings.MODID + ":brick_forgotten_top").setBlockName("brick_forgotten").setBlockUnbreakable().setResistance(666_666F).setBlockTextureName(RefStrings.MODID + ":brick_forgotten");
brick_forgotten_lock = new BlockForgottenLock(Material.rock, RefStrings.MODID + ":brick_forgotten_top").setBlockName("brick_forgotten_lock").setBlockUnbreakable().setResistance(666_666F).setBlockTextureName(RefStrings.MODID + ":brick_forgotten_lock");
brick_forgotten = new BlockForgottenBrick().setBlockName("brick_forgotten").setBlockUnbreakable().setResistance(666_666F).setBlockTextureName(RefStrings.MODID + ":brick_forgotten");
brick_forgotten_lock = new BlockForgottenLock().setBlockName("brick_forgotten_lock").setBlockUnbreakable().setResistance(666_666F).setBlockTextureName(RefStrings.MODID + ":brick_forgotten_lock");
concrete_slab = new BlockMultiSlab(null, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete, asphalt).setBlockName("concrete_slab").setCreativeTab(MainRegistry.blockTab);
concrete_double_slab = new BlockMultiSlab(concrete_slab, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete, asphalt).setBlockName("concrete_double_slab").setCreativeTab(MainRegistry.blockTab);
@ -1854,6 +1855,7 @@ public class ModBlocks {
red_connector = new ConnectorRedWire(Material.iron).setBlockName("red_connector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_connector");
red_connector_super = new ConnectorRedWireSuper(Material.iron).setBlockName("red_connector_super").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_connector");
red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon");
red_pylon_steel = new PylonRedWire(Material.iron).setBlockName("red_pylon_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon");
red_pylon_medium_wood = new PylonMedium(Material.wood).setBlockName("red_pylon_medium_wood").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon");
red_pylon_medium_wood_transformer = new PylonMedium(Material.wood).setBlockName("red_pylon_medium_wood_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon");
red_pylon_medium_steel = new PylonMedium(Material.iron).setBlockName("red_pylon_medium_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon");
@ -1900,7 +1902,7 @@ public class ModBlocks {
crane_splitter = new CraneSplitter().setBlockName("crane_splitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":crane_side");
crane_partitioner = new CranePartitioner().setBlockName("crane_partitioner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":crane_partitioner_side");
fan = new MachineFan().setBlockName("fan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
drone_waypoint = new DroneWaypoint().setBlockName("drone_waypoint").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint");
drone_crate = new DroneCrate().setBlockName("drone_crate").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
@ -3130,6 +3132,7 @@ public class ModBlocks {
register(red_connector);
register(red_connector_super);
register(red_pylon);
register(red_pylon_steel);
register(red_pylon_medium_wood);
register(red_pylon_medium_wood_transformer);
register(red_pylon_medium_steel);

View File

@ -0,0 +1,112 @@
package com.hbm.blocks.generic;
import java.util.List;
import com.hbm.blocks.BlockMulti;
import com.hbm.items.ModItems;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class BlockForgottenBrick extends BlockMulti {
private IIcon iconTop;
private IIcon iconAlt;
private IIcon iconAltTop;
private IIcon iconStone;
private IIcon iconHole;
private IIcon iconEmpty;
private IIcon iconPlanks;
private IIcon iconBricks;
public static final int META_DEFAULT = 0;
public static final int META_BW = 1;
public static final int META_NULLSTONE = 2;
public static final int META_HOLE = 3;
public static final int META_HOLE_EMPTY = 4;
public static final int META_NULLROOM_WOOD = 5;
public static final int META_NULLROOM_STONE = 6;
public BlockForgottenBrick() {
super(Material.rock);
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister reg) {
super.registerBlockIcons(reg);
this.iconTop = reg.registerIcon(RefStrings.MODID + ":brick_forgotten_top");
this.iconAlt = reg.registerIcon(RefStrings.MODID + ":brick_forgotten_bw");
this.iconAltTop = reg.registerIcon(RefStrings.MODID + ":brick_forgotten_bw_top");
this.iconStone = reg.registerIcon(RefStrings.MODID + ":playground/nullstone_demo_1_wip");
this.iconHole = reg.registerIcon(RefStrings.MODID + ":brick_forgotten_hole");
this.iconEmpty = reg.registerIcon(RefStrings.MODID + ":brick_forgotten_hole_empty");
this.iconPlanks = reg.registerIcon(RefStrings.MODID + ":nr_planks");
this.iconBricks = reg.registerIcon(RefStrings.MODID + ":nr_stone");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
if(meta == META_BW) {
if(side == 0 || side == 1) return this.iconAltTop;
return this.iconAlt;
}
if(meta == META_NULLSTONE) {
return this.iconStone;
}
if(meta == META_HOLE) {
if(side == 0 || side == 1) return this.iconTop;
return this.iconHole;
}
if(meta == META_HOLE_EMPTY) {
if(side == 0 || side == 1) return this.iconTop;
return this.iconEmpty;
}
if(meta == META_NULLROOM_WOOD) {
return this.iconPlanks;
}
if(meta == META_NULLROOM_STONE) {
return this.iconBricks;
}
if(side == 0 || side == 1) return this.iconTop;
return this.blockIcon;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
int meta = world.getBlockMetadata(x, y, z);
if(meta == META_HOLE) {
if(player.getHeldItem() == null) {
player.inventory.mainInventory[player.inventory.currentItem] = new ItemStack(ModItems.coal_eternal);
world.setBlockMetadataWithNotify(x, y, z, META_HOLE_EMPTY, 3);
return true;
}
return false;
}
return false;
}
@Override public int getSubCount() { return 7; }
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
for(int i = 0; i < getSubCount(); ++i) {
list.add(new ItemStack(item, 1, i));
}
}
}

View File

@ -1,21 +1,82 @@
package com.hbm.blocks.generic;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.machine.BlockPillar;
import com.hbm.items.ModItems;
import java.util.List;
import com.hbm.blocks.BlockMulti;
import com.hbm.blocks.ModBlocks;
import com.hbm.items.ModItems;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class BlockForgottenLock extends BlockPillar {
public class BlockForgottenLock extends BlockMulti {
private IIcon iconTop;
private IIcon iconAlt;
private IIcon iconAltTop;
private IIcon iconStone;
private IIcon iconStoneTop;
public static final int META_DEFAULT = 0;
public static final int META_BW = 1;
public static final int META_NULLSTONE = 2;
public static final int META_THE_BLOCK_THAT_FUCKING_KILLS_YOU = 3;
public BlockForgottenLock(Material mat, String top) {
super(mat, top);
public BlockForgottenLock() {
super(Material.rock);
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister reg) {
super.registerBlockIcons(reg);
this.iconTop = reg.registerIcon(RefStrings.MODID + ":brick_forgotten_top");
this.iconAlt = reg.registerIcon(RefStrings.MODID + ":brick_forgotten_bw_lock");
this.iconStone = reg.registerIcon(RefStrings.MODID + ":playground/nullstone_demo_2_wip");
this.iconStoneTop = reg.registerIcon(RefStrings.MODID + ":playground/nullstone_demo_1_wip");
this.iconAltTop = reg.registerIcon(RefStrings.MODID + ":brick_forgotten_bw_top");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
if(meta == META_BW) {
if(side == 0 || side == 1) return this.iconAltTop;
return this.iconAlt;
}
if(meta == META_NULLSTONE) {
if(side == 0 || side == 1) return this.iconStoneTop;
return this.iconStone;
}
if(side == 0 || side == 1) return this.iconTop;
return this.blockIcon;
}
/*
* A red herring is something that misleads or distracts from a relevant or important question.[1]
* It may be either a logical fallacy or a literary device that leads readers or audiences toward a
* false conclusion. A red herring may be used intentionally, as in mystery fiction or as part of
* rhetorical strategies (e.g., in politics), or may be used in argumentation inadvertently.[2]
*
* The expression was popularized in 1807 by the English polemicist William Cobbett, who told a
* story of having used a strong-smelling smoked herring to divert and distract hounds from
* chasing a rabbit.[3]
*/
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
@ -49,4 +110,14 @@ public class BlockForgottenLock extends BlockPillar {
world.setBlock(x - dir.offsetX * d + rot.offsetX * w, y + h, z - dir.offsetZ * d + rot.offsetZ * w, b);
}
}
@Override public int getSubCount() { return 3; }
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
for(int i = 0; i < getSubCount(); ++i) {
list.add(new ItemStack(item, 1, i));
}
}
}

View File

@ -1,6 +1,10 @@
package com.hbm.blocks.network;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.tileentity.network.TileEntityPylonBase;
import com.hbm.tileentity.network.TileEntityPylon;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
@ -10,15 +14,17 @@ import net.minecraft.world.World;
import java.util.List;
public class PylonRedWire extends PylonBase {
public class PylonRedWire extends BlockDummyable implements ITooltipProvider {
public PylonRedWire(Material material) {
super(material);
public PylonRedWire(Material mat) {
super(mat);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
return new TileEntityPylon();
if(meta >= 12) return new TileEntityPylon();
return null;
}
@Override
@ -26,4 +32,34 @@ public class PylonRedWire extends PylonBase {
list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Single");
list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "25m");
}
@Override
public int[] getDimensions() {
return new int[] {4, 0, 0, 0, 0, 0};
}
@Override
public int getOffset() {
return 0;
}
@Override
public void breakBlock(World world, int x, int y, int z, Block b, int m) {
TileEntity te = world.getTileEntity(x, y, z);
if(te instanceof TileEntityPylonBase) ((TileEntityPylonBase)te).disconnectAll();
super.breakBlock(world, x, y, z, b, m);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote) {
return true;
} else if(!player.isSneaking()) {
int[] pos = this.findCore(world, x, y, z);
TileEntityPylonBase te = (TileEntityPylonBase) world.getTileEntity(pos[0], pos[1], pos[2]);
return te.setColor(player.getHeldItem());
} else {
return false;
}
}
}

View File

@ -39,6 +39,7 @@ public class FuelHandler implements IFuelHandler {
if(fuel.getItem() == Item.getItemFromBlock(ModBlocks.block_coke)) return single * 160;
if(fuel.getItem() == ModItems.book_guide) return single;
if(fuel.getItem() == ModItems.coal_infernal) return 4800;
if(fuel.getItem() == ModItems.coal_eternal) return single * 16;
if(fuel.getItem() == ModItems.crystal_coal) return 6400;
if(fuel.getItem() == ModItems.powder_sawdust) return single / 2;

View File

@ -36,11 +36,12 @@ public class GUIMachineOilWell extends GuiInfoContainer {
derrick.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 54, guiTop + 45, 6, 32);
}
String[] upgradeText = new String[4];
String[] upgradeText = new String[5];
upgradeText[0] = I18nUtil.resolveKey("desc.gui.upgrade");
upgradeText[1] = I18nUtil.resolveKey("desc.gui.upgrade.speed");
upgradeText[2] = I18nUtil.resolveKey("desc.gui.upgrade.power");
upgradeText[3] = I18nUtil.resolveKey("desc.gui.upgrade.afterburner");
upgradeText[4] = I18nUtil.resolveKey("desc.gui.upgrade.overdrive");
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 160, guiTop + 21, 8, 8, mouseX, mouseY, upgradeText);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 22, 16, 34, derrick.power, derrick.getMaxPower());

View File

@ -30,6 +30,7 @@ import com.hbm.items.machine.ItemBatterySC.EnumBatterySC;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.machine.ItemDrillbit.EnumDrillType;
import com.hbm.items.machine.ItemPACoil.EnumCoilType;
import com.hbm.items.machine.ItemPileRodMK2.EnumPileRod;
import com.hbm.items.machine.ItemPistons.EnumPistonType;
import com.hbm.items.weapon.ItemAmmoHIMARS;
import com.hbm.items.weapon.grenade.ItemGrenadeFuze.EnumGrenadeFuze;
@ -160,6 +161,21 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.protoreactor").setup(200, 100).outputItems(new ItemStack(ModItems.dysfunctional_reactor, 1))
.inputItems(new OreDictStack(STEEL.shell(), 4), new OreDictStack(PB.plateCast(), 4), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack(KEY_BROWN, 3)));
// pile rods
String autoPileRod = "autoswitch.pilerod";
this.register(new GenericRecipe("ass.pilepabe").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.RA226BE.ordinal()))
.inputItems(new ComparableStack(ModItems.billet_ra226be, 3)).setGroup(autoPileRod, INSTANCE));
this.register(new GenericRecipe("ass.pilepobe").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.PO210BE.ordinal()))
.inputItems(new ComparableStack(ModItems.billet_po210be, 3)).setGroup(autoPileRod, INSTANCE));
this.register(new GenericRecipe("ass.pilezr").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.ZR.ordinal()))
.inputItems(new OreDictStack(ZR.billet(), 3)).setGroup(autoPileRod, INSTANCE));
this.register(new GenericRecipe("ass.pilenu").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.NU.ordinal()))
.inputItems(new OreDictStack(U.billet(), 3)).setGroup(autoPileRod, INSTANCE));
this.register(new GenericRecipe("ass.pilepu239").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.PU239.ordinal()))
.inputItems(new OreDictStack(PU239.billet(), 3)).setGroup(autoPileRod, INSTANCE));
this.register(new GenericRecipe("ass.pilergp").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.RGP.ordinal()))
.inputItems(new OreDictStack(PURG.billet(), 3)).setGroup(autoPileRod, INSTANCE));
// powders
String autoCyclotron = "autoswitch.cyclotron";
this.register(new GenericRecipe("ass.partlith").setup(40, 100).outputItems(new ItemStack(ModItems.part_lithium, 8))

View File

@ -13,6 +13,7 @@ import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.recipes.loader.GenericRecipes;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel;
import com.hbm.items.machine.ItemPileRodMK2.EnumPileRod;
import com.hbm.items.machine.ItemWatzPellet.EnumWatzType;
import net.minecraft.item.ItemStack;
@ -60,23 +61,25 @@ public class PUREXRecipes extends GenericRecipes<PUREXRecipe> {
//CP-1
String autoPile = "autoswitch.pile";
this.register((PUREXRecipe) new PUREXRecipe("purex.pilepu").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this)
.inputItems(new ComparableStack(ModItems.pile_rod_plutonium))
this.register((PUREXRecipe) new PUREXRecipe("purex.pilepu239").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this)
.inputItems(new ComparableStack(ModItems.pile_rod, 1, EnumPileRod.PU239))
.inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100))
.outputItems(new ItemStack(ModItems.billet_pu239, 2),
new ItemStack(ModItems.billet_uranium, 1))
.setIconToFirstIngredient());
this.register((PUREXRecipe) new PUREXRecipe("purex.pilergp").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this)
.inputItems(new ComparableStack(ModItems.pile_rod, 1, EnumPileRod.RGP))
.inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100))
.outputItems(new ItemStack(ModItems.billet_pu_mix, 2),
new ItemStack(ModItems.billet_uranium, 1),
new ItemStack(ModItems.plate_iron, 2))
new ItemStack(ModItems.billet_uranium, 1))
.setIconToFirstIngredient());
this.register((PUREXRecipe) new PUREXRecipe("purex.pilepu239").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this)
.inputItems(new ComparableStack(ModItems.pile_rod_pu239))
this.register((PUREXRecipe) new PUREXRecipe("purex.pilewaste").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this)
.inputItems(new ComparableStack(ModItems.pile_rod, 1, EnumPileRod.WASTE))
.inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100))
.outputItems(new ItemStack(ModItems.billet_pu239, 1),
new ItemStack(ModItems.billet_pu_mix, 1),
new ItemStack(ModItems.billet_uranium, 1),
new ItemStack(ModItems.plate_iron, 2))
.outputItems(new ItemStack(ModItems.billet_nuclear_waste, 2),
new ItemStack(ModItems.billet_polonium, 1))
.setIconToFirstIngredient());
// ZIRNOX
String autoZirnox = "autoswitch.zirnox";
this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxnu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)

View File

@ -25,6 +25,7 @@ import com.hbm.items.ModItems;
import com.hbm.items.food.ItemFlask.EnumInfusion;
import com.hbm.items.machine.ItemBatterySC.EnumBatterySC;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.machine.ItemPileRodMK2.EnumPileRod;
import com.hbm.util.Tuple.Pair;
import net.minecraft.block.Block;
@ -333,8 +334,8 @@ public class AnvilRecipes extends SerializableRecipe {
new AStack[] {
new OreDictStack(STEEL.plate(), 16),
new OreDictStack(BE.ingot(), 6),
new OreDictStack(CU.ingot(), 8),
new ComparableStack(ModItems.coil_gold, 16),
new OreDictStack(CU.ingot(), 4),
new ComparableStack(ModItems.coil_gold, 8),
new ComparableStack(ModItems.gear_large, 1, 1)
}, new AnvilOutput(new ItemStack(ModBlocks.machine_stirling_steel))).setTier(2));
@ -698,8 +699,8 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.plate_steel, 16)),
new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 6)),
new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)),
new AnvilOutput(new ItemStack(ModItems.coil_gold, 16)),
new AnvilOutput(new ItemStack(ModItems.ingot_copper, 4)),
new AnvilOutput(new ItemStack(ModItems.coil_gold, 8)),
new AnvilOutput(new ItemStack(ModItems.gear_large,1, 1)),
}
@ -725,8 +726,8 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.plate_steel, 16)),
new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 6)),
new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)),
new AnvilOutput(new ItemStack(ModItems.coil_gold, 16)),
new AnvilOutput(new ItemStack(ModItems.ingot_copper, 4)),
new AnvilOutput(new ItemStack(ModItems.coil_gold, 8)),
}
).setTier(2));
@ -846,30 +847,28 @@ public class AnvilRecipes extends SerializableRecipe {
).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModItems.pile_rod_uranium), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.billet_uranium, 3)),
new AnvilOutput(new ItemStack(ModItems.plate_iron, 2))
new ComparableStack(ModItems.billet_ra226be, 3), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.RA226BE.ordinal())),
}).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModItems.pile_rod_source), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.billet_ra226be, 3)),
new AnvilOutput(new ItemStack(ModItems.plate_iron, 2))
new ComparableStack(ModItems.billet_po210be, 3), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.PO210BE.ordinal())),
}).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModItems.pile_rod_boron), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.ingot_boron, 2)),
new AnvilOutput(new ItemStack(Items.stick, 2))
new OreDictStack(ZR.billet(), 3), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.ZR.ordinal())),
}).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModItems.pile_rod_detector), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.ingot_boron, 2)),
new AnvilOutput(new ItemStack(ModItems.motor, 1)),
new AnvilOutput(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE))
new OreDictStack(U.billet(), 3), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.NU.ordinal())),
}).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModItems.pile_rod_lithium), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.lithium, 1)),
new AnvilOutput(new ItemStack(ModItems.cell_empty, 1))
new OreDictStack(PU239.billet(), 3), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.PU239.ordinal())),
}).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(
new OreDictStack(PURG.billet(), 3), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.RGP.ordinal())),
}).setTier(2));
//RBMK
@ -968,20 +967,6 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal()), 0.5F),
}).setTier(4));
} else {
constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModItems.pile_rod_plutonium), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.billet_pu_mix, 2)),
new AnvilOutput(new ItemStack(ModItems.billet_nuclear_waste, 1)),
new AnvilOutput(new ItemStack(ModItems.plate_iron, 1))
}).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModItems.pile_rod_pu239), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.billet_pu239, 1)),
new AnvilOutput(new ItemStack(ModItems.billet_pu_mix, 1)),
new AnvilOutput(new ItemStack(ModItems.billet_nuclear_waste, 1)),
new AnvilOutput(new ItemStack(ModItems.plate_iron, 2))
}).setTier(2));
}
constructionRecipes.add(new AnvilConstructionRecipe(

View File

@ -105,6 +105,7 @@ public class ModItems {
public static Item powder_lignite;
public static Item briquette;
public static Item coal_infernal;
public static Item coal_eternal;
public static Item cinnebar;
public static Item powder_ash;
public static Item powder_limestone;
@ -2338,6 +2339,7 @@ public class ModItems {
briquette = new ItemEnumMulti(EnumBriquetteType.class, true, true).setUnlocalizedName("briquette").setCreativeTab(MainRegistry.partsTab);
powder_lignite = new Item().setUnlocalizedName("powder_lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lignite");
coal_infernal = new Item().setUnlocalizedName("coal_infernal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coal_infernal");
coal_eternal = new Item().setUnlocalizedName("coal_eternal").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":coal_eternal");
cinnebar = new Item().setUnlocalizedName("cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cinnebar");
powder_ash = new ItemEnumMulti(EnumAshType.class, true, true).setUnlocalizedName("powder_ash").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ash");
powder_limestone = new Item().setUnlocalizedName("powder_limestone").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_limestone");
@ -4406,6 +4408,8 @@ public class ModItems {
BucketHandler.INSTANCE.buckets.put(ModBlocks.schrabidic_block, ModItems.bucket_schrabidic_acid);
BucketHandler.INSTANCE.buckets.put(ModBlocks.sulfuric_acid_block, ModItems.bucket_sulfuric_acid);
MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE);
coal_eternal.setContainerItem(coal_eternal);
}
private static void registerItem() {
@ -4605,6 +4609,7 @@ public class ModItems {
GameRegistry.registerItem(coke, coke.getUnlocalizedName());
GameRegistry.registerItem(lignite, lignite.getUnlocalizedName());
GameRegistry.registerItem(coal_infernal, coal_infernal.getUnlocalizedName());
GameRegistry.registerItem(coal_eternal, coal_eternal.getUnlocalizedName());
GameRegistry.registerItem(briquette, briquette.getUnlocalizedName());
GameRegistry.registerItem(sulfur, sulfur.getUnlocalizedName());
GameRegistry.registerItem(niter, niter.getUnlocalizedName());

View File

@ -33,6 +33,7 @@ import com.hbm.items.weapon.sedna.BulletConfig;
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
import com.hbm.main.ResourceManager;
import com.hbm.render.item.weapon.sedna.*;
import com.hbm.tileentity.machine.pile.TileEntityPileCore;
import com.hbm.tileentity.machine.storage.TileEntityBatterySocket;
import net.minecraftforge.client.MinecraftForgeClient;
@ -250,6 +251,8 @@ public class GunFactoryClient {
setRendererBulk(LegoClient.RENDER_FRAGMENTATION, ItemGrenadeFilling.fragmentation, ItemGrenadeFilling.pellets, ItemGrenadeFilling.pellets_heavy);
ItemGrenadeFilling.laser.setRendererBeam(LegoClient.RENDER_LASER_RED);
TileEntityPileCore.pile_debris.setRenderer(LegoClient.RENDER_GRAPHITE);
//HUDS
((ItemGunBaseNT) ModItems.gun_debug) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO, LegoClient.HUD_COMPONENT_AMMO_SECOND);

View File

@ -12,6 +12,7 @@ import com.hbm.items.weapon.sedna.hud.HUDComponentDurabilityBar;
import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower;
import com.hbm.lib.RefStrings;
import com.hbm.main.ResourceManager;
import com.hbm.render.entity.projectile.RenderRBMKDebris;
import com.hbm.render.item.weapon.sedna.ItemRenderFatMan;
import com.hbm.render.tileentity.RenderArcFurnace;
import com.hbm.render.util.BeamPronter;
@ -210,6 +211,14 @@ public class LegoClient {
GL11.glPopMatrix();
}
public static BiConsumer<EntityBulletBaseMK4, Float> RENDER_GRAPHITE = (bullet, interp) -> {
GL11.glScalef(2F, 2F, 2F);
GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().getTextureManager().bindTexture(RenderRBMKDebris.tex_graphite);
ResourceManager.deb_graphite.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
};
public static BiConsumer<EntityBulletBaseMK4, Float> RENDER_GRENADE = (bullet, interp) -> {
GL11.glScalef(0.25F, 0.25F, 0.25F);
GL11.glRotated(90, 0, 0, 1);

View File

@ -241,7 +241,8 @@ public class CraftingManager {
addShapelessAuto(new ItemStack(ModBlocks.red_cable_gauge), new Object[] { ModBlocks.red_wire_coated, STEEL.ingot(), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) });
addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.red_connector_super, 2), new Object[] { "CCC", "III", " S ", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', ANY_RESISTANTALLOY.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated });
addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " S ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'S', KEY_COBBLESTONE });
addRecipeAuto(new ItemStack(ModBlocks.red_pylon_steel, 4), new Object[] { "CWC", "PWP", " S ", 'C', ModItems.coil_copper, 'W', STEEL.pipe(), 'P', ModItems.plate_polymer, 'S', KEY_COBBLESTONE });
addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_wood, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE });
addShapelessAuto(new ItemStack(ModBlocks.red_pylon_medium_wood_transformer, 1), new Object[] { ModBlocks.red_pylon_medium_wood, ModItems.plate_polymer, ModItems.coil_copper });
addRecipeAuto(new ItemStack(ModBlocks.red_pylon_medium_steel, 2), new Object[] { "CCW", "IIW", " S", 'C', ModItems.coil_copper, 'W', STEEL.pipe(), 'I', ModItems.plate_polymer, 'S', KEY_COBBLESTONE });
@ -298,7 +299,6 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick });
addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'M', ModItems.motor });
addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate(), 'R', REDSTONE.dust() });
addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', STEEL.bolt() });
addRecipeAuto(new ItemStack(ModItems.upgrade_muffler, 16), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.wool });
addRecipeAuto(new ItemStack(ModItems.upgrade_template, 1), new Object[] { "WIW", "PCP", "WIW", 'W', CU.wireFine(), 'I', IRON.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'P', ModItems.plate_polymer });

View File

@ -92,6 +92,9 @@ public class NEIConfig implements IConfigureNEI {
API.hideItem(new ItemStack(ModBlocks.conveyor_double));
API.hideItem(new ItemStack(ModBlocks.conveyor_triple));
API.hideItem(new ItemStack(ModBlocks.brick_forgotten));
API.hideItem(new ItemStack(ModBlocks.brick_forgotten_lock));
API.registerHighlightIdentifier(ModBlocks.plushie, new IHighlightHandler() {
@Override public ItemStack identifyHighlight(World world, EntityPlayer player, MovingObjectPosition mop) {
int x = mop.blockX;

View File

@ -407,6 +407,7 @@ public class ResourceManager {
//Network
public static final IModelCustom connector = new HFRWavefrontObject("models/network/connector.obj").noSmooth().asVBO();
public static final IModelCustom connector_super = new HFRWavefrontObject("models/network/connector_super.obj").noSmooth().asVBO();
public static final IModelCustom pylon = new HFRWavefrontObject("models/network/pylon.obj").noSmooth().asVBO();
public static final IModelCustom pylon_medium = new HFRWavefrontObject("models/network/pylon_medium.obj").noSmooth().asVBO();
public static final IModelCustom pylon_large = new HFRWavefrontObject("models/network/pylon_large.obj").noSmooth().asVBO();
public static final IModelCustom substation = new HFRWavefrontObject("models/network/substation.obj").asVBO();
@ -859,6 +860,8 @@ public class ResourceManager {
//Electricity
public static final ResourceLocation connector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/connector.png");
public static final ResourceLocation connector_super_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/connector_super.png");
public static final ResourceLocation pylon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon.png");
public static final ResourceLocation pylon_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_steel.png");
public static final ResourceLocation pylon_medium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_medium.png");
public static final ResourceLocation pylon_medium_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_medium_steel.png");
public static final ResourceLocation pylon_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pylon_large.png");

View File

@ -72,14 +72,15 @@ public class ParticleAshes extends EntityFXRotating {
float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ);
Vec3NT vec = new Vec3NT(particleScale, 0, particleScale).rotateAroundYDeg(this.rotationPitch);
double yOff = 0.09;
tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMaxU(), particleIcon.getMaxV());
tess.addVertexWithUV(pX + vec.xCoord, pY - yOff, pZ + vec.zCoord, particleIcon.getMaxU(), particleIcon.getMaxV());
vec.rotateAroundYDeg(90);
tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMaxU(), particleIcon.getMinV());
tess.addVertexWithUV(pX + vec.xCoord, pY - yOff, pZ + vec.zCoord, particleIcon.getMaxU(), particleIcon.getMinV());
vec.rotateAroundYDeg(90);
tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMinU(), particleIcon.getMinV());
tess.addVertexWithUV(pX + vec.xCoord, pY - yOff, pZ + vec.zCoord, particleIcon.getMinU(), particleIcon.getMinV());
vec.rotateAroundYDeg(90);
tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMinU(), particleIcon.getMaxV());
tess.addVertexWithUV(pX + vec.xCoord, pY - yOff, pZ + vec.zCoord, particleIcon.getMinU(), particleIcon.getMaxV());
} else {
renderParticleRotated(tess, interp, sX, sY, sZ, dX, dZ, this.particleScale);
}

View File

@ -14,12 +14,12 @@ import net.minecraft.util.ResourceLocation;
public class RenderRBMKDebris extends Render {
//for fallback only
private static final ResourceLocation tex_base = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_side.png");
private static final ResourceLocation tex_element = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_fuel.png");
private static final ResourceLocation tex_control = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_control.png");
private static final ResourceLocation tex_blank = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank_side.png");
private static final ResourceLocation tex_lid = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank_cover_top.png");
private static final ResourceLocation tex_graphite = new ResourceLocation(RefStrings.MODID + ":textures/blocks/block_graphite.png");
public static final ResourceLocation tex_base = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_side.png");
public static final ResourceLocation tex_element = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_fuel.png");
public static final ResourceLocation tex_control = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_control.png");
public static final ResourceLocation tex_blank = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank_side.png");
public static final ResourceLocation tex_lid = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank_cover_top.png");
public static final ResourceLocation tex_graphite = new ResourceLocation(RefStrings.MODID + ":textures/blocks/block_graphite.png");
@Override
public void doRender(Entity entity, double x, double y, double z, float f0, float f1) {

View File

@ -1,63 +0,0 @@
//This File was created with the Minecraft-SMP Modelling Toolbox 2.3.0.0
// Copyright (C) 2017 Minecraft-SMP.de
// This file is for Flan's Flying Mod Version 4.0.x+
// Model: Pylon
// Model Creator:
// Created on:13.06.2017 - 11:17:46
// Last changed on: 13.06.2017 - 11:17:46
package com.hbm.render.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
public class ModelPylon extends ModelBase {
public ModelRenderer[] pylonModel;
public ModelPylon() {
this.textureWidth = 64;
this.textureHeight = 128;
this.pylonModel = new ModelRenderer[4];
this.pylonModel[0] = new ModelRenderer(this, 0, 96); // Box 0
this.pylonModel[1] = new ModelRenderer(this, 1, 1); // Box 1
this.pylonModel[2] = new ModelRenderer(this, 24, 1); // Box 2
this.pylonModel[3] = new ModelRenderer(this, 25, 17); // Box 3
this.pylonModel[0].addBox(0F, 0F, 0F, 16, 16, 16, 0F); // Box 0
this.pylonModel[0].setRotationPoint(-8F, -6F, -8F);
this.pylonModel[1].addBox(0F, 0F, 0F, 4, 73, 4, 0F); // Box 1
this.pylonModel[1].setRotationPoint(-2F, -79F, -2F);
this.pylonModel[2].addBox(0F, 0F, 0F, 6, 4, 6, 0F); // Box 2
this.pylonModel[2].setRotationPoint(-3F, -74F, -3F);
this.pylonModel[3].addBox(0F, 0F, 0F, 6, 2, 6, 0F); // Box 3
this.pylonModel[3].setRotationPoint(-3F, -78F, -3F);
for (ModelRenderer modelRenderer : this.pylonModel) {
modelRenderer.setTextureSize(this.textureWidth, this.textureHeight);
modelRenderer.mirror = true;
}
}
@Override
public void render(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor) {
for(int i = 0; i < 4; i++) {
this.pylonModel[i].render(scaleFactor);
}
}
public void renderAll(float scaleFactor) {
for(int i = 0; i < 4; i++) {
this.pylonModel[i].render(scaleFactor);
}
}
}

View File

@ -17,6 +17,9 @@ import com.hbm.render.util.BeamPronter.EnumWaveType;
import com.hbm.tileentity.machine.storage.TileEntityBatterySocket;
import com.hbm.util.EnumUtil;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@ -28,6 +31,8 @@ import net.minecraftforge.client.IItemRenderer;
public class RenderBatterySocket extends TileEntitySpecialRenderer implements IItemRendererProvider {
private static ResourceLocation blorbo = new ResourceLocation(RefStrings.MODID, "textures/models/horse/sunburst.png");
public static EntityItem dummy;
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
@ -78,6 +83,34 @@ public class RenderBatterySocket extends TileEntitySpecialRenderer implements II
Random rand = new Random(tile.getWorldObj().getTotalWorldTime() / 5);
rand.nextBoolean();
for(int i = -1; i <= 1; i += 2) for(int j = -1; j <= 1; j += 2) if(rand.nextInt(4) == 0) {
GL11.glPushMatrix();
GL11.glTranslated(0, 0.75, 0);
BeamPronter.prontBeam(Vec3.createVectorHelper(0.4375 * i, 1.1875, 0.4375 * j), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.0625F, 3, 0.025F);
BeamPronter.prontBeam(Vec3.createVectorHelper(0.4375 * i, 1.1875, 0.4375 * j), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 1, 0, 3, 0.025F);
GL11.glPopMatrix();
}
} else {
GL11.glPushMatrix();
GL11.glTranslated(0, 0.5, 0);
GL11.glScaled(1.5, 1.5, 1.5);
GL11.glRotated((socket.getWorldObj().getTotalWorldTime() % 360 + interp) * 2.5D, 0, -1, 0);
if(dummy == null || dummy.worldObj != tile.getWorldObj()) {
dummy = new EntityItem(tile.getWorldObj(), 0, 0, 0, render);
}
dummy.setEntityItemStack(render);
dummy.hoverStart = 0.0F;
RenderItem.renderInFrame = true;
RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
RenderItem.renderInFrame = false;
GL11.glPopMatrix();
Random rand = new Random(tile.getWorldObj().getTotalWorldTime() / 5);
rand.nextBoolean();
for(int i = -1; i <= 1; i += 2) for(int j = -1; j <= 1; j += 2) if(rand.nextInt(4) == 0) {
GL11.glPushMatrix();
GL11.glTranslated(0, 0.75, 0);

View File

@ -29,7 +29,7 @@ public class RenderLPW2 extends TileEntitySpecialRenderer {
case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
}
long time = te.getWorldObj().getTotalWorldTime();
long time = te.getWorldObj().getTotalWorldTime() % 1000000;
double swayTimer = ((time + interp) / 3D) % (Math.PI * 4);
double sway = (Math.sin(swayTimer) + Math.sin(swayTimer * 2) + Math.sin(swayTimer * 4) + 2.23255D) * 0.5;

View File

@ -2,38 +2,77 @@ package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.lib.RefStrings;
import com.hbm.render.model.ModelPylon;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase;
import com.hbm.tileentity.network.TileEntityPylon;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.IItemRenderer;
public class RenderPylon extends RenderPylonBase {
private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":" + "textures/models/ModelPylon.png");
public class RenderPylon extends RenderPylonBase implements IItemRendererProvider {
private ModelPylon pylon;
public RenderPylon() {
this.pylon = new ModelPylon();
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5, y, z + 0.5);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE);
TileEntityPylon pylon = (TileEntityPylon)tile;
if(tile.getBlockType() == ModBlocks.red_pylon)
bindTexture(ResourceManager.pylon_tex);
else
bindTexture(ResourceManager.pylon_steel_tex);
if(tile.getBlockType() == ModBlocks.red_pylon )
ResourceManager.pylon.renderPart("Pylon");
else
ResourceManager.pylon.renderPart("Pylon_steel");
GL11.glPopMatrix();
GL11.glPushMatrix();
this.renderLinesGeneric(pylon, x, y, z);
GL11.glPopMatrix();
}
@Override
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) {
TileEntityPylon pyl = (TileEntityPylon)te;
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPushMatrix();
GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F - ((1F / 16F) * 14F), (float) z + 0.5F);
GL11.glRotatef(180, 0F, 0F, 1F);
bindTexture(texture);
this.pylon.renderAll(0.0625F);
GL11.glPopMatrix();
GL11.glPushMatrix();
this.renderLinesGeneric(pyl, x, y, z);
GL11.glPopMatrix();
public Item[] getItemsForRenderer() {
return new Item[] {
Item.getItemFromBlock(ModBlocks.red_pylon),
Item.getItemFromBlock(ModBlocks.red_pylon_steel),
};
}
@Override
public Item getItemForRenderer() {
return Item.getItemFromBlock(ModBlocks.red_pylon);
}
@Override
public IItemRenderer getRenderer() {
return new ItemRenderBase( ) {
public void renderInventory() {
GL11.glTranslated(0, -5, 0);
GL11.glScaled(2.9, 2.9, 2.9);
}
public void renderCommonWithStack(ItemStack stack) {
GL11.glScaled(1, 1, 1);
if(stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon))
bindTexture(ResourceManager.pylon_tex);
else
bindTexture(ResourceManager.pylon_steel_tex);
if(stack.getItem() == Item.getItemFromBlock(ModBlocks.red_pylon) )
ResourceManager.pylon.renderPart("Pylon");
else
ResourceManager.pylon.renderPart("Pylon_steel");
}
};
}
}

View File

@ -7,6 +7,7 @@ import com.hbm.util.Compat;
import api.hbm.redstoneoverradio.IRORInteractive;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraftforge.common.util.ForgeDirection;
@ -98,6 +99,22 @@ public class TileEntityPileControl extends TileEntityPileDeviceBase implements I
if(this.syncLevel != lastSync) this.turnProgress = 2;
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.level = nbt.getDouble("level");
this.targetLevel = nbt.getDouble("targetLevel");
this.wasRedstone = nbt.getBoolean("redstone");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setDouble("level", level);
nbt.setDouble("targetLevel", targetLevel);
nbt.setBoolean("wasRedstone", wasRedstone);
}
@Override
public String[] getFunctionInfo() {
return new String[] {

View File

@ -3,27 +3,35 @@ package com.hbm.tileentity.machine.pile;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.machine.MachinePWRController;
import com.hbm.blocks.machine.pile.BlockPile;
import com.hbm.entity.projectile.EntityBulletBaseMK4;
import com.hbm.interfaces.NotableComments;
import com.hbm.items.machine.ItemPileRodMK2;
import com.hbm.items.weapon.sedna.BulletConfig;
import com.hbm.main.MainRegistry;
import com.hbm.main.NTMSounds;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.particle.helper.FlameCreator;
import com.hbm.tileentity.TileEntityTickingBase;
import com.hbm.util.EnumUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraftforge.common.util.ForgeDirection;
@NotableComments
@ -373,6 +381,12 @@ public class TileEntityPileCore extends TileEntityTickingBase {
meltingDown = true;
worldObj.newExplosion(null, avgX, yCoord + up, avgZ, 15F, true, true);
meltingDown= false;
for(int i = 0; i < 15; i++) {
double mY = worldObj.rand.nextDouble() * 0.5 + 1D;
EntityBulletBaseMK4 fragment = new EntityBulletBaseMK4(worldObj, null, pile_debris, 100F, 0.35F, avgX, yCoord + up + 1, avgZ, 0, mY, 0);
worldObj.spawnEntityInWorld(fragment);
}
}
}
@ -610,4 +624,19 @@ public class TileEntityPileCore extends TileEntityTickingBase {
return MathHelper.clamp_double(total / size, 0D, 0.5D);
}
}
public static BulletConfig pile_debris;
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE = (bullet, mop) -> {
bullet.worldObj.newExplosion(bullet, bullet.posX, bullet.posY, bullet.posZ, 5F, true, false);
bullet.setDead();
};
public static Consumer<Entity> LAMBDA_FIRE = (bullet) -> {
if(bullet.worldObj.isRemote && MainRegistry.proxy.me().getDistanceToEntity(bullet) < 100) FlameCreator.composeEffectClient(bullet.worldObj, bullet.posX, bullet.posY - 0.125, bullet.posZ, FlameCreator.META_FIRE);
};
static {
pile_debris = new BulletConfig().setLife(200).setVel(1F).setGrav(0.1D).setOnUpdate(LAMBDA_FIRE).setOnImpact(LAMBDA_STANDARD_EXPLODE);
}
}

View File

@ -16,6 +16,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
@ -166,6 +167,35 @@ public class TileEntityPileLoader extends TileEntityPileDeviceBase implements IS
if(this.syncLevel != lastSync) this.turnProgress = 2;
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.loading = nbt.getBoolean("loading");
this.level = nbt.getDouble("level");
this.delay = nbt.getInteger("delay");
this.wasRedstone = nbt.getBoolean("redstone");
if(nbt.hasKey("stack")) {
this.stack = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("stack"));
}
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setBoolean("loading", loading);
nbt.setDouble("level", level);
nbt.setInteger("delay", delay);
nbt.setBoolean("wasRedstone", wasRedstone);
if(this.stack != null) {
NBTTagCompound stackTag = new NBTTagCompound();
this.stack.writeToNBT(stackTag);
nbt.setTag("stack", stackTag);
}
}
public static boolean isItemLoadable(ItemStack stack) {
return stack.getItem() == ModItems.pile_rod;

View File

@ -11,6 +11,7 @@ import com.hbm.util.Compat;
import api.hbm.fluidmk2.IFluidStandardReceiverMK2;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
@ -99,4 +100,16 @@ public class TileEntityPileVent extends TileEntityPileDeviceBase implements IFlu
super.deserialize(buf);
this.isActive = buf.readBoolean();
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
compair.readFromNBT(nbt, "t");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
compair.writeToNBT(nbt, "t");
}
}

View File

@ -18,12 +18,17 @@ public class TileEntityPylon extends TileEntityPylonBase {
@Override
public Vec3[] getMountPos() {
return new Vec3[] {Vec3.createVectorHelper(0.5, 5.4, 0.5)};
return new Vec3[] {Vec3.createVectorHelper(0.5, 5.5D, 0.5)};
}
@Override
public double getMaxWireLength() {
return 25D;
return 25;
}
@Override
public boolean canConnect(ForgeDirection dir) {
return dir != ForgeDirection.DOWN;
}
@Override
@ -33,8 +38,6 @@ public class TileEntityPylon extends TileEntityPylonBase {
new DirPos(xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN),
new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X),
new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X),
new DirPos(xCoord, yCoord + 1, zCoord, Library.POS_Y),
new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y),
new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z),
new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z)
);

View File

@ -4,7 +4,6 @@ import com.google.common.collect.Sets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
@ -62,10 +61,6 @@ public class ShadyUtil {
"ccd9aa1c-26b9-4dde-8f37-b96f8d99de22", //kakseao
});
// simple cryptographic utils
@Deprecated public static String encode(String msg) { return Base64.getEncoder().encodeToString(msg.getBytes()); }
@Deprecated public static String decode(String msg) { return new String(Base64.getDecoder().decode(msg)); }
/** complete fucking shit */
public static String smoosh(String s1, String s2, String s3, String s4) {
@ -81,18 +76,12 @@ public class ShadyUtil {
s += s1;
rand.setSeed(b1[0]);
s += rand.nextInt(0xffffff);
s += s2;
s += rand.nextInt(0xffffff) + s2;
rand.setSeed(rand.nextInt(0xffffff) + b2[0]);
rand.setSeed(b2[0]);
s += rand.nextInt(0xffffff);
s += s3;
s += rand.nextInt(0xffffff) + s3;
rand.setSeed(rand.nextInt(0xffffff) + b3[0]);
rand.setSeed(b3[0]);
s += rand.nextInt(0xffffff);
s += s4;
s += rand.nextInt(0xffffff) + s4;
rand.setSeed(rand.nextInt(0xffffff) + b4[0]);
rand.setSeed(b4[0]);
s += rand.nextInt(0xffffff);
return getHash(s);
}

View File

@ -137,6 +137,7 @@ ass.nitra=Nitra zu Munition
autoswitch=Teil der Rezeptgruppe "%s"$Rezept ändert sich basierend auf das erste Item
autoswitch.cyclotron=Zyklotron-Pulverkisten
autoswitch.pile=Wiederaufbereitung Chicago-Pile-Brennstoff
autoswitch.pilerod=Chicago-Pile-Brennstoff
autoswitch.plate=Wiederaufbereitung Plattenbrennstoff
autoswitch.plates=Metallplatten
autoswitch.pwr=Wiederaufbereitung PWR-Brennstoff
@ -1733,6 +1734,7 @@ item.cmb_pickaxe.name=CMB-Stahlspitzhacke
item.cmb_plate.name=CMB-Stahlbrustpanzer
item.cmb_shovel.name=CMB-Stahlschaufel
item.cmb_sword.name=CMB-Stahlschwert
item.coal_eternal.name=Ewige Kohle
item.coal_infernal.name=Höllische Kohle
item.cobalt_axe.name=Kobaltaxt
item.cobalt_boots.name=Kobaltstiefel
@ -3980,6 +3982,7 @@ tile.brick_dungeon_flat.name=Berzelianitblock
tile.brick_dungeon_tile.name=Berzelianitfliese
tile.brick_fire.name=Schamottsteinziegel
tile.brick_fire_stairs.name=Schamottsteintreppe
tile.brick_forgotten.name=Block
tile.brick_jungle.name=Enargitziegel
tile.brick_jungle_circle.name=Mechanistenzirkel
tile.brick_jungle_cracked.name=Rissige Enargitziegel

View File

@ -192,6 +192,7 @@ ass.nitra=Nitra to Ammunition
autoswitch=Part of auto switch group "%s"$Recipe changes based on first ingredient
autoswitch.cyclotron=Cyclotron Powder Boxes
autoswitch.pile=Reprocessing Chicago Pile Rods
autoswitch.pilerod=Chicago Pile Rods
autoswitch.plate=Reprocessing Plate Fuel
autoswitch.plates=Metal Plates
autoswitch.pwr=Reprocessing PWR Fuel
@ -2526,6 +2527,7 @@ item.cmb_pickaxe.name=CMB Steel Pickaxe
item.cmb_plate.name=CMB Steel Chestplate
item.cmb_shovel.name=CMB Steel Shovel
item.cmb_sword.name=CMB Steel Sword
item.coal_eternal.name=Eternal Coal
item.coal_infernal.name=Infernal Coal
item.cobalt_axe.name=Cobalt Axe
item.cobalt_boots.name=Cobalt Boots
@ -5195,6 +5197,7 @@ tile.brick_dungeon_flat.name=Berzelianite Block
tile.brick_dungeon_tile.name=Berzelianite Tile
tile.brick_fire.name=Firebricks
tile.brick_fire_stairs.name=Firebrick Stairs
tile.brick_forgotten.name=Block
tile.brick_jungle.name=Enargite Bricks
tile.brick_jungle_circle.name=Mechanist's Circle
tile.brick_jungle_cracked.name=Cracked Enargite Bricks
@ -6219,7 +6222,8 @@ tile.red_cable_paintable.name=Paintable Red Copper Cable
tile.red_cable_paintable.desc=Right-click with a solid block to set a paint$Paint can be cleared with a screwdriver$Port texture can be disabled with a defuser$Paints can be copied with the copy tool
tile.red_connector.name=Electricity Connector
tile.red_connector_super.name=Heavy Duty Electricity Connector
tile.red_pylon.name=Electricity Pylon
tile.red_pylon.name=Wooden Electricity Pylon
tile.red_pylon_steel.name=Steel Electricity Pylon
tile.red_pylon_large.name=Large Electricity Pylon
tile.red_pylon_medium_steel.name=Medium Steel Electricity Pylon
tile.red_pylon_medium_steel_transformer.name=Medium Steel Electricity Pylon with Transformer

View File

@ -0,0 +1,11 @@
{
"name": "Eternal Coal",
"icon": ["hbm:item.nothing"],
"trigger": [["hbm:item.coal_eternal"]],
"title": {
"en_US": "█ █ █ █ █ █"
},
"content": {
"en_US": "████████████ ███ ███ ██ ████████ ████████ ██ ████ ████ ████████ ████ ██████████ █ ████ █████ ██████ ████████ ████ █████ ██ ██ ███ ██████"
}
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB