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
|
||||
* 10 gauge slug
|
||||
* 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
|
||||
* Phosphor vines
|
||||
|
||||
## Changed
|
||||
* Black powder bullets now have 75% base damage instead of 50%
|
||||
* Ball and powder type rounds no longer have a bonus on headshot
|
||||
* 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
|
||||
* Raw bedrock ore taken out of the creative tab now has the stats of the position the player is in, instead of being worthless
|
||||
* U233's color coded isotope indicator is now yellow instead of orange, making yellow standard code for "secondary fissile isotope" and orange for "radioisotope"
|
||||
|
||||
## Fixed
|
||||
* Fixed `ITEM_TOOLTIP_SHOW_CUSTOM_NUKE` client config overriding `ITEM_TOOLTIP_SHOW_OREDICT` due to name overlap
|
||||
* Fixed certain secret weapon creation condition not working properly
|
||||
* 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
|
||||
* Fixed raw bedrock ore tooltip not showing the density's color correctly
|
||||
* Fixed T45 helmet not protecting against carbon monoxide
|
||||
@ -27,9 +27,7 @@ import com.hbm.tileentity.machine.storage.TileEntityFileCabinet;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockFalling;
|
||||
import net.minecraft.block.material.MapColor;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.material.MaterialLiquid;
|
||||
import net.minecraft.block.material.*;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
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.entity.Entity;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
@ -31,8 +28,10 @@ public class BlockHangingVine extends Block implements IShearable {
|
||||
|
||||
@Override
|
||||
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.setInWeb();
|
||||
entity.motionX *= 0.5;
|
||||
entity.motionY *= 0.5;
|
||||
entity.motionZ *= 0.5;
|
||||
entity.fallDistance = 0F;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -86,7 +85,8 @@ public class BlockHangingVine extends Block implements IShearable {
|
||||
public boolean renderAsNormalBlock() {
|
||||
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 iconHang; //when hanging mid-air
|
||||
@SideOnly(Side.CLIENT) public IIcon iconGlow; //regular phosphor
|
||||
@ -94,6 +94,7 @@ public class BlockHangingVine extends Block implements IShearable {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister reg) {
|
||||
this.iconItem = reg.registerIcon(RefStrings.MODID + ":vine_phosphor_item");
|
||||
this.blockIcon = reg.registerIcon(RefStrings.MODID + ":vine_phosphor");
|
||||
this.iconGround = reg.registerIcon(RefStrings.MODID + ":vine_phosphor_ground");
|
||||
this.iconHang = reg.registerIcon(RefStrings.MODID + ":vine_phosphor_hang");
|
||||
@ -110,6 +111,12 @@ public class BlockHangingVine extends Block implements IShearable {
|
||||
else
|
||||
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();
|
||||
|
||||
|
||||
@ -5,7 +5,11 @@ import java.util.Random;
|
||||
|
||||
import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType;
|
||||
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.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -16,6 +20,15 @@ import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.world.gen.NoiseGeneratorPerlin;
|
||||
|
||||
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) {
|
||||
if(!stack.hasTagCompound()) return 0;
|
||||
@ -38,7 +51,7 @@ public class ItemBedrockOreBase extends Item {
|
||||
for(BedrockOreType type : BedrockOreType.values()) {
|
||||
double amount = this.getOreAmount(stack, type);
|
||||
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;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
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.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class RenderHangingVine implements ISimpleBlockRenderingHandler {
|
||||
|
||||
@Override
|
||||
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
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.render.block;
|
||||
|
||||
import com.hbm.blocks.network.RadioTorchBase;
|
||||
import com.hbm.interfaces.NotableComments;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.util.ObjUtil;
|
||||
import com.hbm.tileentity.network.TileEntityRadioTorchBase;
|
||||
@ -15,6 +16,7 @@ import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraftforge.client.model.obj.WavefrontObject;
|
||||
|
||||
@NotableComments
|
||||
public class RenderRTTY implements ISimpleBlockRenderingHandler {
|
||||
|
||||
@Override
|
||||
|
||||
@ -51,7 +51,7 @@ public class ArmorUtil {
|
||||
ArmorRegistry.registerHazard(ModItems.hazmat_helmet_grey, HazardClass.SAND);
|
||||
ArmorRegistry.registerHazard(ModItems.hazmat_paa_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.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);
|
||||
|
||||
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 |