mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Texas just banned furries in schools. This was to make sure kids don't have fun. But you know what Texas won't ban? Being able to carry an AR-15 wherever you go. I love America, because furry suit sales will now decline and instead kids will turn to using firearms. Do you know what this means? We're going to be needing more bullets, which means the copper trade is going to skyrocket. This means you as a Mesopotamian copper merchant could make a lot of profit.
This commit is contained in:
parent
61c22602a4
commit
5d3860a4f6
@ -6,11 +6,7 @@ import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.ServerConfig;
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.BlockProcessorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth;
|
||||
import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon;
|
||||
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.*;
|
||||
import com.hbm.interfaces.IBomb;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.weapon.sedna.factory.XFactoryCatapult;
|
||||
@ -179,7 +175,7 @@ public class Landmine extends BlockContainer implements IBomb {
|
||||
ExplosionLarge.spawnShrapnels(world, x + 0.5, y + 0.5, z + 0.5, 5);
|
||||
} else if(this == ModBlocks.mine_naval) {
|
||||
ExplosionVNT vnt = new ExplosionVNT(world, x + 5, y + 5, z + 5, 25F);
|
||||
vnt.setBlockAllocator(new BlockAllocatorStandard(64));
|
||||
vnt.setBlockAllocator(new BlockAllocatorWater(32));
|
||||
vnt.setBlockProcessor(new BlockProcessorStandard());
|
||||
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(0.5, ServerConfig.MINE_NAVAL_DAMAGE.get()).setupPiercing(5F, 0.2F));
|
||||
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||
|
||||
@ -0,0 +1,78 @@
|
||||
package com.hbm.explosion.vanillant.standard;
|
||||
|
||||
import java.util.HashSet;
|
||||
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.explosion.vanillant.interfaces.IBlockAllocator;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.ChunkPosition;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockAllocatorWater implements IBlockAllocator {
|
||||
|
||||
protected int resolution;
|
||||
|
||||
public BlockAllocatorWater(int resolution) {
|
||||
this.resolution = resolution;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashSet<ChunkPosition> allocate(ExplosionVNT explosion, World world, double x, double y, double z, float size) {
|
||||
HashSet<ChunkPosition> affectedBlocks = new HashSet<>();
|
||||
|
||||
for (int i = 0; i < this.resolution; ++i) {
|
||||
for (int j = 0; j < this.resolution; ++j) {
|
||||
for (int k = 0; k < this.resolution; ++k) {
|
||||
if (i == 0 || i == this.resolution - 1 || j == 0 || j == this.resolution - 1 || k == 0 || k == this.resolution - 1) {
|
||||
double d0 = (float) i / ((float) this.resolution - 1.0F) * 2.0F - 1.0F;
|
||||
double d1 = (float) j / ((float) this.resolution - 1.0F) * 2.0F - 1.0F;
|
||||
double d2 = (float) k / ((float) this.resolution - 1.0F) * 2.0F - 1.0F;
|
||||
double d3 = Math.sqrt(d0 * d0 + d1 * d1 + d2 * d2);
|
||||
|
||||
d0 /= d3;
|
||||
d1 /= d3;
|
||||
d2 /= d3;
|
||||
|
||||
float powerRemaining = size * (0.7F + world.rand.nextFloat() * 0.6F);
|
||||
double currentX = x;
|
||||
double currentY = y;
|
||||
double currentZ = z;
|
||||
|
||||
for (float stepSize = 0.3F; powerRemaining > 0.0F; powerRemaining -= stepSize * 0.75F) {
|
||||
int blockX = MathHelper.floor_double(currentX);
|
||||
int blockY = MathHelper.floor_double(currentY);
|
||||
int blockZ = MathHelper.floor_double(currentZ);
|
||||
|
||||
Block block = world.getBlock(blockX, blockY, blockZ);
|
||||
Material material = block.getMaterial();
|
||||
|
||||
// im braindead and copy code 🧃🐱👤
|
||||
if (material != Material.air && !material.isLiquid()) {
|
||||
float blockResistance = explosion.exploder != null ?
|
||||
explosion.exploder.func_145772_a(explosion.compat, world, blockX, blockY, blockZ, block) :
|
||||
block.getExplosionResistance(null, world, blockX, blockY, blockZ, x, y, z);
|
||||
powerRemaining -= (blockResistance + 0.3F) * stepSize;
|
||||
}
|
||||
|
||||
|
||||
if (powerRemaining > 0.0F &&
|
||||
(explosion.exploder == null || explosion.exploder.func_145774_a(explosion.compat, world, blockX, blockY, blockZ, block, powerRemaining)) &&
|
||||
!material.isLiquid()) {
|
||||
affectedBlocks.add(new ChunkPosition(blockX, blockY, blockZ));
|
||||
}
|
||||
|
||||
currentX += d0 * (double) stepSize;
|
||||
currentY += d1 * (double) stepSize;
|
||||
currentZ += d2 * (double) stepSize;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return affectedBlocks;
|
||||
}
|
||||
}
|
||||
@ -509,6 +509,20 @@ public class ItemRenderLibrary {
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.mine_naval), new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, 2, -1);
|
||||
GL11.glScaled(5, 5, 5);
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glTranslated(0, 0, 0);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.mine_naval_tex);
|
||||
ResourceManager.mine_naval.renderAll();
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.mine_fat), new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -1, 0);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user