mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-02-23 22:40:46 +00:00
mostly fixes, supply crate changes
This commit is contained in:
parent
4c3945c924
commit
53c6c1ab77
14
changelog
14
changelog
@ -27,7 +27,8 @@
|
|||||||
* Now features proper animations for drawing the weapon, firing and reloading, as well as new sounds
|
* Now features proper animations for drawing the weapon, firing and reloading, as well as new sounds
|
||||||
* Comes with a new and improved 3D model as well as a cylinder gap flash when firing
|
* Comes with a new and improved 3D model as well as a cylinder gap flash when firing
|
||||||
* Is now part of the red room loot pool
|
* Is now part of the red room loot pool
|
||||||
* Durability has been drastically increased
|
* Durability has been drastically increased (31k instead of 4k)
|
||||||
|
* The boxcar now has new impact sounds and spawns fewer particles
|
||||||
* Powder box recipes now produce 8 boxes from the same amount of ingredients, making cyclotron recipes more affordable
|
* Powder box recipes now produce 8 boxes from the same amount of ingredients, making cyclotron recipes more affordable
|
||||||
* Buffed the radiation-powered engine, all valid fuels now produce 10x more energy per tick
|
* Buffed the radiation-powered engine, all valid fuels now produce 10x more energy per tick
|
||||||
* Removed tungsten and HSS bolts as dedicated items, they are now a single bolt item that uses the autogen system
|
* Removed tungsten and HSS bolts as dedicated items, they are now a single bolt item that uses the autogen system
|
||||||
@ -35,11 +36,20 @@
|
|||||||
* Bolts Are now 1/8 of an ingot instead of 1/2 which makes some recipes marginally cheaper, as well as making them equal to GregTech bolts
|
* Bolts Are now 1/8 of an ingot instead of 1/2 which makes some recipes marginally cheaper, as well as making them equal to GregTech bolts
|
||||||
* Bolts are oredicted and interchangeable, as well as recycleable in the crucible
|
* Bolts are oredicted and interchangeable, as well as recycleable in the crucible
|
||||||
* The N45 naval mine has been obliterated
|
* The N45 naval mine has been obliterated
|
||||||
* The solar boiler's ray rendering is no longer bound by particle settings, instead it will be disabled when fast graphics are enabaled
|
* The solar boiler's ray rendering is no longer bound by particle settings, instead it will be disabled when fast graphics are enabled
|
||||||
* The solar boiler's internal buffer has been reduced, its steam output is now capped at 10,000mB/t (which should be 20kHE/t or 0.8MHE/s)
|
* The solar boiler's internal buffer has been reduced, its steam output is now capped at 10,000mB/t (which should be 20kHE/t or 0.8MHE/s)
|
||||||
|
* All crates except the jungle dungeon one now drop themselves when mined
|
||||||
|
* Supply and conserve crates do not need a tool because they are made of wood, the ammo crate requires a pickaxe
|
||||||
|
* All of those crates are now opened with the crowbar instead in order to be consistent with each other
|
||||||
|
* Standard gauge rails are now craftable and visible in the transportation tab
|
||||||
|
* You can now play around with the new rail types in creative mode, as none of the train cars are currently craftable
|
||||||
|
* Coupling should work, but coupling info is not saved to NBT so links will be lost when leaving the world
|
||||||
|
* Trains might randomly derail on 5m curves, idk why
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
* Fixed afterburn upgrades not being craftable with bakelite
|
* Fixed afterburn upgrades not being craftable with bakelite
|
||||||
* Fixed bismuth block not being properly oredicted
|
* Fixed bismuth block not being properly oredicted
|
||||||
* Powder detectors that are used in the same network as diodes should now be somewhat less wrong
|
* Powder detectors that are used in the same network as diodes should now be somewhat less wrong
|
||||||
* Fixed horrifying gamebreaking issue that would frequently cause crashes, corrupt worlds and bluescreen PCs where the red copper block and the advanced alloy block had inconsistent colors
|
* Fixed horrifying gamebreaking issue that would frequently cause crashes, corrupt worlds and bluescreen PCs where the red copper block and the advanced alloy block had inconsistent colors
|
||||||
|
* Fixed file cabinets not dropping their contents
|
||||||
|
* Fixed some sides of the pedestal not rendering
|
||||||
|
|||||||
@ -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=4824
|
mod_build_number=4837
|
||||||
|
|
||||||
credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\
|
credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\
|
||||||
\ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\
|
\ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.IIcon;
|
import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
@ -38,11 +39,31 @@ public class BlockAmmoCrate extends Block {
|
|||||||
public IIcon getIcon(int side, int metadata) {
|
public IIcon getIcon(int side, int metadata) {
|
||||||
return side == 0 ? this.iconBottom : (side == 1 ? this.iconTop : this.blockIcon);
|
return side == 0 ? this.iconBottom : (side == 1 ? this.iconTop : this.blockIcon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
|
||||||
|
if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) {
|
||||||
|
if(!world.isRemote) {
|
||||||
|
dropContents(world, x, y, z);
|
||||||
|
world.setBlockToAir(x, y, z);
|
||||||
|
world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
|
|
||||||
@Override
|
public void dropContents(World world, int x, int y, int z) {
|
||||||
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
|
ArrayList<ItemStack> items = getContents(world, x, y, z);
|
||||||
|
|
||||||
|
for(ItemStack item : items) {
|
||||||
|
this.dropBlockAsItem(world, x, y, z, item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<ItemStack> getContents(World world, int x, int y, int z) {
|
||||||
|
|
||||||
ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
|
ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
|
||||||
|
|
||||||
|
|||||||
@ -11,9 +11,7 @@ import cpw.mods.fml.client.registry.RenderingRegistry;
|
|||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.Item;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.ChatComponentText;
|
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class BlockCanCrate extends Block {
|
public class BlockCanCrate extends Block {
|
||||||
@ -21,79 +19,77 @@ public class BlockCanCrate extends Block {
|
|||||||
public BlockCanCrate(Material p_i45394_1_) {
|
public BlockCanCrate(Material p_i45394_1_) {
|
||||||
super(p_i45394_1_);
|
super(p_i45394_1_);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getRenderType(){
|
public int getRenderType() {
|
||||||
return renderID;
|
return renderID;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isOpaqueCube() {
|
public boolean isOpaqueCube() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean renderAsNormalBlock() {
|
public boolean renderAsNormalBlock() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
|
||||||
|
if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) {
|
||||||
if(world.isRemote)
|
if(!world.isRemote) {
|
||||||
{
|
dropContents(world, x, y, z);
|
||||||
player.addChatMessage(new ChatComponentText("The one crate you are allowed to smash!"));
|
world.setBlockToAir(x, y, z);
|
||||||
|
world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
return true;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
|
|
||||||
ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
|
|
||||||
|
|
||||||
int count = quantityDropped(metadata, fortune, world.rand);
|
|
||||||
for(int i = 0; i < count; i++) {
|
|
||||||
Item item = getItemDropped(metadata, world.rand, fortune);
|
|
||||||
if(item != null)
|
|
||||||
ret.add(new ItemStack(item, 1, damageDropped(metadata, world.rand, item)));
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
//pain
|
|
||||||
public int damageDropped(int meta, Random rand, Item item) {
|
|
||||||
if(item != ModItems.canned_conserve)
|
|
||||||
return damageDropped(meta);
|
|
||||||
else
|
|
||||||
return Math.abs(rand.nextInt() % EnumFoodType.values().length);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Item getItemDropped(int i, Random rand, int j) {
|
|
||||||
|
|
||||||
List<Item> items = new ArrayList();
|
|
||||||
for(int a = 0; a < EnumFoodType.values().length; a++)
|
|
||||||
items.add(ModItems.canned_conserve);
|
|
||||||
items.add(ModItems.can_smart);
|
|
||||||
items.add(ModItems.can_creature);
|
|
||||||
items.add(ModItems.can_redbomb);
|
|
||||||
items.add(ModItems.can_mrsugar);
|
|
||||||
items.add(ModItems.can_overcharge);
|
|
||||||
items.add(ModItems.can_luna);
|
|
||||||
items.add(ModItems.can_breen);
|
|
||||||
items.add(ModItems.can_bepis);
|
|
||||||
items.add(ModItems.pudding);
|
|
||||||
|
|
||||||
return items.get(rand.nextInt(items.size()));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int quantityDropped(Random rand) {
|
|
||||||
|
|
||||||
return 5 + rand.nextInt(4);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
Random rand = new Random();
|
||||||
|
|
||||||
|
public void dropContents(World world, int x, int y, int z) {
|
||||||
|
ArrayList<ItemStack> items = getContents(world, x, y, z);
|
||||||
|
|
||||||
|
for(ItemStack item : items) {
|
||||||
|
this.dropBlockAsItem(world, x, y, z, item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<ItemStack> getContents(World world, int x, int y, int z) {
|
||||||
|
ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
|
||||||
|
|
||||||
|
int count = getContentAmount(world.rand);
|
||||||
|
for(int i = 0; i < count; i++) {
|
||||||
|
ret.add(getRandomItem(world.rand));
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getRandomItem(Random rand) {
|
||||||
|
|
||||||
|
List<ItemStack> items = new ArrayList();
|
||||||
|
for(int a = 0; a < EnumFoodType.values().length; a++)
|
||||||
|
items.add(new ItemStack(ModItems.canned_conserve, 1, a));
|
||||||
|
items.add(new ItemStack(ModItems.can_smart));
|
||||||
|
items.add(new ItemStack(ModItems.can_creature));
|
||||||
|
items.add(new ItemStack(ModItems.can_redbomb));
|
||||||
|
items.add(new ItemStack(ModItems.can_mrsugar));
|
||||||
|
items.add(new ItemStack(ModItems.can_overcharge));
|
||||||
|
items.add(new ItemStack(ModItems.can_luna));
|
||||||
|
items.add(new ItemStack(ModItems.can_breen));
|
||||||
|
items.add(new ItemStack(ModItems.can_bepis));
|
||||||
|
items.add(new ItemStack(ModItems.pudding));
|
||||||
|
|
||||||
|
return items.get(rand.nextInt(items.size()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getContentAmount(Random rand) {
|
||||||
|
return 5 + rand.nextInt(4);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,6 @@ import net.minecraft.entity.item.EntityItem;
|
|||||||
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;
|
||||||
import net.minecraft.util.ChatComponentText;
|
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class BlockCrate extends BlockFalling {
|
public class BlockCrate extends BlockFalling {
|
||||||
@ -29,25 +28,17 @@ public class BlockCrate extends BlockFalling {
|
|||||||
super(p_i45394_1_);
|
super(p_i45394_1_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
|
||||||
if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) {
|
if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) {
|
||||||
dropItems(world, x, y, z);
|
if(!world.isRemote) {
|
||||||
world.setBlockToAir(x, y, z);
|
dropItems(world, x, y, z);
|
||||||
world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F);
|
world.setBlockToAir(x, y, z);
|
||||||
return true;
|
world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F);
|
||||||
} else {
|
|
||||||
if(world.isRemote) {
|
|
||||||
player.addChatMessage(new ChatComponentText("I'll need a crate opening device to get the loot, smashing the whole thing won't work..."));
|
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDrops() {
|
public void setDrops() {
|
||||||
|
|||||||
@ -58,9 +58,9 @@ public class BlockDecoContainer extends BlockDecoModel implements ITileEntityPro
|
|||||||
} else {
|
} else {
|
||||||
TileEntity entity = world.getTileEntity(x, y, z);
|
TileEntity entity = world.getTileEntity(x, y, z);
|
||||||
if(entity instanceof TileEntityLockableBase) { //annoying accommodations for the filing cabinet, but whatever, could potentially be useful
|
if(entity instanceof TileEntityLockableBase) { //annoying accommodations for the filing cabinet, but whatever, could potentially be useful
|
||||||
if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit))
|
if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) {
|
||||||
return false;
|
return false;
|
||||||
else if(!player.isSneaking() && ((TileEntityLockableBase) entity).canAccess(player)) {
|
} else if(!player.isSneaking() && ((TileEntityLockableBase) entity).canAccess(player)) {
|
||||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z);
|
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -99,13 +99,13 @@ public class BlockDecoContainer extends BlockDecoModel implements ITileEntityPro
|
|||||||
|
|
||||||
if(itemstack.hasTagCompound()) {
|
if(itemstack.hasTagCompound()) {
|
||||||
entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
|
entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
|
||||||
|
|
||||||
float f3 = 0.05F;
|
|
||||||
entityitem.motionX = (float) rand.nextGaussian() * f3;
|
|
||||||
entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F;
|
|
||||||
entityitem.motionZ = (float) rand.nextGaussian() * f3;
|
|
||||||
world.spawnEntityInWorld(entityitem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float f3 = 0.05F;
|
||||||
|
entityitem.motionX = (float) rand.nextGaussian() * f3;
|
||||||
|
entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F;
|
||||||
|
entityitem.motionZ = (float) rand.nextGaussian() * f3;
|
||||||
|
world.spawnEntityInWorld(entityitem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import net.minecraft.network.Packet;
|
|||||||
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
|
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.IIcon;
|
import net.minecraft.util.IIcon;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class BlockPedestal extends BlockContainer {
|
public class BlockPedestal extends BlockContainer {
|
||||||
@ -62,6 +63,12 @@ public class BlockPedestal extends BlockContainer {
|
|||||||
public boolean renderAsNormalBlock() {
|
public boolean renderAsNormalBlock() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||||
|
|||||||
@ -107,9 +107,9 @@ public class EntityGlyphid extends EntityMob {
|
|||||||
@Override
|
@Override
|
||||||
protected void entityInit() {
|
protected void entityInit() {
|
||||||
super.entityInit();
|
super.entityInit();
|
||||||
this.dataWatcher.addObject(DW_WALL, new Byte((byte) 0)); //wall climbing
|
this.dataWatcher.addObject(DW_WALL, new Byte((byte) 0)); //wall climbing
|
||||||
this.dataWatcher.addObject(DW_ARMOR, new Byte((byte) 0b11111)); //armor
|
this.dataWatcher.addObject(DW_ARMOR, new Byte((byte) 0b11111)); //armor
|
||||||
this.dataWatcher.addObject(DW_SUBTYPE, new Byte((byte) 0)); //subtype (i.e. normal, infected, etc)
|
this.dataWatcher.addObject(DW_SUBTYPE, new Byte((byte) 0)); //subtype (i.e. normal, infected, etc)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -32,49 +32,36 @@ public class EntityBoxcar extends EntityThrowable {
|
|||||||
this.lastTickPosZ = this.prevPosZ = posZ;
|
this.lastTickPosZ = this.prevPosZ = posZ;
|
||||||
this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ);
|
this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ);
|
||||||
|
|
||||||
/*this.prevPosX = this.posX;
|
|
||||||
this.prevPosY = this.posY;
|
|
||||||
this.prevPosZ = this.posZ;
|
|
||||||
|
|
||||||
this.posX += this.motionX;
|
|
||||||
this.posY += this.motionY;
|
|
||||||
this.posZ += this.motionZ;*/
|
|
||||||
|
|
||||||
this.motionY -= 0.03;
|
this.motionY -= 0.03;
|
||||||
if(motionY < -1.5)
|
if(motionY < -1.5)
|
||||||
motionY = -1.5;
|
motionY = -1.5;
|
||||||
|
|
||||||
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air)
|
if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) {
|
||||||
{
|
this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:weapon.trainImpact", 100.0F, 1.0F);
|
||||||
this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:entity.oldExplosion", 10000.0F, 0.5F + this.rand.nextFloat() * 0.1F);
|
this.setDead();
|
||||||
this.setDead();
|
ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3);
|
||||||
ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3);
|
ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5);
|
||||||
ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5);
|
ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2);
|
||||||
ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2);
|
//ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5);
|
||||||
ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5);
|
//ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1);
|
||||||
ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1);
|
|
||||||
|
List<Entity> list = (List<Entity>) worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2));
|
||||||
List<Entity> list = (List<Entity>)worldObj.getEntitiesWithinAABBExcludingEntity(null,
|
|
||||||
AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2));
|
for(Entity e : list) {
|
||||||
|
e.attackEntityFrom(ModDamageSource.boxcar, 1000);
|
||||||
for(Entity e : list) {
|
}
|
||||||
e.attackEntityFrom(ModDamageSource.boxcar, 1000);
|
|
||||||
}
|
if(!worldObj.isRemote)
|
||||||
|
worldObj.setBlock((int) (this.posX - 0.5), (int) (this.posY + 0.5), (int) (this.posZ - 0.5), ModBlocks.boxcar);
|
||||||
if(!worldObj.isRemote)
|
}
|
||||||
worldObj.setBlock((int)(this.posX - 0.5), (int)(this.posY + 0.5), (int)(this.posZ - 0.5), ModBlocks.boxcar);
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onImpact(MovingObjectPosition p_70184_1_) {
|
protected void onImpact(MovingObjectPosition p_70184_1_) { }
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public boolean isInRangeToRenderDist(double distance)
|
public boolean isInRangeToRenderDist(double distance) {
|
||||||
{
|
return distance < 25000;
|
||||||
return distance < 25000;
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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 (4824)";
|
public static final String VERSION = "1.0.27 BETA (4837)";
|
||||||
//HBM's Beta Naming Convention:
|
//HBM's Beta Naming Convention:
|
||||||
//V T (X)
|
//V T (X)
|
||||||
//V -> next release version
|
//V -> next release version
|
||||||
|
|||||||
@ -202,6 +202,7 @@
|
|||||||
"weapon.glReload": {"category": "player", "sounds": [{"name": "weapon/glReload", "stream": false}]},
|
"weapon.glReload": {"category": "player", "sounds": [{"name": "weapon/glReload", "stream": false}]},
|
||||||
"weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]},
|
"weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]},
|
||||||
"weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]},
|
"weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]},
|
||||||
|
"weapon.trainImpact": {"category": "player", "sounds": [{"name": "weapon/trainImpact", "stream": false}]},
|
||||||
|
|
||||||
"weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]},
|
"weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]},
|
||||||
|
|
||||||
|
|||||||
BIN
src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg
Normal file
Binary file not shown.
BIN
src/main/resources/assets/hbm/textures/items/book_of_2.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/book_of_2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Loading…
x
Reference in New Issue
Block a user