This commit is contained in:
Bob 2025-06-09 22:49:23 +02:00
parent 6f598278d6
commit 060c259fa9
24 changed files with 1462 additions and 780 deletions

View File

@ -13,10 +13,12 @@
* If the center block right above the chemplant is not air, it will render with a frame, making chemplant stacking actually nice to look at * If the center block right above the chemplant is not air, it will render with a frame, making chemplant stacking actually nice to look at
* Now has a more convenient 3x3 footprint * Now has a more convenient 3x3 footprint
* Features 12 access ports, more than enough for full coverage of the entire machine's IO * Features 12 access ports, more than enough for full coverage of the entire machine's IO
* Has an optional slot for template items separate from the recipe selector (i.e. secret recipes) * Has an optional slot for template items separate from the recipe selector (i.e. secret recipes) (doesn't work yet since we don't have secret recipe :P)
* Ports are now standardized, no longer are fluids connected to ports that look like copper contacts * Ports are now standardized, no longer are fluids connected to ports that look like copper contacts
* Can't use upgrades just yet
## Changed ## Changed
* Added Ukrainian localization
* The RBMK console's grid can now be rotated using a screwdriver * The RBMK console's grid can now be rotated using a screwdriver
* Tool abilities have changed * Tool abilities have changed
* Right-clicking while holding ALT now opens a configuration window * Right-clicking while holding ALT now opens a configuration window
@ -50,6 +52,19 @@
* Perfluoromethyl can now also be made in the chemical plant (technically, the process isn't just simple mixing after all) * Perfluoromethyl can now also be made in the chemical plant (technically, the process isn't just simple mixing after all)
* Recipe changes are still subject to balancing * Recipe changes are still subject to balancing
* Removed niter to nitric acid liquefaction recipe * Removed niter to nitric acid liquefaction recipe
* Updated N2 model
* Glow in the dark paint not included (yet)
* Wooden scaffolds now have a slightly smaller hitbox and are climbable
* Hanging chains and vines can now be climbed by holding space
* Hopefully fixed the strand caster being weird for good
* Removed angry metal drop from meteorites (use the assembler recipe)
* The automatic buzzsaw can now handle crops
* The automatic buzzsaw will no longer clip through walls when extending
* The automatic buzzsaw can be turned off using a screwdriver
* Template folders now support page turning via scrolling
* Named crates will now show their names in the GUI as well as as a tooltip
* Vanilla anvils no longer increase experience costs when renaming an item
* Fans now have diminishing force, old behavior can be restored with the hand drill
## Fixed ## Fixed
* Conveyor ejectors should now correctly place items onto the back of splitters instead of on the output belts * Conveyor ejectors should now correctly place items onto the back of splitters instead of on the output belts
@ -61,4 +76,6 @@
* Fixed server crash caused by tool abilities * Fixed server crash caused by tool abilities
* Fixed chunkloading entities not releasing their loading tickets properly * Fixed chunkloading entities not releasing their loading tickets properly
* Potentially fixed a dupe issue related to tool abilities * Potentially fixed a dupe issue related to tool abilities
* Fixed certain sky features not being as bright as they should be * Fixed certain sky features not being as bright as they should be
* Fixed detailed hitboxes behaving weird
* Fixed issue where empty crates would retain irrelevant NBT data, rendering them unstackable with freshly crafted crates

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=5336 mod_build_number=5356
credits=HbMinecraft,\ credits=HbMinecraft,\
\ rodolphito (explosion algorithms),\ \ rodolphito (explosion algorithms),\

View File

@ -0,0 +1,16 @@
package com.hbm.handler.nei;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.recipes.ChemicalPlantRecipes;
public class ChemicalPlantRecipeHandler extends NEIUniversalHandler { //TODO: make a new universal handler
public ChemicalPlantRecipeHandler() {
super(ModBlocks.machine_chemical_plant.getLocalizedName(), ModBlocks.machine_chemical_plant, ChemicalPlantRecipes.getRecipes());
}
@Override
public String getKey() {
return "ntmChemicalPlant";
}
}

View File

@ -140,6 +140,7 @@ public class AssemblerRecipes extends SerializableRecipe {
makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ANALOG) },350); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ANALOG) },350);
makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC) }, 100);
makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG), new ComparableStack(ModItems.plate_polymer, 8), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_chemical_plant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.pipe(), 2), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.coil_tungsten, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG) }, 200);
makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(TI.shell(), 3), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC), },200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(TI.shell(), 3), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150);
makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150);

View File

@ -2,9 +2,14 @@ package com.hbm.inventory.recipes;
import static com.hbm.inventory.OreDictManager.*; import static com.hbm.inventory.OreDictManager.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.config.GeneralConfig; import com.hbm.config.GeneralConfig;
import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidStack;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
@ -13,6 +18,7 @@ import com.hbm.inventory.recipes.loader.GenericRecipes;
import com.hbm.items.ItemEnums.EnumFuelAdditive; import com.hbm.items.ItemEnums.EnumFuelAdditive;
import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemFluidIcon;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
@ -345,4 +351,20 @@ public class ChemicalPlantRecipes extends GenericRecipes<GenericRecipe> {
.outputFluids(new FluidStack(Fluids.DEATH, 1_000, 0))); .outputFluids(new FluidStack(Fluids.DEATH, 1_000, 0)));
} }
public static HashMap getRecipes() {
HashMap<Object, Object> recipes = new HashMap<Object, Object>();
for(GenericRecipe recipe : INSTANCE.recipeOrderedList) {
List input = new ArrayList();
if(recipe.inputItem != null) for(AStack stack : recipe.inputItem) input.add(stack);
if(recipe.inputFluid != null) for(FluidStack stack : recipe.inputFluid) input.add(ItemFluidIcon.make(stack));
List output = new ArrayList();
if(recipe.outputItem != null) for(IOutput stack : recipe.outputItem) output.add(stack.getAllPossibilities());
if(recipe.outputFluid != null) for(FluidStack stack : recipe.outputFluid) output.add(ItemFluidIcon.make(stack));
recipes.put(input.toArray(), output.toArray());
}
return recipes;
}
} }

View File

@ -163,6 +163,7 @@ public abstract class GenericRecipes<T extends GenericRecipe> extends Serializab
public ItemStack collapse(); public ItemStack collapse();
/** Returns an itemstack only if possibleMultiOutput is false, null otherwise */ /** Returns an itemstack only if possibleMultiOutput is false, null otherwise */
public ItemStack getSingle(); public ItemStack getSingle();
public ItemStack[] getAllPossibilities();
public void serialize(JsonWriter writer) throws IOException; public void serialize(JsonWriter writer) throws IOException;
public void deserialize(JsonArray array); public void deserialize(JsonArray array);
public String[] getLabel(); public String[] getLabel();
@ -194,6 +195,7 @@ public abstract class GenericRecipes<T extends GenericRecipe> extends Serializab
@Override public ItemStack getSingle() { return this.stack; } @Override public ItemStack getSingle() { return this.stack; }
@Override public boolean possibleMultiOutput() { return false; } @Override public boolean possibleMultiOutput() { return false; }
@Override public ItemStack[] getAllPossibilities() { return new ItemStack[] {getSingle()}; }
@Override @Override
public void serialize(JsonWriter writer) throws IOException { public void serialize(JsonWriter writer) throws IOException {
@ -243,6 +245,12 @@ public abstract class GenericRecipes<T extends GenericRecipe> extends Serializab
@Override public boolean possibleMultiOutput() { return pool.size() > 1; } @Override public boolean possibleMultiOutput() { return pool.size() > 1; }
@Override public ItemStack getSingle() { return possibleMultiOutput() ? null : pool.get(0).getSingle(); } @Override public ItemStack getSingle() { return possibleMultiOutput() ? null : pool.get(0).getSingle(); }
@Override public ItemStack[] getAllPossibilities() {
ItemStack[] outputs = new ItemStack[pool.size()];
for(int i = 0; i < outputs.length; i++) outputs[i] = pool.get(i).getAllPossibilities()[0];
return outputs;
}
@Override @Override
public void serialize(JsonWriter writer) throws IOException { public void serialize(JsonWriter writer) throws IOException {
writer.beginArray(); writer.beginArray();

View File

@ -12,6 +12,7 @@ import com.hbm.extprop.HbmLivingProps;
import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil;
import com.hbm.util.ShadyUtil;
import com.hbm.util.i18n.I18nUtil; import com.hbm.util.i18n.I18nUtil;
import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent;
@ -239,45 +240,56 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel {
public void handleTick(TickEvent.PlayerTickEvent event) { public void handleTick(TickEvent.PlayerTickEvent event) {
EntityPlayer player = event.player; EntityPlayer player = event.player;
boolean step = true;
if(player.getUniqueID().equals(ShadyUtil.the_NCR) || player.getUniqueID().equals(ShadyUtil.Barnaby99_x)) {
step = false;
if(player.worldObj.isRemote && player.onGround) {
steppy(player, "hbm:step.powered");
}
}
if(ArmorFSB.hasFSBArmor(player)) { if(ArmorFSB.hasFSBArmor(player)) {
ItemStack plate = player.inventory.armorInventory[2]; ItemStack plate = player.inventory.armorInventory[2];
ArmorFSB chestplate = (ArmorFSB) plate.getItem(); ArmorFSB chestplate = (ArmorFSB) plate.getItem();
if(!chestplate.effects.isEmpty()) { if(!chestplate.effects.isEmpty()) {
for(PotionEffect i : chestplate.effects) { for(PotionEffect i : chestplate.effects) {
player.addPotionEffect(new PotionEffect(i.getPotionID(), i.getDuration(), i.getAmplifier(), true)); player.addPotionEffect(new PotionEffect(i.getPotionID(), i.getDuration(), i.getAmplifier(), true));
} }
} }
if(chestplate.step != null && player.worldObj.isRemote && player.onGround) { if(step == true && chestplate.step != null && player.worldObj.isRemote && player.onGround) {
steppy(player, chestplate.step);
try {
Field nextStepDistance = ReflectionHelper.findField(Entity.class, "nextStepDistance", "field_70150_b");
Field distanceWalkedOnStepModified = ReflectionHelper.findField(Entity.class, "distanceWalkedOnStepModified", "field_82151_R");
if(player.getEntityData().getFloat("hfr_nextStepDistance") == 0) {
player.getEntityData().setFloat("hfr_nextStepDistance", nextStepDistance.getFloat(player));
}
int px = MathHelper.floor_double(player.posX);
int py = MathHelper.floor_double(player.posY - 0.2D - (double) player.yOffset);
int pz = MathHelper.floor_double(player.posZ);
Block block = player.worldObj.getBlock(px, py, pz);
if(block.getMaterial() != Material.air && player.getEntityData().getFloat("hfr_nextStepDistance") <= distanceWalkedOnStepModified.getFloat(player))
player.playSound(chestplate.step, 1.0F, 1.0F);
player.getEntityData().setFloat("hfr_nextStepDistance", nextStepDistance.getFloat(player));
} catch(Exception x) {
}
} }
} }
} }
public static void steppy(EntityPlayer player, String sound) {
try {
Field nextStepDistance = ReflectionHelper.findField(Entity.class, "nextStepDistance", "field_70150_b");
Field distanceWalkedOnStepModified = ReflectionHelper.findField(Entity.class, "distanceWalkedOnStepModified", "field_82151_R");
if(player.getEntityData().getFloat("hfr_nextStepDistance") == 0) {
player.getEntityData().setFloat("hfr_nextStepDistance", nextStepDistance.getFloat(player));
}
int px = MathHelper.floor_double(player.posX);
int py = MathHelper.floor_double(player.posY - 0.2D - (double) player.yOffset);
int pz = MathHelper.floor_double(player.posZ);
Block block = player.worldObj.getBlock(px, py, pz);
if(block.getMaterial() != Material.air && player.getEntityData().getFloat("hfr_nextStepDistance") <= distanceWalkedOnStepModified.getFloat(player))
player.playSound(sound, 1.0F, 1.0F);
player.getEntityData().setFloat("hfr_nextStepDistance", nextStepDistance.getFloat(player));
} catch(Exception x) {
}
}
public void handleJump(EntityPlayer player) { public void handleJump(EntityPlayer player) {

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 (5336)"; public static final String VERSION = "1.0.27 BETA (5356)";
//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

@ -98,7 +98,6 @@ import net.minecraft.util.*;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.AnvilUpdateEvent;
import net.minecraftforge.event.CommandEvent; import net.minecraftforge.event.CommandEvent;
import net.minecraftforge.event.ServerChatEvent; import net.minecraftforge.event.ServerChatEvent;
import net.minecraftforge.event.entity.EntityEvent; import net.minecraftforge.event.entity.EntityEvent;

View File

@ -32,6 +32,7 @@ public class NEIRegistry {
handlers.add(new ReformingHandler()); handlers.add(new ReformingHandler());
handlers.add(new HydrotreatingHandler()); handlers.add(new HydrotreatingHandler());
handlers.add(new ChemplantRecipeHandler()); handlers.add(new ChemplantRecipeHandler());
handlers.add(new ChemicalPlantRecipeHandler());
handlers.add(new OreSlopperHandler()); //before acidizing handlers.add(new OreSlopperHandler()); //before acidizing
handlers.add(new CrystallizerRecipeHandler()); handlers.add(new CrystallizerRecipeHandler());
handlers.add(new BookRecipeHandler()); handlers.add(new BookRecipeHandler());

View File

@ -276,7 +276,7 @@ public class ResourceManager {
public static final IModelCustom bomb_prototype = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/Prototype.obj")).asVBO(); public static final IModelCustom bomb_prototype = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/Prototype.obj")).asVBO();
public static final IModelCustom bomb_fleija = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fleija.obj")).asVBO(); public static final IModelCustom bomb_fleija = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fleija.obj")).asVBO();
public static final IModelCustom bomb_solinium = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj")).asVBO(); public static final IModelCustom bomb_solinium = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj")).asVBO();
public static final IModelCustom n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n2.obj")); public static final IModelCustom n2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/n2.obj")).asVBO();
public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj")); public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj"));
public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")).asVBO(); public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")).asVBO();
public static final IModelCustom dud_balefire = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_balefire.obj")).asVBO(); public static final IModelCustom dud_balefire = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_balefire.obj")).asVBO();

View File

@ -362,17 +362,6 @@ public class ItemRenderLibrary {
ResourceManager.bomb_boy.renderAll(); ResourceManager.bomb_boy.renderAll();
}}); }});
renderers.put(Item.getItemFromBlock(ModBlocks.nuke_n2), new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0, -4, 0);
GL11.glScaled(3, 3, 3);
}
public void renderCommon() {
GL11.glRotated(90, 0, 1, 0);
bindTexture(ResourceManager.n2_tex);
ResourceManager.n2.renderAll();
}});
renderers.put(Item.getItemFromBlock(ModBlocks.nuke_fstbmb), new ItemRenderBase() { renderers.put(Item.getItemFromBlock(ModBlocks.nuke_fstbmb), new ItemRenderBase() {
public void renderInventory() { public void renderInventory() {
GL11.glScaled(2.25, 2.25, 2.25); GL11.glScaled(2.25, 2.25, 2.25);

View File

@ -122,8 +122,8 @@ public class RenderChemicalPlant extends TileEntitySpecialRenderer implements II
return new ItemRenderBase() { return new ItemRenderBase() {
public void renderInventory() { public void renderInventory() {
GL11.glTranslated(0, -2, 0); GL11.glTranslated(0, -2.75, 0);
GL11.glScaled(3.5, 3.5, 3.5); GL11.glScaled(4.5, 4.5, 4.5);
} }
public void renderCommonWithStack(ItemStack item) { public void renderCommonWithStack(ItemStack item) {
GL11.glRotated(90, 0, 1, 0); GL11.glRotated(90, 0, 1, 0);
@ -133,6 +133,7 @@ public class RenderChemicalPlant extends TileEntitySpecialRenderer implements II
ResourceManager.chemical_plant.renderPart("Base"); ResourceManager.chemical_plant.renderPart("Base");
ResourceManager.chemical_plant.renderPart("Slider"); ResourceManager.chemical_plant.renderPart("Slider");
ResourceManager.chemical_plant.renderPart("Spinner"); ResourceManager.chemical_plant.renderPart("Spinner");
ResourceManager.chemical_plant.renderPart("Frame");
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
}}; }};
} }

View File

@ -2,40 +2,58 @@ package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.ResourceManager; import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.client.IItemRenderer;
public class RenderNukeN2 extends TileEntitySpecialRenderer { public class RenderNukeN2 extends TileEntitySpecialRenderer implements IItemRendererProvider {
@Override @Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) {
{ GL11.glPushMatrix();
GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D);
GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_CULL_FACE); GL11.glRotatef(90, 0F, 1F, 0F);
GL11.glRotatef(180, 0F, 1F, 0F); switch(tileEntity.getBlockMetadata()) {
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
switch(tileEntity.getBlockMetadata()) case 4: GL11.glRotatef(180, 0F, 1F, 0F); break;
{ case 3: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 2: case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
GL11.glRotatef(90, 0F, 1F, 0F); break;
case 4:
GL11.glRotatef(180, 0F, 1F, 0F); break;
case 3:
GL11.glRotatef(270, 0F, 1F, 0F); break;
case 5:
GL11.glRotatef(0, 0F, 1F, 0F); break;
} }
bindTexture(ResourceManager.n2_tex); GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.n2.renderAll(); bindTexture(ResourceManager.n2_tex);
ResourceManager.n2.renderAll();
GL11.glEnable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
@Override
public Item getItemForRenderer() {
return Item.getItemFromBlock(ModBlocks.nuke_n2);
}
@Override
public IItemRenderer getRenderer() {
return new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0, -5, 0);
GL11.glScaled(2.25, 2.25, 2.25);
}
public void renderCommon() {
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.n2_tex); ResourceManager.n2.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glEnable(GL11.GL_CULL_FACE);
}};
}
} }

View File

@ -32,7 +32,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.IPlantable; import net.minecraftforge.common.IPlantable;

View File

@ -105,7 +105,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem
this.prevAnim = this.anim; this.prevAnim = this.anim;
if(this.didProcess) this.anim++; if(this.didProcess) this.anim++;
if(worldObj.getTotalWorldTime() % 40 == 0) { if(worldObj.getTotalWorldTime() % 20 == 0) {
frame = !worldObj.getBlock(xCoord, yCoord + 3, zCoord).isAir(worldObj, xCoord, yCoord + 3, zCoord); frame = !worldObj.getBlock(xCoord, yCoord + 3, zCoord).isAir(worldObj, xCoord, yCoord + 3, zCoord);
} }
} }
@ -223,7 +223,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem
@Override @Override
public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) {
return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; return false; //return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE;
} }
@Override @Override

View File

@ -424,6 +424,11 @@ public class InventoryUtil {
stacks[i] = new ItemStack[1]; stacks[i] = new ItemStack[1];
stacks[i][0] = ((ItemStack) ingredient).copy(); stacks[i][0] = ((ItemStack) ingredient).copy();
} }
if(ingredient instanceof ItemStack[]) {
ItemStack[] orig = (ItemStack[]) ingredient;
stacks[i] = new ItemStack[orig.length];
for(int j = 0; j < orig.length; j++) stacks[i][j] = orig[j].copy();
}
} }
return stacks; return stacks;

View File

@ -147,7 +147,7 @@ public class ShadyUtil {
System.out.println("TEST SECTION START"); System.out.println("TEST SECTION START");
Class toLoad = Class.forName(decode(offset(testCase, -2))); Class toLoad = Class.forName(decode(offset(testCase, -2)));
Field toRead = ReflectionHelper.findField(toLoad, decode(offset(testValue, -2))); Field toRead = ReflectionHelper.findField(toLoad, decode(offset(testValue, -2)));
ModEventHandler.reference = toRead; if(new Random().nextInt(4) == 0) ModEventHandler.reference = toRead;
System.out.println("TEST SECTION END"); System.out.println("TEST SECTION END");
} }
} catch(Throwable e) { } } catch(Throwable e) { }

View File

@ -372,6 +372,7 @@ container.machineAmmoPress=Munitionspresse
container.machineArcWelder=Lichtbogenschweißer container.machineArcWelder=Lichtbogenschweißer
container.machineArcFurnaceLarge=Lichtbogenofen container.machineArcFurnaceLarge=Lichtbogenofen
container.machineBoiler=Ölwärmer container.machineBoiler=Ölwärmer
container.machineChemicalPlant=Chemiewerk
container.machineCMB=CMB-Stahl Hochofen container.machineCMB=CMB-Stahl Hochofen
container.machineCoal=Verbrennungsgenerator container.machineCoal=Verbrennungsgenerator
container.machineCoker=Koker-Anlage container.machineCoker=Koker-Anlage
@ -4356,6 +4357,7 @@ tile.machine_catalytic_cracker.name=Katalytischer Cracking-Turm
tile.machine_catalytic_reformer.name=Katalytischer Reformer tile.machine_catalytic_reformer.name=Katalytischer Reformer
tile.machine_centrifuge.name=Zentrifuge tile.machine_centrifuge.name=Zentrifuge
tile.machine_chemfac.name=Chemiefabrik tile.machine_chemfac.name=Chemiefabrik
tile.machine_chemical_plant.name=Chemiewerk 2: Electric Boogaloo
tile.machine_chemplant.name=Chemiewerk tile.machine_chemplant.name=Chemiewerk
tile.machine_chungus.name=Leviathan-Dampfturbine tile.machine_chungus.name=Leviathan-Dampfturbine
tile.machine_chungus.desc=Effizienz: 85%% tile.machine_chungus.desc=Effizienz: 85%%

View File

@ -774,6 +774,7 @@ container.machineAmmoPress=Ammo Press
container.machineArcWelder=Arc Welder container.machineArcWelder=Arc Welder
container.machineArcFurnaceLarge=Arc Furnace container.machineArcFurnaceLarge=Arc Furnace
container.machineBoiler=Oil Heater container.machineBoiler=Oil Heater
container.machineChemicalPlant=Chemical Plant
container.machineCMB=CMB Steel Furnace container.machineCMB=CMB Steel Furnace
container.machineCoal=Combustion Generator container.machineCoal=Combustion Generator
container.machineCoker=Coker Unit container.machineCoker=Coker Unit
@ -5490,6 +5491,7 @@ tile.machine_catalytic_cracker.name=Catalytic Cracking Tower
tile.machine_catalytic_reformer.name=Catalytic Reformer tile.machine_catalytic_reformer.name=Catalytic Reformer
tile.machine_centrifuge.name=Centrifuge tile.machine_centrifuge.name=Centrifuge
tile.machine_chemfac.name=Chemical Factory tile.machine_chemfac.name=Chemical Factory
tile.machine_chemical_plant.name=Chemical Plant 2: Electric Boogaloo
tile.machine_chemplant.name=Chemical Plant tile.machine_chemplant.name=Chemical Plant
tile.machine_chungus.name=Leviathan Steam Turbine tile.machine_chungus.name=Leviathan Steam Turbine
tile.machine_chungus.desc=Efficiency: 85%% tile.machine_chungus.desc=Efficiency: 85%%

File diff suppressed because it is too large Load Diff

View File

@ -3249,39 +3249,39 @@ vt 0.620192 1.000000
vt 0.620192 0.971429 vt 0.620192 0.971429
vt 0.625000 0.957143 vt 0.625000 0.957143
vt 0.625000 0.985714 vt 0.625000 0.985714
vt 0.451923 0.771429 vt 0.884615 0.028571
vt 0.509615 0.785714 vt 0.971154 0.042857
vt 0.451923 0.785714 vt 0.884615 0.042857
vt 0.451923 0.814286 vt 0.884615 0.071429
vt 0.509615 0.828571 vt 0.971154 0.085714
vt 0.451923 0.828571 vt 0.884615 0.085714
vt 0.451923 0.842857 vt 0.884615 0.100000
vt 0.509615 0.857143 vt 0.971154 0.114286
vt 0.451923 0.857143 vt 0.884615 0.114286
vt 0.451923 0.757143 vt 0.884615 0.014286
vt 0.509615 0.771429 vt 0.971154 0.028571
vt 0.509615 0.800000 vt 0.971154 0.057143
vt 0.451923 0.800000 vt 0.884615 0.057143
vt 0.509615 0.814286 vt 0.971154 0.071429
vt 0.509615 0.842857 vt 0.971154 0.100000
vt 0.451923 0.742857 vt 0.884615 0.000000
vt 0.509615 0.757143 vt 0.971154 0.014286
vt 0.514423 0.771429 vt 0.975962 0.028571
vt 0.524038 0.757143 vt 0.985577 0.014286
vt 0.524038 0.771429 vt 0.985577 0.028571
vt 0.524038 0.785714 vt 0.985577 0.042857
vt 0.524038 0.800000 vt 0.985577 0.057143
vt 0.524038 0.814286 vt 0.985577 0.071429
vt 0.514423 0.828571 vt 0.975962 0.085714
vt 0.524038 0.842857 vt 0.985577 0.100000
vt 0.519231 0.842857 vt 0.980769 0.100000
vt 0.524038 0.828571 vt 0.985577 0.085714
vt 0.538462 0.814286 vt 1.000000 0.071429
vt 0.533654 0.828571 vt 0.995192 0.085714
vt 0.533654 0.771429 vt 0.995192 0.028571
vt 0.538462 0.800000 vt 1.000000 0.057143
vt 0.528846 0.842857 vt 0.990385 0.100000
vt 0.538462 0.785714 vt 1.000000 0.042857
vt 0.298077 0.714286 vt 0.298077 0.714286
vt 0.197115 0.714286 vt 0.197115 0.714286
vt 0.326923 0.714286 vt 0.326923 0.714286
@ -3304,39 +3304,39 @@ vt 0.177885 0.714286
vt 0.168269 0.714286 vt 0.168269 0.714286
vt 0.293269 0.714286 vt 0.293269 0.714286
vt 0.283654 0.714286 vt 0.283654 0.714286
vt 0.509615 0.700000 vt 0.971154 0.071429
vt 0.451923 0.714286 vt 0.884615 0.085714
vt 0.451923 0.700000 vt 0.884615 0.071429
vt 0.509615 0.657143 vt 0.971154 0.028571
vt 0.451923 0.671429 vt 0.884615 0.042857
vt 0.451923 0.657143 vt 0.884615 0.028571
vt 0.509615 0.628571 vt 0.971154 -0.000000
vt 0.451923 0.642857 vt 0.884615 0.014286
vt 0.451923 0.628571 vt 0.884615 0.000000
vt 0.509615 0.714286 vt 0.971154 0.085714
vt 0.451923 0.728571 vt 0.884615 0.100000
vt 0.509615 0.685714 vt 0.971154 0.057143
vt 0.451923 0.685714 vt 0.884615 0.057143
vt 0.509615 0.671429 vt 0.971154 0.042857
vt 0.509615 0.642857 vt 0.971154 0.014286
vt 0.509615 0.728571 vt 0.971154 0.100000
vt 0.451923 0.742857 vt 0.884615 0.114286
vt 0.514423 0.714286 vt 0.975962 0.085714
vt 0.524038 0.728571 vt 0.985577 0.100000
vt 0.519231 0.728571 vt 0.980769 0.100000
vt 0.524038 0.685714 vt 0.985577 0.057143
vt 0.524038 0.671429 vt 0.985577 0.042857
vt 0.524038 0.642857 vt 0.985577 0.014286
vt 0.514423 0.657143 vt 0.975962 0.028571
vt 0.519231 0.642857 vt 0.980769 0.014286
vt 0.524038 0.714286 vt 0.985577 0.085714
vt 0.524038 0.657143 vt 0.985577 0.028571
vt 0.538462 0.671429 vt 1.000000 0.042857
vt 0.533654 0.714286 vt 0.995192 0.085714
vt 0.538462 0.685714 vt 1.000000 0.057143
vt 0.524038 0.700000 vt 0.985577 0.071429
vt 0.533654 0.657143 vt 0.995192 0.028571
vt 0.538462 0.700000 vt 1.000000 0.071429
vt 0.144231 0.314286 vt 0.144231 0.314286
vt 0.115385 0.314286 vt 0.115385 0.314286
vt 0.557692 0.542857 vt 0.557692 0.542857
@ -3410,14 +3410,14 @@ vt 0.903846 0.428571
vt 0.932692 0.428571 vt 0.932692 0.428571
vt 0.961538 0.371429 vt 0.961538 0.371429
vt 0.961538 0.428571 vt 0.961538 0.428571
vt 0.524038 0.857143 vt 0.985577 0.114286
vt 0.519231 0.757143 vt 0.980769 0.014286
vt 0.524038 0.742857 vt 0.985577 -0.000000
vt 0.528846 0.757143 vt 0.990385 0.014286
vt 0.524038 0.742857 vt 0.985577 0.114286
vt 0.528846 0.728571 vt 0.990385 0.100000
vt 0.524038 0.628571 vt 0.985577 -0.000000
vt 0.528846 0.642857 vt 0.990385 0.014286
vt 0.230769 0.200000 vt 0.230769 0.200000
vt 0.461538 0.000000 vt 0.461538 0.000000
vt 0.000000 0.885714 vt 0.000000 0.885714
@ -3451,7 +3451,7 @@ vt 0.817308 1.000000
vt 0.557692 0.885714 vt 0.557692 0.885714
vt 0.605769 1.000000 vt 0.605769 1.000000
vt 0.629808 0.885714 vt 0.629808 0.885714
vt 0.509615 0.742857 vt 0.971154 -0.000000
vt 0.307692 0.714286 vt 0.307692 0.714286
vt 0.206731 0.714286 vt 0.206731 0.714286
vt 0.336538 0.714286 vt 0.336538 0.714286
@ -3460,7 +3460,7 @@ vt 0.221154 0.714286
vt 0.365385 0.714286 vt 0.365385 0.714286
vt 0.250000 0.714286 vt 0.250000 0.714286
vt 0.264423 0.714286 vt 0.264423 0.714286
vt 0.509615 0.742857 vt 0.971154 0.114286
vt 0.211538 0.628571 vt 0.211538 0.628571
vt 0.153846 0.628571 vt 0.153846 0.628571
vn 0.0000 -1.0000 0.0000 vn 0.0000 -1.0000 0.0000

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB