Merge remote-tracking branch 'HbmMods/master'

This commit is contained in:
Vaern 2022-03-02 15:59:56 -08:00
commit e43704190c
34 changed files with 1912 additions and 45 deletions

View File

@ -6,6 +6,7 @@ import com.hbm.items.ModItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.EntityLeashKnot;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.boss.IBossDisplayData;
import net.minecraft.entity.player.EntityPlayer;
@ -134,7 +135,10 @@ public class EntityQuackos extends EntityDuck implements IBossDisplayData {
public float getShadowSize() {
return 7.5F;
}
/**
* BOW
*/
@Override
public void onLivingUpdate() {
super.onLivingUpdate();
@ -143,4 +147,13 @@ public class EntityQuackos extends EntityDuck implements IBossDisplayData {
this.setPosition(this.posX + rand.nextGaussian() * 30, 256, this.posZ + rand.nextGaussian() * 30);
}
}
@Override
protected void updateLeashedState() {
if(this.getLeashedToEntity() instanceof EntityLeashKnot)
this.getLeashedToEntity().setDead();
super.updateLeashedState();
}
}

View File

@ -274,6 +274,21 @@ public class BobmazonOfferFactory {
new ItemStack(ModItems.pipe_lead).setStackDisplayName("Get Nutted, Dumbass"),
new ItemStack(ModItems.gem_alexandrite)
).setStackDisplayName("The Nut Bucket"), Requirement.HIDDEN, 64));
special.add(new Offer(ItemKitNBT.create(
new ItemStack(ModItems.rpa_helmet),
new ItemStack(ModItems.rpa_plate),
new ItemStack(ModItems.rpa_legs),
new ItemStack(ModItems.rpa_boots),
new ItemStack(ModItems.gun_lacunae),
new ItemStack(ModItems.ammo_5mm_star, 64),
new ItemStack(ModItems.ammo_5mm_star, 64),
new ItemStack(ModItems.ammo_5mm_star, 64),
new ItemStack(ModItems.ammo_5mm_star, 64),
new ItemStack(ModItems.ammo_5mm_star, 64),
new ItemStack(ModItems.ammo_5mm_star, 64),
new ItemStack(ModItems.ammo_5mm_star, 64)
).setStackDisplayName("Frenchman's Reward"), Requirement.HIDDEN, 32));
}
public static List<Offer> getOffers(ItemStack stack) {

View File

@ -210,6 +210,7 @@ public class BulletConfigSyncingUtil {
public static int NUKE_TOTS = i++;
public static int NUKE_SAFE = i++;
public static int NUKE_PUMPKIN = i++;
public static int NUKE_BARREL = i++;
public static int NUKE_PROTO_NORMAL = i++;
public static int NUKE_PROTO_LOW = i++;
public static int NUKE_PROTO_HIGH = i++;
@ -451,6 +452,7 @@ public class BulletConfigSyncingUtil {
configSet.put(NUKE_TOTS, GunFatmanFactory.getNukeTotsConfig());
configSet.put(NUKE_SAFE, GunFatmanFactory.getNukeSafeConfig());
configSet.put(NUKE_PUMPKIN, GunFatmanFactory.getNukePumpkinConfig());
configSet.put(NUKE_BARREL, GunFatmanFactory.getNukeBarrelConfig());
configSet.put(NUKE_PROTO_NORMAL, GunFatmanFactory.getNukeConfig().accuracyMod(20F));
configSet.put(NUKE_PROTO_LOW, GunFatmanFactory.getNukeLowConfig().accuracyMod(20F));
configSet.put(NUKE_PROTO_HIGH, GunFatmanFactory.getNukeHighConfig().accuracyMod(20F));

View File

@ -120,6 +120,7 @@ public class BulletConfiguration {
public static final int STYLE_METEOR = 13;
public static final int STYLE_APDS = 14;
public static final int STYLE_BLADE = 15;
public static final int STYLE_BARREL = 16;
public static final int PLINK_NONE = 0;
public static final int PLINK_BULLET = 1;

View File

@ -2,6 +2,7 @@ package com.hbm.handler.guncfg;
import java.util.ArrayList;
import com.hbm.blocks.ModBlocks;
import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.explosion.ExplosionNT;
@ -9,6 +10,7 @@ import com.hbm.explosion.ExplosionNT.ExAttrib;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.handler.BulletConfiguration;
import com.hbm.handler.GunConfiguration;
import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.interfaces.IBulletImpactBehavior;
import com.hbm.interfaces.IBulletUpdateBehavior;
import com.hbm.items.ModItems;
@ -17,7 +19,9 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.render.util.RenderScreenOverlay.Crosshair;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class GunFatmanFactory {
@ -213,7 +217,7 @@ public class GunFatmanFactory {
@Override
public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) {
if(bullet.worldObj.isRemote) {
if(!bullet.worldObj.isRemote) {
double posX = bullet.posX;
double posY = bullet.posY + 0.5;
@ -233,6 +237,63 @@ public class GunFatmanFactory {
return bullet;
}
public static BulletConfiguration getNukeBarrelConfig() {
BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig();
bullet.ammo = ModItems.ammo_nuke_pumpkin;
bullet.explosive = 3F;
bullet.style = bullet.STYLE_BARREL;
bullet.bImpact = new IBulletImpactBehavior() {
@Override
public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) {
if(!bullet.worldObj.isRemote) {
double posX = bullet.posX;
double posY = bullet.posY + 0.5;
double posZ = bullet.posZ;
if(y >= 0) {
posX = x + 0.5;
posY = y + 1.5;
posZ = z + 0.5;
}
x = (int)Math.floor(posX);
y = (int)Math.floor(posY);
z = (int)Math.floor(posZ);
World worldObj = bullet.worldObj;
for(int ix = x - 3; ix <= x + 3; ix++) {
for(int iy = y - 3; iy <= y + 3; iy++) {
for(int iz = z - 3; iz <= z + 3; iz++) {
if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock(ix, iy, iz).isReplaceable(worldObj, ix, iy, iz) && ModBlocks.fallout.canPlaceBlockAt(worldObj, ix, iy, iz)) {
worldObj.setBlock(ix, iy, iz, ModBlocks.fallout);
} else if(worldObj.getBlock(ix, iy, iz) == Blocks.air) {
if(worldObj.rand.nextBoolean())
worldObj.setBlock(ix, iy, iz, ModBlocks.gas_radon);
else
worldObj.setBlock(ix, iy, iz, ModBlocks.gas_radon_dense);
}
}
}
}
ChunkRadiationManager.proxy.incrementRad(worldObj, x, y, z, 100F);
ExplosionLarge.spawnParticles(bullet.worldObj, posX, posY, posZ, 45);
}
}
};
return bullet;
}
public static BulletConfiguration getMirvConfig() {
BulletConfiguration bullet = getNukeConfig();

View File

@ -950,15 +950,13 @@ public class AssemblerRecipes {
}, 200);
makeRecipe(new ComparableStack(ModBlocks.machine_radiolysis), new AStack[] {
new OreDictStack(STEEL.ingot(), 8),
new OreDictStack(STEEL.ingot(), 12),
new OreDictStack(TCALLOY.ingot(), 4),
new ComparableStack(ModBlocks.steel_beam, 16),
new OreDictStack(DURA.ingot(), 10),
new OreDictStack(DESH.ingot(), 4),
new OreDictStack(RUBBER.ingot(), 4),
new OreDictStack(PB.plate(), 12),
new ComparableStack(ModItems.board_copper, 4),
new ComparableStack(ModItems.thermo_element, 10),
new ComparableStack(ModItems.circuit_copper, 3),
new ComparableStack(ModItems.wire_red_copper, 8),
new ComparableStack(ModItems.tank_steel, 3)
}, 200);

View File

@ -162,7 +162,8 @@ public class RefineryRecipes {
};
ItemStack[] out = new ItemStack[] {
ItemFluidIcon.make(recipe.getValue().getKey()),
ItemFluidIcon.make(recipe.getValue().getValue())
ItemFluidIcon.make(recipe.getValue().getValue()),
ItemFluidIcon.make(Fluids.SPENTSTEAM, 2)
};
recipes.put(in, recipe.getValue().getValue().type == Fluids.NONE ? ItemFluidIcon.make(recipe.getValue().getKey()) : out);

View File

@ -1551,6 +1551,7 @@ public class ModItems {
public static Item ammo_nuke_tots;
public static Item ammo_nuke_safe;
public static Item ammo_nuke_pumpkin;
public static Item ammo_nuke_barrel;
public static Item ammo_mirv;
public static Item ammo_mirv_low;
public static Item ammo_mirv_high;
@ -4216,6 +4217,7 @@ public class ModItems {
ammo_nuke_tots = new ItemAmmo().setUnlocalizedName("ammo_nuke_tots");
ammo_nuke_safe = new ItemAmmo().setUnlocalizedName("ammo_nuke_safe");
ammo_nuke_pumpkin = new ItemAmmo().setUnlocalizedName("ammo_nuke_pumpkin");
ammo_nuke_barrel = new ItemAmmo().setUnlocalizedName("ammo_nuke_barrel");
ammo_mirv = new ItemAmmo().setUnlocalizedName("ammo_mirv");
ammo_mirv_low = new ItemAmmo().setUnlocalizedName("ammo_mirv_low");
ammo_mirv_high = new ItemAmmo().setUnlocalizedName("ammo_mirv_high");
@ -7251,6 +7253,7 @@ public class ModItems {
GameRegistry.registerItem(ammo_nuke_tots, ammo_nuke_tots.getUnlocalizedName());
GameRegistry.registerItem(ammo_nuke_safe, ammo_nuke_safe.getUnlocalizedName());
GameRegistry.registerItem(ammo_nuke_pumpkin, ammo_nuke_pumpkin.getUnlocalizedName());
GameRegistry.registerItem(ammo_nuke_barrel, ammo_nuke_barrel.getUnlocalizedName());
GameRegistry.registerItem(ammo_mirv, ammo_mirv.getUnlocalizedName());
GameRegistry.registerItem(ammo_mirv_low, ammo_mirv_low.getUnlocalizedName());
GameRegistry.registerItem(ammo_mirv_high, ammo_mirv_high.getUnlocalizedName());

View File

@ -7,8 +7,10 @@ import org.apache.logging.log4j.Level;
import com.hbm.config.GeneralConfig;
import com.hbm.interfaces.IBomb;
import com.hbm.interfaces.IBomb.BombReturnCode;
import com.hbm.interfaces.IHoldableWeapon;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.render.util.RenderScreenOverlay.Crosshair;
import com.hbm.util.ChatBuilder;
import net.minecraft.entity.player.EntityPlayer;
@ -19,7 +21,7 @@ import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class ItemLaserDetonator extends Item {
public class ItemLaserDetonator extends Item implements IHoldableWeapon {
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
@ -70,4 +72,9 @@ public class ItemLaserDetonator extends Item {
return stack;
}
@Override
public Crosshair getCrosshair() {
return Crosshair.L_ARROWS;
}
}

View File

@ -60,7 +60,6 @@ public class Library {
public static String Hoboy03new = "d7f29d9c-5103-4f6f-88e1-2632ff95973f";
public static String Dragon59MC = "dc23a304-0f84-4e2d-b47d-84c8d3bfbcdb";
public static String Steelcourage = "ac49720b-4a9a-4459-a26f-bee92160287a";
public static String GOD___TM = "57146e3f-16b5-4e9f-b0b8-139bec2ca2cb";
public static String ZippySqrl = "03c20435-a229-489a-a1a1-671b803f7017";
public static String Schrabby = "3a4a1944-5154-4e67-b80a-b6561e8630b7";
public static String SweatySwiggs = "5544aa30-b305-4362-b2c1-67349bb499d5";
@ -74,6 +73,7 @@ public class Library {
public static String Tankish = "609268ad-5b34-49c2-abba-a9d83229af03";
public static String SolsticeUnlimitd = "f5574fd2-ec28-4927-9d11-3c0c731771f4";
public static String FrizzleFrazzle = "fc4cc2ee-12e8-4097-b26a-1c6cb1b96531";
public static String the_NCR = "28ae585f-4431-4491-9ce8-3def6126e3c6";
public static Set<String> contributors = Sets.newHashSet(new String[] {
"06ab7c03-55ce-43f8-9d3c-2850e3c652de", //mustang_rudolf

View File

@ -52,6 +52,7 @@ public class ModDamageSource extends DamageSource {
public static DamageSource mku = (new DamageSource("mku")).setDamageIsAbsolute().setDamageBypassesArmor();
public static DamageSource vacuum = (new DamageSource("vacuum")).setDamageIsAbsolute().setDamageBypassesArmor();
public static DamageSource overdose = (new DamageSource("overdose")).setDamageIsAbsolute().setDamageBypassesArmor();
public static DamageSource microwave = (new DamageSource("microwave")).setDamageIsAbsolute().setDamageBypassesArmor();
public static final String s_bullet = "revolverBullet";
public static final String s_emplacer = "chopperBullet";

View File

@ -415,6 +415,7 @@ public class ClientProxy extends ServerProxy {
MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter_digamma, new ItemRenderWeaponBolter());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_fireext, new ItemRenderFireExt());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_ar15, new ItemRenderWeaponAR15());
MinecraftForgeClient.registerItemRenderer(ModItems.detonator_laser, new ItemRenderDetonatorLaser());
//multitool
MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool());
MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool());

View File

@ -62,7 +62,6 @@ import com.hbm.util.EntityDamageUtil;
import com.hbm.world.WorldProviderNTM;
import com.hbm.world.generator.TimedGenerator;
import codechicken.lib.math.MathHelper;
import cpw.mods.fml.common.eventhandler.Event.Result;
import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
@ -114,6 +113,7 @@ import net.minecraft.util.DamageSource;
import net.minecraft.util.EntityDamageSource;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.FoodStats;
import net.minecraft.util.MathHelper;
import net.minecraft.util.Vec3;
import net.minecraft.world.EnumSkyBlock;
import net.minecraft.world.World;
@ -1004,9 +1004,10 @@ public class ModEventHandler {
if(player.getCurrentArmor(2) == null && !player.onGround) {
boolean isBob = player.getUniqueID().toString().equals(Library.HbMinecraft) || player.getDisplayName().equals("HbMinecraft");
boolean isSol = player.getUniqueID().toString().equals(Library.SolsticeUnlimitd) || player.getDisplayName().equals("SolsticeUnlimitd");
boolean isOther = player.getUniqueID().toString().equals(Library.SolsticeUnlimitd) || player.getDisplayName().equals("SolsticeUnlimitd") ||
player.getUniqueID().toString().equals(Library.the_NCR) || player.getDisplayName().equals("the_NCR");
if(isBob || isSol) {
if(isBob || isOther) {
ArmorUtil.resetFlightTime(player);
@ -1029,7 +1030,7 @@ public class ModEventHandler {
else
player.motionY = cap + 0.15D;
if(isSol) {
if(isOther) {
if(player.getFoodStats().getSaturationLevel() > 0F)
player.addExhaustion(4F); //burn up saturation so that super-saturating foods have no effect
else
@ -1045,7 +1046,7 @@ public class ModEventHandler {
else if(player.motionY < 0)
player.motionY = 0;
if(isSol && !player.onGround) {
if(isOther && !player.onGround) {
if(player.getFoodStats().getSaturationLevel() > 0F)
player.addExhaustion(4F);
else

View File

@ -335,7 +335,9 @@ public class ModEventHandlerClient {
if(player.getUniqueID().toString().equals(Library.SolsticeUnlimitd) || player.getDisplayName().equals("SolsticeUnlimitd"))
RenderAccessoryUtility.renderSol(event);
if(player.getUniqueID().toString().equals(Library.HbMinecraft) || player.getDisplayName().equals("HbMinecraft"))
RenderAccessoryUtility.renderWings(event);
RenderAccessoryUtility.renderWings(event, 2);
if(player.getUniqueID().toString().equals(Library.the_NCR) || player.getDisplayName().equals("the_NCR"))
RenderAccessoryUtility.renderWings(event, 3);
}
}

View File

@ -624,6 +624,7 @@ public class ResourceManager {
public static final IModelCustom mg42 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/mg42.obj"));
public static final IModelCustom rem700 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/rem700.obj"));
public static final IModelCustom cursed_revolver = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cursed.obj"));
public static final IModelCustom detonator_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/detonator_laser.obj"));
public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj"));
@ -692,6 +693,7 @@ public class ResourceManager {
public static final ResourceLocation sky_stinger_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sky_stinger.png");
public static final ResourceLocation mg42_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/mg42.png");
public static final ResourceLocation rem700_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/rem700.png");
public static final ResourceLocation detonator_laser_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/detonator_laser.png");
public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png");
@ -756,6 +758,7 @@ public class ResourceManager {
public static final ResourceLocation wings_murk = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_murk.png");
public static final ResourceLocation wings_bob = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_bob.png");
public static final ResourceLocation wings_black = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_black.png");
public static final ResourceLocation wings_solstice = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_solstice.png");
public static final ResourceLocation hat = new ResourceLocation(RefStrings.MODID, "textures/armor/hat.png");

View File

@ -68,6 +68,7 @@ public class RenderBullet extends Render {
case BulletConfiguration.STYLE_METEOR: renderMeteor(trail); break;
case BulletConfiguration.STYLE_APDS: renderAPDS(); break;
case BulletConfiguration.STYLE_BLADE: renderBlade(); break;
case BulletConfiguration.STYLE_BARREL: renderNuke(3); break;
default: renderBullet(trail); break;
}
@ -217,6 +218,13 @@ public class RenderBullet extends Render {
case 2:
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/BaleFlare.png"));
bf.renderAll(0.0625F); break;
case 3:
GL11.glScaled(0.5, 0.5, 0.5);
GL11.glRotated(90, 0, 0, 1);
GL11.glRotated(90, 0, 1, 0);
bindTexture(ResourceManager.waste_drum_tex);
ResourceManager.waste_drum.renderAll();
break;
}
}

View File

@ -0,0 +1,100 @@
package com.hbm.render.item;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import com.hbm.render.anim.HbmAnimations;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
import net.minecraftforge.client.IItemRenderer.ItemRendererHelper;
public class ItemRenderDetonatorLaser implements IItemRenderer {
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
switch(type) {
case EQUIPPED:
case EQUIPPED_FIRST_PERSON:
case ENTITY:
case INVENTORY:
return true;
default: return false;
}
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING);
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.detonator_laser_tex);
switch(type) {
case EQUIPPED_FIRST_PERSON:
double s0 = 0.25D;
GL11.glScaled(s0, s0, s0);
GL11.glRotatef(80F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-20F, 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(1.0F, 0.5F, 3.0F);
break;
case EQUIPPED:
double scale = 0.125D;
GL11.glScaled(-scale, -scale, -scale);
GL11.glRotatef(85F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(145F, 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(-0.5F, -1.0F, 6.5F);
break;
case ENTITY:
double s1 = 0.25D;
GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F);
GL11.glScaled(s1, s1, s1);
break;
case INVENTORY:
GL11.glEnable(GL11.GL_LIGHTING);
double s = 3.5D;
GL11.glScaled(s, s, -s);
GL11.glTranslatef(1.5F, 2.75F, 0.0F);
GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F);
break;
default: break;
}
ResourceManager.detonator_laser.renderPart("Main");
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glColor3f(1F, 0F, 0F);
ResourceManager.detonator_laser.renderPart("Lights");
GL11.glColor3f(1F, 1F, 1F);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
}

View File

@ -160,9 +160,11 @@ public class ModelArmorWings extends ModelArmorBase {
}
protected ResourceLocation getTexture() {
if(this.type == 2)
return ResourceManager.wings_bob;
if(this.type == 3)
return ResourceManager.wings_black;
return ResourceManager.wings_murk;
}

View File

@ -143,17 +143,17 @@ public class RenderAccessoryUtility {
solModel.render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F);
}
private static ModelBiped wingModel;
public static void renderWings(RenderPlayerEvent.SetArmorModel event) {
private static ModelBiped[] wingModels = new ModelBiped[10];
public static void renderWings(RenderPlayerEvent.SetArmorModel event, int mode) {
if(wingModel == null)
wingModel = new ModelArmorWings(2);
if(wingModels[mode] == null)
wingModels[mode] = new ModelArmorWings(mode);
RenderPlayer renderer = event.renderer;
ModelBiped model = renderer.modelArmor;
EntityPlayer player = event.entityPlayer;
wingModel.isSneak = model.isSneak;
wingModels[mode].isSneak = model.isSneak;
float interp = event.partialRenderTick;
float yawHead = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * interp;
@ -162,6 +162,6 @@ public class RenderAccessoryUtility {
float yawWrapped = MathHelper.wrapAngleTo180_float(yawHead - yawOffset);
float pitch = player.rotationPitch;
wingModel.render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F);
wingModels[mode].render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F);
}
}

View File

@ -0,0 +1,17 @@
package com.hbm.sound.nt;
import net.minecraft.util.Vec3;
public interface ISoundSourceTE {
public Vec3 getSoundLocation();
public boolean isPlaying();
public default float getVolume() {
return 1F;
}
public default float getPitch() {
return 1F;
}
}

View File

@ -0,0 +1,90 @@
package com.hbm.sound.nt;
import net.minecraft.client.audio.ITickableSound;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Vec3;
public class SoundTE implements ITickableSound {
ISoundSourceTE source;
private ResourceLocation sound;
private boolean canRepeat = true;
private int repeatDelay = 0;
private boolean donePlaying = true;
private float soundX;
private float soundY;
private float soundZ;
private float volume;
private float pitch;
public SoundTE(String sound) {
this.sound = new ResourceLocation(sound);
}
@Override
public ResourceLocation getPositionedSoundLocation() {
return this.sound;
}
@Override
public boolean canRepeat() {
return this.canRepeat;
}
@Override
public int getRepeatDelay() {
return this.repeatDelay;
}
@Override
public float getVolume() {
return this.volume;
}
@Override
public float getPitch() {
return this.pitch;
}
@Override
public float getXPosF() {
return this.soundX;
}
@Override
public float getYPosF() {
return this.soundY;
}
@Override
public float getZPosF() {
return this.soundZ;
}
@Override
public AttenuationType getAttenuationType() {
return AttenuationType.LINEAR;
}
@Override
public void update() {
if(this.source == null)
return;
this.volume = this.source.getVolume();
this.pitch = this.source.getPitch();
Vec3 pos = this.source.getSoundLocation();
this.soundX = (float) pos.xCoord;
this.soundY = (float) pos.yCoord;
this.soundZ = (float) pos.zCoord;
}
@Override
public boolean isDonePlaying() {
return this.donePlaying;
}
}

View File

@ -30,7 +30,7 @@ public class TileEntityHadronPower extends TileEntity implements IEnergyUser {
@Override
public void setPower(long i) {
power = i;
this.markDirty();
this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this);
}
@Override

View File

@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidSource;
import com.hbm.inventory.FluidTank;
@ -17,17 +16,13 @@ import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.InventoryUtil;
import api.hbm.energy.IEnergyUser;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
@ -220,6 +215,9 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements
this.power -= this.consumption;
this.progress++;
if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_machined)
slots[0] = new ItemStack(ModItems.meteorite_sword_treated); //fisfndmoivndlmgindgifgjfdnblfm
ChemRecipe recipe = ChemplantRecipes.indexMapping.get(slots[4].getItemDamage());
this.maxProgress = recipe.getDuration() * this.speed / 100;
@ -411,10 +409,9 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements
@Override
public int getMaxFluidFill(FluidType type) {
for(FluidTank tank : tanks) {
if(tank.getTankType() == type) {
return tank.getMaxFill();
for(int i = 0; i < 2; i++) {
if(tanks[i].getTankType() == type) {
return tanks[i].getMaxFill();
}
}
@ -476,9 +473,6 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements
}
}
@Deprecated
public void handleButtonPacket(int value, int meta) { }
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);

View File

@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidSource;
import com.hbm.inventory.FluidStack;
@ -14,29 +13,28 @@ import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.recipes.RefineryRecipes;
import com.hbm.lib.Library;
import com.hbm.util.Tuple.Pair;
import com.hbm.util.Tuple.Quartet;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
import scala.actors.threadpool.Arrays;
public class TileEntityMachineCatalyticCracker extends TileEntity implements IFluidSource, IFluidAcceptor {
public FluidTank[] tanks;
public List<IFluidAcceptor> list1 = new ArrayList();
public List<IFluidAcceptor> list2 = new ArrayList();
public List<IFluidAcceptor> list3 = new ArrayList();
public TileEntityMachineCatalyticCracker() {
tanks = new FluidTank[4];
tanks = new FluidTank[5];
tanks[0] = new FluidTank(Fluids.BITUMEN, 4000, 0);
tanks[1] = new FluidTank(Fluids.STEAM, 8000, 1);
tanks[2] = new FluidTank(Fluids.OIL, 4000, 2);
tanks[3] = new FluidTank(Fluids.PETROLEUM, 4000, 3);
tanks[4] = new FluidTank(Fluids.SPENTSTEAM, 800, 4);
}
@Override
@ -52,6 +50,7 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl
if(worldObj.getTotalWorldTime() % 10 == 0) {
fillFluidInit(tanks[2].getTankType());
fillFluidInit(tanks[3].getTankType());
fillFluidInit(tanks[4].getTankType());
}
}
}
@ -70,12 +69,13 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl
tanks[1].setFill(tanks[1].getFill() - 200);
tanks[2].setFill(tanks[2].getFill() + left);
tanks[3].setFill(tanks[3].getFill() + right);
tanks[4].setFill(tanks[4].getFill() + 2); //LPS has the density of WATER not STEAM (1%!)
}
}
}
private boolean hasSpace(int left, int right) {
return tanks[2].getFill() + left <= tanks[2].getMaxFill() && tanks[3].getFill() + right <= tanks[3].getMaxFill();
return tanks[2].getFill() + left <= tanks[2].getMaxFill() && tanks[3].getFill() + right <= tanks[3].getMaxFill() && tanks[4].getFill() + 200 <= tanks[4].getMaxFill();
}
private void setupTanks() {
@ -86,11 +86,13 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl
tanks[1].setTankType(Fluids.STEAM);
tanks[2].setTankType(quart.getKey().type);
tanks[3].setTankType(quart.getValue().type);
tanks[4].setTankType(Fluids.SPENTSTEAM);
} else {
tanks[0].setTankType(Fluids.NONE);
tanks[1].setTankType(Fluids.NONE);
tanks[2].setTankType(Fluids.NONE);
tanks[3].setTankType(Fluids.NONE);
tanks[4].setTankType(Fluids.NONE);
}
}
@ -98,7 +100,7 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
for(int i = 0; i < 3; i++)
for(int i = 0; i < 5; i++)
tanks[i].readFromNBT(nbt, "tank" + i);
}
@ -106,13 +108,13 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
for(int i = 0; i < 3; i++)
for(int i = 0; i < 5; i++)
tanks[i].writeToNBT(nbt, "tank" + i);
}
@Override
public void setFillForSync(int fill, int index) {
if(index < 4 && tanks[index] != null)
if(index < 5 && tanks[index] != null)
tanks[index].setFill(fill);
}
@ -181,6 +183,7 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl
public List<IFluidAcceptor> getFluidList(FluidType type) {
if(type == tanks[2].getTankType()) return list1;
if(type == tanks[3].getTankType()) return list2;
if(type == tanks[4].getTankType()) return list3;
return new ArrayList<IFluidAcceptor>();
}
@ -188,6 +191,7 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl
public void clearFluidList(FluidType type) {
if(type == tanks[2].getTankType()) list1.clear();
if(type == tanks[3].getTankType()) list2.clear();
if(type == tanks[4].getTankType()) list3.clear();
}
AxisAlignedBB bb = null;

View File

@ -213,6 +213,14 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
}
}
@Override
public void markDirty() {
if(this.worldObj != null) {
this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this);
}
}
protected void coolPassively() {
if(ModEventHandler.fire > 0) {

View File

@ -152,7 +152,7 @@ public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT {
if(this.target != null && this.getPower() >= demand) {
EntityDamageUtil.attackEntityFromIgnoreIFrame(this.target, ModDamageSource.shrapnel, (this.blackLevel * 10 + this.redLevel + 1F) * 0.25F);
EntityDamageUtil.attackEntityFromIgnoreIFrame(this.target, ModDamageSource.microwave, (this.blackLevel * 10 + this.redLevel + 1F) * 0.25F);
if(pinkLevel > 0)
this.target.setFire(this.pinkLevel * 3);

View File

@ -349,6 +349,7 @@ death.attack.laser.item=%1$s wurde von %2$s mit %3$s zerbröselt.
death.attack.lead=%1$s starb an Bleivergiftung.
death.attack.lunar=%1$s vergaß lebenswichtige Organe aufzuladen.
death.attack.meteorite=%1$s wurde von einem fallenden Stein aus dem Weltall erschlagen.
death.attack.microwave=%1$s explodierte wegen Mikrowellenstrahlung.
death.attack.mku=%1$s starb aus unbekannten Gründen.
death.attack.monoxide=%1$s vergaß, die Batterien im Kohlenmonoxid-Detektor auszutauschen.
death.attack.mudPoisoning=%1$s starb an Giftschlamm.

View File

@ -521,6 +521,7 @@ death.attack.laser.item=%1$s was turned into ash by %2$s using %3$s.
death.attack.lead=%1$s died from lead poisoning.
death.attack.lunar=%1$s forgot to charge their vital organs.
death.attack.meteorite=%1$s was hit by a falling rock from outer space.
death.attack.microwave=%1$s was exploded by microwave radiation.
death.attack.mku=%1$s died from unknown causes.
death.attack.monoxide=%1$s forgot to change the batteries in their carbon monoxide detector.
death.attack.mudPoisoning=%1$s died in poisonous mud.

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB