demon core rotation, shackles, more digamma stuff, bismuth anvil

This commit is contained in:
Bob 2021-06-25 00:05:39 +02:00
parent c664293781
commit 01f8d02e8a
17 changed files with 134 additions and 49 deletions

View File

@ -890,6 +890,7 @@ public class ModBlocks {
public static Block anvil_meteorite;
public static Block anvil_starmetal;
public static Block anvil_ferrouranium;
public static Block anvil_bismuth;
public static Block anvil_schrabidate;
public static Block anvil_dnt;
public static Block anvil_murky;
@ -1793,8 +1794,9 @@ public class ModBlocks {
anvil_meteorite = new NTMAnvil(Material.iron, 3).setBlockName("anvil_meteorite").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_meteorite");
anvil_starmetal = new NTMAnvil(Material.iron, 3).setBlockName("anvil_starmetal").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_starmetal");
anvil_ferrouranium = new NTMAnvil(Material.iron, 4).setBlockName("anvil_ferrouranium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_ferrouranium");
anvil_schrabidate = new NTMAnvil(Material.iron, 5).setBlockName("anvil_schrabidate").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_schrabidate");
anvil_dnt = new NTMAnvil(Material.iron, 6).setBlockName("anvil_dnt").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_dnt");
anvil_bismuth = new NTMAnvil(Material.iron, 5).setBlockName("anvil_bismuth").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_bismuth");
anvil_schrabidate = new NTMAnvil(Material.iron, 6).setBlockName("anvil_schrabidate").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_schrabidate");
anvil_dnt = new NTMAnvil(Material.iron, 7).setBlockName("anvil_dnt").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_dnt");
anvil_murky = new NTMAnvil(Material.iron, 1916169).setBlockName("anvil_murky").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel");
machine_deaerator = new MachineDeaerator(Material.iron).setBlockName("machine_deaerator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_deaerator");
@ -2402,6 +2404,7 @@ public class ModBlocks {
GameRegistry.registerBlock(anvil_meteorite, ItemBlockAnvil.class, anvil_meteorite.getUnlocalizedName());
GameRegistry.registerBlock(anvil_starmetal, ItemBlockAnvil.class, anvil_starmetal.getUnlocalizedName());
GameRegistry.registerBlock(anvil_ferrouranium, ItemBlockAnvil.class, anvil_ferrouranium.getUnlocalizedName());
GameRegistry.registerBlock(anvil_bismuth, ItemBlockAnvil.class, anvil_bismuth.getUnlocalizedName());
GameRegistry.registerBlock(anvil_schrabidate, ItemBlockAnvil.class, anvil_schrabidate.getUnlocalizedName());
GameRegistry.registerBlock(anvil_dnt, ItemBlockAnvil.class, anvil_dnt.getUnlocalizedName());
GameRegistry.registerBlock(anvil_murky, ItemBlockAnvil.class, anvil_murky.getUnlocalizedName());

View File

@ -42,4 +42,9 @@ public class DemonLamp extends BlockContainer implements IItemHazard {
public boolean renderAsNormalBlock() {
return false;
}
@Override
public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) {
return side;
}
}

View File

@ -25,6 +25,7 @@ public class MobConfig {
public static int elementalDistance = 32;
public static boolean enableDucks = true;
public static boolean enableMobGear = true;
public static void loadFromConfig(Configuration config) {
@ -51,6 +52,6 @@ public class MobConfig {
elementalDistance = CommonConfig.createConfigInt(config, CATEGORY, "12.E04_elementalAttackDistance", "How far away elementals will spawn from the targeted player", 32);
enableDucks = CommonConfig.createConfigBool(config, CATEGORY, "12.D00_enableDucks", "Whether pressing O should allow the player to duck", true);
enableMobGear = CommonConfig.createConfigBool(config, CATEGORY, "12.D01_enableMobGear", "Whether zombies and skeletons should have additional gear when spawning", true);
}
}

View File

@ -32,10 +32,11 @@ public class EntityBlackHole extends Entity {
super(p_i1582_1_);
this.ignoreFrustumCheck = true;
this.isImmuneToFire = true;
this.noClip = true;
}
public EntityBlackHole(World world, float size) {
super(world);
this(world);
this.dataWatcher.updateObject(16, size);
}

View File

@ -78,7 +78,14 @@ public class ContainerAnvil extends Container {
ItemStack var5 = var4.getStack();
var3 = var5.copy();
if(par2 <= 2) {
if(par2 == 2) {
if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) {
return null;
}
var4.onSlotChange(var5, var3);
} else if(par2 <= 1) {
if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) {
return null;
} else {
@ -95,6 +102,8 @@ public class ContainerAnvil extends Container {
} else {
var4.onSlotChanged();
}
var4.onPickupFromSlot(p_82846_1_, var5);
}
return var3;

View File

@ -2051,6 +2051,7 @@ public class ModItems {
public static Item scrumpy;
public static Item wild_p;
public static Item fabsols_vodka;
public static Item shackles;
public static Item injector_5htp;
public static Item injector_knife;
public static Item medal_liquidator;
@ -3098,6 +3099,7 @@ public class ModItems {
scrumpy = new ItemModRevive(1).setUnlocalizedName("scrumpy").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":scrumpy");
wild_p = new ItemModRevive(3).setUnlocalizedName("wild_p").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":wild_p");
fabsols_vodka = new ItemModRevive(9999).setUnlocalizedName("fabsols_vodka").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":fabsols_vodka");
shackles = new ItemModShackles().setUnlocalizedName("shackles").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":shackles");
injector_5htp = new ItemModAuto().setUnlocalizedName("injector_5htp").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":injector_5htp");
injector_knife = new ItemModKnife().setUnlocalizedName("injector_knife").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":injector_knife");
medal_liquidator = new ItemModMedal().setUnlocalizedName("medal_liquidator").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":medal_liquidator");
@ -7081,6 +7083,7 @@ public class ModItems {
GameRegistry.registerItem(scrumpy, scrumpy.getUnlocalizedName());
GameRegistry.registerItem(wild_p, wild_p.getUnlocalizedName());
GameRegistry.registerItem(fabsols_vodka, fabsols_vodka.getUnlocalizedName());
GameRegistry.registerItem(shackles, shackles.getUnlocalizedName());
GameRegistry.registerItem(injector_5htp, injector_5htp.getUnlocalizedName());
GameRegistry.registerItem(injector_knife, injector_knife.getUnlocalizedName());

View File

@ -0,0 +1,35 @@
package com.hbm.items.armor;
import java.util.List;
import com.hbm.handler.ArmorModHandler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
public class ItemModShackles extends ItemArmorMod {
public ItemModShackles() {
super(ArmorModHandler.extra, false, false, true, false);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
list.add(EnumChatFormatting.RED + "You will speak when I ask you to.");
list.add(EnumChatFormatting.RED + "You will eat when I tell you to.");
list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "You will die when I allow you to.");
list.add("");
list.add(EnumChatFormatting.GOLD + "∞ revives left");
list.add("");
super.addInformation(stack, player, list, bool);
}
@Override
public void addDesc(List list, ItemStack stack, ItemStack armor) {
list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + " (∞ revives left)");
}
}

View File

@ -56,7 +56,7 @@ public class ItemDigamma extends ItemHazard {
public boolean onEntityItemUpdate(EntityItem entityItem) {
if(entityItem != null) {
if(entityItem.onGround) {
if(entityItem.onGround && !entityItem.worldObj.isRemote) {
if(WeaponConfig.dropSing) {
EntityQuasar bl = new EntityQuasar(entityItem.worldObj, 5F);

View File

@ -39,6 +39,7 @@ import com.hbm.items.ModItems;
import com.hbm.items.armor.ArmorFSB;
import com.hbm.items.armor.ItemArmorMod;
import com.hbm.items.armor.ItemModRevive;
import com.hbm.items.armor.ItemModShackles;
import com.hbm.items.special.ItemHot;
import com.hbm.items.weapon.ItemGunBase;
import com.hbm.lib.Library;
@ -171,10 +172,8 @@ public class ModEventHandler {
}
}
@SubscribeEvent
public void onEntityDeath(LivingDeathEvent event) {
HbmLivingProps.setRadiation(event.entityLiving, 0);
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void onEntityDeathFirst(LivingDeathEvent event) {
for(int i = 1; i < 5; i++) {
@ -184,24 +183,43 @@ public class ModEventHandler {
ItemStack revive = ArmorModHandler.pryMods(stack)[ArmorModHandler.extra];
if(revive != null && revive.getItem() instanceof ItemModRevive) {
if(revive != null) {
revive.setItemDamage(revive.getItemDamage() + 1);
if(revive.getItemDamage() >= revive.getMaxDamage()) {
ArmorModHandler.removeMod(stack, ArmorModHandler.extra);
} else {
ArmorModHandler.applyMod(stack, revive);
//Classic revive
if(revive.getItem() instanceof ItemModRevive) {
revive.setItemDamage(revive.getItemDamage() + 1);
if(revive.getItemDamage() >= revive.getMaxDamage()) {
ArmorModHandler.removeMod(stack, ArmorModHandler.extra);
} else {
ArmorModHandler.applyMod(stack, revive);
}
event.entityLiving.setHealth(event.entityLiving.getMaxHealth());
event.entityLiving.addPotionEffect(new PotionEffect(Potion.resistance.id, 60, 99));
event.setCanceled(true);
return;
}
event.entityLiving.setHealth(event.entityLiving.getMaxHealth());
event.entityLiving.addPotionEffect(new PotionEffect(Potion.resistance.id, 60, 99));
event.setCanceled(true);
return;
//Shackles
if(revive.getItem() instanceof ItemModShackles && HbmLivingProps.getRadiation(event.entityLiving) < 1000F) {
event.entityLiving.setHealth(event.entityLiving.getMaxHealth());
HbmLivingProps.incrementRadiation(event.entityLiving, Math.max(HbmLivingProps.getRadiation(event.entityLiving), 10F));
event.setCanceled(true);
return;
}
}
}
}
}
@SubscribeEvent
public void onEntityDeath(LivingDeathEvent event) {
HbmLivingProps.setRadiation(event.entityLiving, 0);
if(event.entity.worldObj.isRemote)
return;
@ -286,9 +304,12 @@ public class ModEventHandler {
}
@SubscribeEvent
public void spawnMob(LivingSpawnEvent event) {
public void decorateMob(LivingSpawnEvent event) {
EntityLivingBase entity = event.entityLiving;
World world = event.world;
if(!MobConfig.enableMobGear)
return;
if(entity instanceof EntityZombie) {
if(rand.nextInt(64) == 0)

View File

@ -21,7 +21,19 @@ public class RenderDemonLamp extends TileEntitySpecialRenderer {
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
GL11.glTranslated(x + 0.5D, y + 0.5D, z + 0.5D);
switch(tileEntity.getBlockMetadata()) {
case 0: GL11.glRotated(180, 1, 0, 0); break;
case 1: break;
case 2: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(180, 0, 0, 1); break;
case 3: GL11.glRotated(90, 1, 0, 0); break;
case 4: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(90, 0, 0, 1); break;
case 5: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(270, 0, 0, 1); break;
}
GL11.glTranslated(0, -0.5F, 0);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_CULL_FACE);

View File

@ -153,7 +153,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce
int load = recipe.fluidProduced;
if(load <= this.maxFill - this.currentFill && load < tank.getFill()) {
if(load <= this.maxFill - this.currentFill && load <= tank.getFill()) {
this.currentFill += load;
this.current = new ComparableStack(slots[0]).makeSingular();
tank.setFill(tank.getFill() - load);

View File

@ -31,6 +31,7 @@ import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
@ -258,8 +259,16 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
}
public void onMelt(int reduce) {
standardMelt(reduce);
if(this.getBlockMetadata() == RBMKBase.DIR_NORMAL_LID.ordinal() + RBMKBase.offset)
spawnDebris(DebrisType.LID);
}
protected void standardMelt(int reduce) {
/*reduce = MathHelper.clamp_int(reduce, 1, 3);
reduce = MathHelper.clamp_int(reduce, 1, RBMKDials.getColumnHeight(worldObj));
if(worldObj.rand.nextInt(3) == 0)
reduce++;
@ -269,13 +278,7 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
if(i <= 4 - reduce) {
if(reduce > 1 && i == 4 - reduce) {
if(worldObj.rand.nextInt(3) == 0) {
worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.corium_block);
} else {
worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.pribris_burning);
}
worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.pribris_burning);
} else {
worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.pribris);
}
@ -285,17 +288,6 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
}
worldObj.markBlockForUpdate(xCoord, yCoord + i, zCoord);
}
for(int i = 0; i < 2; i++) {
EntityRBMKDebris debris = new EntityRBMKDebris(worldObj, xCoord + 0.5D, yCoord + 4D, zCoord + 0.5D, DebrisType.values()[worldObj.rand.nextInt(DebrisType.values().length)]);
debris.motionX = worldObj.rand.nextGaussian() * 0.25D;
debris.motionZ = worldObj.rand.nextGaussian() * 0.25D;
debris.motionY = 1D + worldObj.rand.nextDouble();
worldObj.spawnEntityInWorld(debris);
}*/
if(this.getBlockMetadata() == RBMKBase.DIR_NORMAL_LID.ordinal() + RBMKBase.offset)
spawnDebris(DebrisType.LID);
}
protected void spawnDebris(DebrisType type) {
@ -319,6 +311,8 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
//assumes that !worldObj.isRemote
public void meltdown() {
RBMKBase.dropLids = false;
columns.clear();
getFF(xCoord, yCoord, zCoord);
@ -382,6 +376,8 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
MainRegistry.proxy.effectNT(data);
worldObj.playSoundEffect(avgX + 0.5, yCoord + 1, avgZ + 0.5, "hbm:block.rbmk_explosion", 50.0F, 1.0F);
RBMKBase.dropLids = true;
}
private void getFF(int x, int y, int z) {

View File

@ -1,7 +1,6 @@
package com.hbm.tileentity.machine.rbmk;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.machine.rbmk.RBMKBase;
import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType;
import cpw.mods.fml.relauncher.Side;
@ -93,8 +92,6 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase {
@Override
public void onMelt(int reduce) {
RBMKBase.dropLids = false;
reduce = MathHelper.clamp_int(reduce, 1, 3);
@ -123,8 +120,6 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase {
spawnDebris(DebrisType.ROD);
}
RBMKBase.dropLids = true;
//control rods will not spawn lid projectiles since the lid is already part of the rod projectiles
//super.onMelt(reduce);
}

View File

@ -2179,6 +2179,7 @@ item.seg_20.name=Größe 20 Bindeglied
item.serum.name=Serum
item.servo_set.name=Servo-Set
item.servo_set_desh.name=Deshservo-Set
item.shackles.name=Fußschellen
item.shimmer_axe.name=Shimmer Axe
item.shimmer_axe_head.name=Schwerer Axtkopf
item.shimmer_handle.name=Verstärketer Polymergriff
@ -2461,6 +2462,7 @@ tile.ams_base.name=AMS-Basis [WIP]
tile.ams_emitter.name=AMS-Emitter [WIP]
tile.ams_limiter.name=AMS-Stabilisator [WIP]
tile.ancient_scrap.name=Antikes Altmetall
tile.anvil_bismuth.name=Bismutamboss
tile.anvil_dnt.name=Dineutroniumamboss
tile.anvil_ferrouranium.name=Ferrouranamboss
tile.anvil_iron.name=Eisenamboss

View File

@ -734,7 +734,7 @@ item.battery_creative.name=Infinite Battery
item.battery_generic.name=Battery
item.battery_lithium.name=Lithium-Ion Battery
item.battery_lithium_cell.name=Lithium-Ion Power Cell
item.battery_lithium_cell_3.name=Tripple Lithium-Ion Power Cell
item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell
item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell
item.battery_potato.name=Potato Battery
item.battery_potatos.name=PotatOS
@ -2247,6 +2247,7 @@ item.seg_20.name=Size 20 Connector
item.serum.name=Serum
item.servo_set.name=Servo Set
item.servo_set_desh.name=Desh Servo Set
item.shackles.name=Shackles
item.shimmer_axe.name=Shimmer Axe
item.shimmer_axe_head.name=Heavy Axe Head
item.shimmer_handle.name=Reinforced Polymer Handle
@ -2529,6 +2530,7 @@ tile.ams_base.name=AMS Base [WIP]
tile.ams_emitter.name=AMS Emitter [WIP]
tile.ams_limiter.name=AMS Stabilizer [WIP]
tile.ancient_scrap.name=Ancient Scrap Metal
tile.anvil_bismuth.name=Bismuth Anvil
tile.anvil_dnt.name=Dineutronium Anvil
tile.anvil_ferrouranium.name=Ferrouranium Anvil
tile.anvil_iron.name=Iron Anvil

Binary file not shown.

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B