and some more fixes

This commit is contained in:
Bob 2023-12-25 00:08:26 +01:00
parent be2c17f102
commit ca1cd3db17
29 changed files with 71 additions and 40 deletions

View File

@ -1,9 +1,21 @@
## Added
* ???
## Changed
* Adjusted the model for the mining helmet
* The ladders on the acidizer and fluid tanks are now climbable
* Removed those unused blue dungeon bricks
* Red phosphorus is no longer pyrophoric, meaning that multi purpose bomb kits no longer instantly explode
* Adjusted M2's rotations
## Fixed
* Fixed recipe conflict in the arc welder with the medium and large missile fuel tanks
* Fixed recipe conflict in the arc welder with the medium and large missile fuel tanks
* Fixed doomsday missile not being launchable
* Fixed rocket artillery turret power connectors not working with cables
* Fixed arc welder energy consumption check not taking upgrades into account
* Fixed glyphid gland and 16k item barrels not having a proper container item set, effectively voiding the emtpy container when used in crafting
* Fixed confusing item quantity display in the exposure chamber's NEI handler
* Fixed pheromone being tagged as viscous and therefore not being dispersable, making modified pheromone useless
* Fixed mobs not being able to pathfind through open doors
* Fixed the benelli ejecting the casings wrong
* Fixed casing ejection in general being inconsistent, sometimes flying off into the wrong direction

View File

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

View File

@ -91,6 +91,11 @@ public class BlockDoorGeneric extends BlockDummyable {
// return;
//super.addCollisionBoxesToList(worldIn, x, y, z, entityBox, collidingBoxes, entityIn);
}
@Override //should fix AI pathfinding
public boolean getBlocksMovement(IBlockAccess world, int x, int y, int z) { //btw the method name is the exact opposite of that it's doing, check net.minecraft.pathfinding.PathNavigate#512
return hasExtra(world.getBlockMetadata(x, y, z)); //if it's open
}
@Override
public void onNeighborBlockChange(World world, int x, int y, int z, Block blockIn){

View File

@ -127,20 +127,17 @@ public class CasingEjector implements Cloneable {
}
private static Vec3 rotateVector(Vec3 vector, float pitch, float yaw, float pitchFactor, float yawFactor) {
// Apply randomness to vector
vector.xCoord += rand.nextGaussian() * yawFactor;
vector.yCoord += rand.nextGaussian() * pitchFactor;
vector.zCoord += rand.nextGaussian() * yawFactor;
final Matrix4f pitchMatrix = new Matrix4f(), yawMatrix = new Matrix4f();
pitchMatrix.setIdentity();
pitchMatrix.rotate(-pitch, new Vector3f(1, 0, 0));
pitchMatrix.rotate(pitch, new Vector3f(1, 0, 0));
yawMatrix.setIdentity();
yawMatrix.rotate(-yaw, new Vector3f(0, 1, 0));
final Vector4f vector4f = new Vector4f((float) vector.xCoord, (float) vector.yCoord, (float) vector.zCoord, 1);
// Apply randomness to vector
final Vector4f vector4f = new Vector4f((float) (vector.xCoord + rand.nextGaussian() * yawFactor), (float) (vector.yCoord + rand.nextGaussian() * pitchFactor), (float) (vector.zCoord + rand.nextGaussian() * yawFactor), 1);
Matrix4f.transform(pitchMatrix, vector4f, vector4f);
Matrix4f.transform(yawMatrix, vector4f, vector4f);

View File

@ -39,7 +39,7 @@ public class Gun12GaugeFactory {
static {
EJECTOR_SPAS = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, 0, 0.5).setAngleRange(0.01F, 0.03F).setDelay(12);
EJECTOR_SPAS_ALT = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, 0, 0.5).setAngleRange(0.01F, 0.03F).setDelay(12).setAmount(2);
EJECTOR_BENELLI = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.3, 1, 0).setAngleRange(0.01F, 0.03F);
EJECTOR_BENELLI = new CasingEjector().setMotion(-0.4, 0.3, 0).setOffset(-0.3, 0, 0.5).setAngleRange(0.01F, 0.03F);
EJECTOR_UBOINIK = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, -0.3, 0.5).setAngleRange(0.01F, 0.03F);
EJECTOR_SSG = new CasingEjector().setMotion(0.2, 0, -0.2).setOffset(0.8, 0, 0).setAngleRange(0.05F, 0.02F).setDelay(20).setAmount(2);

View File

@ -422,7 +422,7 @@ public class OreDictManager {
* PHOSPHORUS
*/
P_WHITE .hot(5) .ingot(ingot_phosphorus) .block(block_white_phosphorus);
P_RED .hot(2) .dust(powder_fire) .block(block_red_phosphorus);
P_RED .dust(powder_fire) .block(block_red_phosphorus);
/*
* RARE METALS

View File

@ -331,9 +331,9 @@ public class Fluids {
THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65));
THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65));
THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65));
FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65));
PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(1));
PHEROMONE_M = new FluidType(132, "PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, new FT_Pheromone(2));
FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65));
PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(1));
PHEROMONE_M = new FluidType(132, "PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2));
// ^ ^ ^ ^ ^ ^ ^ ^
//ADD NEW FLUIDS HERE

View File

@ -46,8 +46,10 @@ public class ExposureChamberRecipes extends SerializableRecipe {
AStack stack = recipe.ingredient.copy();
stack.stacksize = 8;
array[0] = stack;
ItemStack output = recipe.output.copy();
output.stackSize = 8;
recipes.put(array, recipe.output);
recipes.put(array, output);
}
return recipes;

View File

@ -4647,15 +4647,15 @@ public class ModItems {
fluid_tank_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_full").setContainerItem(ModItems.fluid_tank_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank");
fluid_tank_lead_empty = new Item().setUnlocalizedName("fluid_tank_lead_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead");
fluid_tank_lead_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_lead_full").setContainerItem(ModItems.fluid_tank_lead_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead");
fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel");
fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel");
fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel");
fluid_barrel_infinite = new ItemInfiniteFluid(null, 1_000_000_000).setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite");
disperser_canister_empty = new Item().setUnlocalizedName("disperser_canister_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister");
disperser_canister = new ItemDisperser().setUnlocalizedName("disperser_canister").setContainerItem(ModItems.disperser_canister_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister");
glyphid_gland = new ItemDisperser().setUnlocalizedName("glyphid_gland").setContainerItem(ModItems.glyphid_gland_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland");
glyphid_gland_empty = new Item().setUnlocalizedName("glyphid_gland_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland");
glyphid_gland = new ItemDisperser().setUnlocalizedName("glyphid_gland").setContainerItem(ModItems.glyphid_gland_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland");
siren_track = new ItemCassette().setUnlocalizedName("siren_track").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":cassette");
fluid_duct = new ItemFluidDuct().setUnlocalizedName("fluid_duct").setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":duct");

View File

@ -27,16 +27,16 @@ public class ItemPollutionDetector extends Item {
float soot = data.pollution[PollutionType.SOOT.ordinal()];
float poison = data.pollution[PollutionType.POISON.ordinal()];
float heavymetal = data.pollution[PollutionType.HEAVYMETAL.ordinal()];
float fallout = data.pollution[PollutionType.FALLOUT.ordinal()];
//float fallout = data.pollution[PollutionType.FALLOUT.ordinal()];
soot = ((int) (soot * 100)) / 100F;
poison = ((int) (poison * 100)) / 100F;
heavymetal = ((int) (heavymetal * 100)) / 100F;
fallout = ((int) (fallout * 100)) / 100F;
//fallout = ((int) (fallout * 100)) / 100F;
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 4000), (EntityPlayerMP) entity);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 4000), (EntityPlayerMP) entity);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 4000), (EntityPlayerMP) entity);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 4000), (EntityPlayerMP) entity);
//PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 4000), (EntityPlayerMP) entity);
}
}

View File

@ -741,6 +741,16 @@ public class HbmWorldGen implements IWorldGenerator {
}
}
}
if(rand.nextInt(4) == 0) {
int x = i + rand.nextInt(16) + 8;
int y = 6 + rand.nextInt(13);
int z = j + rand.nextInt(16) + 8;
if(world.getBlock(x, y, z).isReplaceableOreGen(world, x, y, z, Blocks.stone)) {
world.setBlock(x, y, z, ModBlocks.stone_keyhole);
}
}
}

View File

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

View File

@ -30,11 +30,11 @@ public class ItemRenderM2 extends ItemRenderBase {
GL11.glRotatef(30, 1, 0, 0);
break;
case EQUIPPED_FIRST_PERSON:
GL11.glRotatef(-90, 0, 1, 0);
if (Minecraft.getMinecraft().thePlayer.isSneaking()) {
GL11.glRotatef(-90, 0, 1, 0);
GL11.glTranslatef(-0.96f, -0.9f, -2);
GL11.glRotatef(-5.6f, 0, 1, 1);
GL11.glRotatef(-5.75f, 0, 1, 1);// Just of by 0.15
/* vvv remove to restore original look vvv */
GL11.glRotatef(1.9F, 0, 0, 1);
@ -44,6 +44,7 @@ public class ItemRenderM2 extends ItemRenderBase {
GL11.glTranslatef(0, 1.15F, -1.75F);
} else {
GL11.glRotatef(-95, 0, 1, 0);
GL11.glTranslatef(0, -1, -3);
}
GL11.glRotatef(25, 1, 0, 0);

View File

@ -10,6 +10,7 @@ import com.hbm.config.GeneralConfig;
import com.hbm.entity.missile.EntityCarrier;
import com.hbm.entity.missile.EntityMissileAntiBallistic;
import com.hbm.entity.missile.EntityMissileBaseNT;
import com.hbm.entity.missile.EntityMissileDoomsday;
import com.hbm.entity.missile.EntityMissileShuttle;
import com.hbm.entity.missile.EntityMissileTier0.*;
import com.hbm.entity.missile.EntityMissileTier1.*;
@ -87,6 +88,8 @@ public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnerg
missiles.put(new ComparableStack(ModItems.missile_nuclear), EntityMissileNuclear.class);
missiles.put(new ComparableStack(ModItems.missile_nuclear_cluster), EntityMissileMirv.class);
missiles.put(new ComparableStack(ModItems.missile_volcano), EntityMissileVolcano.class);
missiles.put(new ComparableStack(ModItems.missile_doomsday), EntityMissileDoomsday.class);
}
public ItemStack toRender;

View File

@ -142,7 +142,7 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements
public boolean canProcess(ArcWelderRecipe recipe) {
if(this.power < recipe.consumption) return false;
if(this.power < this.consumption) return false;
if(recipe.fluid != null) {
if(this.tank.getTankType() != recipe.fluid.type) return false;

View File

@ -3,7 +3,6 @@ package com.hbm.tileentity.turret;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.entity.projectile.EntityArtilleryShell;
import com.hbm.handler.CasingEjector;
import com.hbm.inventory.container.ContainerTurretBase;
@ -27,7 +26,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implements IGUIProvider {
@ -221,20 +219,6 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen
return 7;
}
protected void updateConnections() {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite();
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 4; j++) {
this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * -3, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * -3, ForgeDirection.SOUTH);
this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * 2, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * 2, ForgeDirection.NORTH);
this.trySubscribe(worldObj, xCoord + dir.offsetX * -2 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * -2 + rot.offsetZ * (1 - j), ForgeDirection.EAST);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 3 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * 3 + rot.offsetZ * (1 - j), ForgeDirection.WEST);
}
}
}
@Override
public void updateEntity() {

View File

@ -3,10 +3,12 @@ package com.hbm.tileentity.turret;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.tileentity.IRadarCommandReceiver;
import net.minecraft.entity.Entity;
import net.minecraft.util.Vec3;
import net.minecraftforge.common.util.ForgeDirection;
public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBaseNT implements IRadarCommandReceiver {
@ -52,4 +54,19 @@ public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBase
return height < (e.posY + e.height);
}
}
@Override
protected void updateConnections() {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite();
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 4; j++) {
this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * -3, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * -3, ForgeDirection.SOUTH);
this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * 2, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * 2, ForgeDirection.NORTH);
this.trySubscribe(worldObj, xCoord + dir.offsetX * -2 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * -2 + rot.offsetZ * (1 - j), ForgeDirection.EAST);
this.trySubscribe(worldObj, xCoord + dir.offsetX * 3 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * 3 + rot.offsetZ * (1 - j), ForgeDirection.WEST);
}
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

After

Width:  |  Height:  |  Size: 549 B