do the yoinky sploinky
40
changelog
@ -1,40 +1,10 @@
|
|||||||
## The performance update
|
|
||||||
* my boy gammawave basically did the entire thing
|
|
||||||
* packet sending should be more performant now, which affects most machines
|
|
||||||
* RBMKs are now *much* more performant with their simulation and packets
|
|
||||||
|
|
||||||
## Added
|
## Added
|
||||||
* 10 gauge slug
|
* Phosphor vines
|
||||||
* Shredder
|
|
||||||
* A b-side for the autoshotgun
|
|
||||||
* Fires 12 gauge, accelerated by plasma, which bursts on impact
|
|
||||||
* Fragments move slowly and have damaging ricochet effects
|
|
||||||
* Fragments keep the effects of the original shell (e.g. explosive shell will spawn a single explosive fragment)
|
|
||||||
* Other gun stuff
|
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
* Black powder bullets now have 75% base damage instead of 50%
|
* Raw bedrock ore taken out of the creative tab now has the stats of the position the player is in, instead of being worthless
|
||||||
* Ball and powder type rounds no longer have a bonus on headshot
|
* U233's color coded isotope indicator is now yellow instead of orange, making yellow standard code for "secondary fissile isotope" and orange for "radioisotope"
|
||||||
* Shot and powder now does way less damage
|
|
||||||
* Some secret ammo types are now craftable
|
|
||||||
* Updated the assault rifle's texture
|
|
||||||
* Shooting at old CRT screens now breaks them
|
|
||||||
* Leviathan turbines now have a tooltip showing their buffers
|
|
||||||
* Fullerene now only uses visible light instead of UV to make, meaning fullerite can be obtained without a fusion or watz reactor (still requiring vacuum oil though)
|
|
||||||
* Crumb yields from bedrock ore processing has been heavily decreased, all recipes that yield crumbs produce no more than one pile
|
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
* Fixed `ITEM_TOOLTIP_SHOW_CUSTOM_NUKE` client config overriding `ITEM_TOOLTIP_SHOW_OREDICT` due to name overlap
|
* Fixed raw bedrock ore tooltip not showing the density's color correctly
|
||||||
* Fixed certain secret weapon creation condition not working properly
|
* Fixed T45 helmet not protecting against carbon monoxide
|
||||||
* Fixed artillery rockets getting stuck in the air when their target is not set to a block
|
|
||||||
* Fixed potential issue of ABMs getting stuck mid-flight when their target is destroyed prematurely
|
|
||||||
* Fixed mistakes in the fragment names for de_DE
|
|
||||||
* Fixed nitra rocket duplication only yielding one rocket
|
|
||||||
* Fixed rotary furnace not always properly showing the metal pouring effect
|
|
||||||
* Fixed T45 model not lifting its arms when a new gun is held
|
|
||||||
* Like previously, due to the archaic nature of the model, the rotations are not very precise, and will most likely break when holding an akimbo gun
|
|
||||||
* Potentially fixed an issue where cargo planes do not successfully spawn on lower render distances
|
|
||||||
* Fixed glyphids not calling their `onDeath` function properly, causing them to not drop anything and preventing the appropriate forge events from firing
|
|
||||||
* Fixed GL state leak caused by plasma blast particles, causing other particles (especially bones) to render weird
|
|
||||||
* Fixed night vision goggles being constantly disabled due to m1tty's night vision removal out of water
|
|
||||||
* Fixed armor on test dummies entering the sneaked state in third person view when the player sneaks
|
|
||||||
@ -27,9 +27,7 @@ import com.hbm.tileentity.machine.storage.TileEntityFileCabinet;
|
|||||||
import cpw.mods.fml.common.registry.GameRegistry;
|
import cpw.mods.fml.common.registry.GameRegistry;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockFalling;
|
import net.minecraft.block.BlockFalling;
|
||||||
import net.minecraft.block.material.MapColor;
|
import net.minecraft.block.material.*;
|
||||||
import net.minecraft.block.material.Material;
|
|
||||||
import net.minecraft.block.material.MaterialLiquid;
|
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemBlock;
|
import net.minecraft.item.ItemBlock;
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
package com.hbm.blocks.generic;
|
package com.hbm.blocks.generic;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
import com.hbm.lib.RefStrings;
|
import com.hbm.lib.RefStrings;
|
||||||
|
|
||||||
@ -13,8 +12,6 @@ import net.minecraft.block.material.Material;
|
|||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.init.Items;
|
|
||||||
import net.minecraft.item.Item;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.util.IIcon;
|
import net.minecraft.util.IIcon;
|
||||||
@ -31,8 +28,10 @@ public class BlockHangingVine extends Block implements IShearable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
|
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
|
||||||
if(world.getBlock(x, y - 1, z).isSideSolid(world, x, y - 1, z, ForgeDirection.UP))
|
entity.motionX *= 0.5;
|
||||||
entity.setInWeb();
|
entity.motionY *= 0.5;
|
||||||
|
entity.motionZ *= 0.5;
|
||||||
|
entity.fallDistance = 0F;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -87,6 +86,7 @@ public class BlockHangingVine extends Block implements IShearable {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT) public IIcon iconItem;
|
||||||
@SideOnly(Side.CLIENT) public IIcon iconGround; //when touching a solid face below
|
@SideOnly(Side.CLIENT) public IIcon iconGround; //when touching a solid face below
|
||||||
@SideOnly(Side.CLIENT) public IIcon iconHang; //when hanging mid-air
|
@SideOnly(Side.CLIENT) public IIcon iconHang; //when hanging mid-air
|
||||||
@SideOnly(Side.CLIENT) public IIcon iconGlow; //regular phosphor
|
@SideOnly(Side.CLIENT) public IIcon iconGlow; //regular phosphor
|
||||||
@ -94,6 +94,7 @@ public class BlockHangingVine extends Block implements IShearable {
|
|||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public void registerBlockIcons(IIconRegister reg) {
|
public void registerBlockIcons(IIconRegister reg) {
|
||||||
|
this.iconItem = reg.registerIcon(RefStrings.MODID + ":vine_phosphor_item");
|
||||||
this.blockIcon = reg.registerIcon(RefStrings.MODID + ":vine_phosphor");
|
this.blockIcon = reg.registerIcon(RefStrings.MODID + ":vine_phosphor");
|
||||||
this.iconGround = reg.registerIcon(RefStrings.MODID + ":vine_phosphor_ground");
|
this.iconGround = reg.registerIcon(RefStrings.MODID + ":vine_phosphor_ground");
|
||||||
this.iconHang = reg.registerIcon(RefStrings.MODID + ":vine_phosphor_hang");
|
this.iconHang = reg.registerIcon(RefStrings.MODID + ":vine_phosphor_hang");
|
||||||
@ -111,6 +112,12 @@ public class BlockHangingVine extends Block implements IShearable {
|
|||||||
return b.isAir(world, x, y, z) ? iconHangGlow : iconGlow;
|
return b.isAir(world, x, y, z) ? iconHangGlow : iconGlow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public IIcon getIcon(int side, int meta) {
|
||||||
|
return this.iconItem;
|
||||||
|
}
|
||||||
|
|
||||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -5,7 +5,11 @@ import java.util.Random;
|
|||||||
|
|
||||||
import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType;
|
import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType;
|
||||||
import com.hbm.items.tool.ItemOreDensityScanner;
|
import com.hbm.items.tool.ItemOreDensityScanner;
|
||||||
|
import com.hbm.main.MainRegistry;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
@ -17,6 +21,15 @@ import net.minecraft.world.gen.NoiseGeneratorPerlin;
|
|||||||
|
|
||||||
public class ItemBedrockOreBase extends Item {
|
public class ItemBedrockOreBase extends Item {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void getSubItems(Item item, CreativeTabs tab, List list) {
|
||||||
|
ItemStack ore = new ItemStack(item);
|
||||||
|
EntityPlayer player = MainRegistry.proxy.me();
|
||||||
|
if(player != null) setOreAmount(ore, (int) Math.floor(player.posX), (int) Math.floor(player.posZ));
|
||||||
|
list.add(ore);
|
||||||
|
}
|
||||||
|
|
||||||
public static double getOreAmount(ItemStack stack, BedrockOreType type) {
|
public static double getOreAmount(ItemStack stack, BedrockOreType type) {
|
||||||
if(!stack.hasTagCompound()) return 0;
|
if(!stack.hasTagCompound()) return 0;
|
||||||
NBTTagCompound data = stack.getTagCompound();
|
NBTTagCompound data = stack.getTagCompound();
|
||||||
@ -38,7 +51,7 @@ public class ItemBedrockOreBase extends Item {
|
|||||||
for(BedrockOreType type : BedrockOreType.values()) {
|
for(BedrockOreType type : BedrockOreType.values()) {
|
||||||
double amount = this.getOreAmount(stack, type);
|
double amount = this.getOreAmount(stack, type);
|
||||||
String typeName = StatCollector.translateToLocalFormatted("item.bedrock_ore.type." + type.suffix + ".name");
|
String typeName = StatCollector.translateToLocalFormatted("item.bedrock_ore.type." + type.suffix + ".name");
|
||||||
list.add(typeName + ": " + ((int) (amount * 100)) / 100D + " (" + StatCollector.translateToLocalFormatted(ItemOreDensityScanner.translateDensity(amount)) + EnumChatFormatting.RESET + ")");
|
list.add(typeName + ": " + ((int) (amount * 100)) / 100D + " (" + ItemOreDensityScanner.getColor(amount) + StatCollector.translateToLocalFormatted(ItemOreDensityScanner.translateDensity(amount)) + EnumChatFormatting.GRAY + ")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.hbm.render.block;
|
package com.hbm.render.block;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
import org.lwjgl.opengl.GL12;
|
||||||
|
|
||||||
import com.hbm.blocks.generic.BlockHangingVine;
|
import com.hbm.blocks.generic.BlockHangingVine;
|
||||||
|
|
||||||
@ -10,13 +11,56 @@ import net.minecraft.client.renderer.RenderBlocks;
|
|||||||
import net.minecraft.client.renderer.Tessellator;
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
import net.minecraft.util.IIcon;
|
import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
|
||||||
|
|
||||||
public class RenderHangingVine implements ISimpleBlockRenderingHandler {
|
public class RenderHangingVine implements ISimpleBlockRenderingHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
|
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
|
||||||
|
//TextureUtil.func_152777_a(false, false, 1.0F);
|
||||||
|
|
||||||
|
GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F);
|
||||||
|
GL11.glRotatef(30.0F, -1.0F, 0.0F, 0.0F);
|
||||||
|
GL11.glTranslatef(-1.0F, -0.5F, -1.0F);
|
||||||
|
|
||||||
|
/*GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
|
||||||
|
GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F);
|
||||||
|
GL11.glRotatef(210.0F, 1.0F, 0.0F, 0.0F);
|
||||||
|
GL11.glScalef(1.0F, 1.0F, -1.0F);
|
||||||
|
GL11.glTranslatef(1.0F, 0.5F, 1.0F);
|
||||||
|
GL11.glScalef(10.0F, 10.0F, 10.0F);*/
|
||||||
|
|
||||||
|
|
||||||
|
IIcon iicon0 = ((BlockHangingVine) block).iconHang;
|
||||||
|
IIcon iicon1 = ((BlockHangingVine) block).iconHangGlow;
|
||||||
|
renderStandard2D(iicon0);
|
||||||
|
renderStandard2D(iicon1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void renderStandard2D(IIcon iicon) {
|
||||||
|
Tessellator tessellator = Tessellator.instance;
|
||||||
|
float f = iicon.getMinU();
|
||||||
|
float f1 = iicon.getMaxU();
|
||||||
|
float f2 = iicon.getMinV();
|
||||||
|
float f3 = iicon.getMaxV();
|
||||||
|
float f4 = 0.0F;
|
||||||
|
float f5 = 0.3F;
|
||||||
|
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
||||||
|
//GL11.glTranslatef(-f4, -f5, 0.0F);
|
||||||
|
float f6 = 1.5F;
|
||||||
|
//GL11.glScalef(f6, f6, f6);
|
||||||
|
//GL11.glRotatef(50.0F, 0.0F, 1.0F, 0.0F);
|
||||||
|
//GL11.glRotatef(335.0F, 0.0F, 0.0F, 1.0F);
|
||||||
|
//GL11.glTranslatef(-0.9375F, -0.0625F, 0.0F);
|
||||||
|
//ItemRenderer.renderItemIn2D(tessellator, f1, f2, f, f3, iicon.getIconWidth(), iicon.getIconHeight(), 0.0625F);
|
||||||
|
|
||||||
|
tessellator.startDrawingQuads();
|
||||||
|
tessellator.setNormal(0.0F, 0.0F, 1.0F);
|
||||||
|
tessellator.addVertexWithUV(0.0D, 0.0D, 0.0D, (double)f1, (double)f3);
|
||||||
|
tessellator.addVertexWithUV(1.0D, 0.0D, 0.0D, (double)f, (double)f3);
|
||||||
|
tessellator.addVertexWithUV(1.0D, 1.0D, 0.0D, (double)f, (double)f2);
|
||||||
|
tessellator.addVertexWithUV(0.0D, 1.0D, 0.0D, (double)f1, (double)f2);
|
||||||
|
tessellator.draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.hbm.render.block;
|
package com.hbm.render.block;
|
||||||
|
|
||||||
import com.hbm.blocks.network.RadioTorchBase;
|
import com.hbm.blocks.network.RadioTorchBase;
|
||||||
|
import com.hbm.interfaces.NotableComments;
|
||||||
import com.hbm.main.ResourceManager;
|
import com.hbm.main.ResourceManager;
|
||||||
import com.hbm.render.util.ObjUtil;
|
import com.hbm.render.util.ObjUtil;
|
||||||
import com.hbm.tileentity.network.TileEntityRadioTorchBase;
|
import com.hbm.tileentity.network.TileEntityRadioTorchBase;
|
||||||
@ -15,6 +16,7 @@ import net.minecraft.util.IIcon;
|
|||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraftforge.client.model.obj.WavefrontObject;
|
import net.minecraftforge.client.model.obj.WavefrontObject;
|
||||||
|
|
||||||
|
@NotableComments
|
||||||
public class RenderRTTY implements ISimpleBlockRenderingHandler {
|
public class RenderRTTY implements ISimpleBlockRenderingHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -51,7 +51,7 @@ public class ArmorUtil {
|
|||||||
ArmorRegistry.registerHazard(ModItems.hazmat_helmet_grey, HazardClass.SAND);
|
ArmorRegistry.registerHazard(ModItems.hazmat_helmet_grey, HazardClass.SAND);
|
||||||
ArmorRegistry.registerHazard(ModItems.hazmat_paa_helmet, HazardClass.LIGHT, HazardClass.SAND);
|
ArmorRegistry.registerHazard(ModItems.hazmat_paa_helmet, HazardClass.LIGHT, HazardClass.SAND);
|
||||||
ArmorRegistry.registerHazard(ModItems.liquidator_helmet, HazardClass.LIGHT, HazardClass.SAND);
|
ArmorRegistry.registerHazard(ModItems.liquidator_helmet, HazardClass.LIGHT, HazardClass.SAND);
|
||||||
ArmorRegistry.registerHazard(ModItems.t45_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.LIGHT, HazardClass.SAND);
|
ArmorRegistry.registerHazard(ModItems.t45_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND);
|
||||||
ArmorRegistry.registerHazard(ModItems.ajr_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND);
|
ArmorRegistry.registerHazard(ModItems.ajr_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND);
|
||||||
ArmorRegistry.registerHazard(ModItems.ajro_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND);
|
ArmorRegistry.registerHazard(ModItems.ajro_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND);
|
||||||
ArmorRegistry.registerHazard(ModItems.steamsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND);
|
ArmorRegistry.registerHazard(ModItems.steamsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND);
|
||||||
|
|||||||
BIN
src/main/resources/assets/hbm/textures/blocks/block_pu241.png
Normal file
|
After Width: | Height: | Size: 612 B |
|
Before Width: | Height: | Size: 649 B After Width: | Height: | Size: 631 B |
BIN
src/main/resources/assets/hbm/textures/blocks/block_u233_old.png
Normal file
|
After Width: | Height: | Size: 643 B |
|
After Width: | Height: | Size: 1.5 KiB |
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"animation": {
|
||||||
|
"interpolate": true,
|
||||||
|
"frametime": 8,
|
||||||
|
"frames": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4,
|
||||||
|
3,
|
||||||
|
2,
|
||||||
|
1
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 305 B After Width: | Height: | Size: 304 B |
|
Before Width: | Height: | Size: 433 B After Width: | Height: | Size: 373 B |
|
Before Width: | Height: | Size: 320 B After Width: | Height: | Size: 247 B |
|
Before Width: | Height: | Size: 393 B After Width: | Height: | Size: 334 B |
|
Before Width: | Height: | Size: 472 B After Width: | Height: | Size: 382 B |
|
Before Width: | Height: | Size: 357 B After Width: | Height: | Size: 275 B |