Several mimic fixes, with actually cleaned up commit history. (#1379)
* Reimplemented a lot of mimic logic and did a first run of changing how mimics store their states. * Finished removing all metadata calls for blocks replaced by mimics. * Update EntityMimic.java * Update ItemBlockMimic.java * Update TileMimic.java * How did I even replace a semicolon with a slash. * Changed all tabs to 4 spaces. Changed Serializer to StateUtil * Fixed spacing again, hopefully for the last time
This commit is contained in:
parent
7954d04421
commit
ebfd8ce9a3
6 changed files with 238 additions and 52 deletions
|
@ -4,6 +4,7 @@ import WayofTime.bloodmagic.block.BlockMimic;
|
|||
import WayofTime.bloodmagic.core.RegistrarBloodMagicBlocks;
|
||||
import WayofTime.bloodmagic.entity.ai.EntityAIMimicReform;
|
||||
import WayofTime.bloodmagic.tile.TileMimic;
|
||||
import WayofTime.bloodmagic.util.StateUtil;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
|
@ -12,6 +13,7 @@ import net.minecraft.entity.SharedMonsterAttributes;
|
|||
import net.minecraft.entity.ai.*;
|
||||
import net.minecraft.entity.monster.EntityIronGolem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.MobEffects;
|
||||
import net.minecraft.init.SoundEvents;
|
||||
import net.minecraft.inventory.EntityEquipmentSlot;
|
||||
|
@ -39,6 +41,7 @@ public class EntityMimic extends EntityDemonBase {
|
|||
public boolean dropItemsOnBreak = true;
|
||||
public NBTTagCompound tileTag = new NBTTagCompound();
|
||||
public int metaOfReplacedBlock = 0;
|
||||
public IBlockState stateOfReplacedBlock = Blocks.AIR.getDefaultState();
|
||||
public int playerCheckRadius = 5;
|
||||
|
||||
public EntityMimic(World worldIn) {
|
||||
|
@ -67,6 +70,7 @@ public class EntityMimic extends EntityDemonBase {
|
|||
tag.setTag("tileTag", tileTag);
|
||||
tag.setInteger("metaOfReplacedBlock", metaOfReplacedBlock);
|
||||
tag.setInteger("playerCheckRadius", playerCheckRadius);
|
||||
tag.setString("stateOfReplacedBlock", stateOfReplacedBlock.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -77,6 +81,7 @@ public class EntityMimic extends EntityDemonBase {
|
|||
tileTag = tag.getCompoundTag("tileTag");
|
||||
metaOfReplacedBlock = tag.getInteger("metaOfReplacedBlock");
|
||||
playerCheckRadius = tag.getInteger("playerCheckRadius");
|
||||
stateOfReplacedBlock = StateUtil.parseState(tag.getString("stateOfReplacedBlock"));
|
||||
}
|
||||
|
||||
public ItemStack getMimicItemStack() {
|
||||
|
@ -88,7 +93,7 @@ public class EntityMimic extends EntityDemonBase {
|
|||
}
|
||||
|
||||
public boolean spawnHeldBlockOnDeath(World world, BlockPos pos) {
|
||||
return world.isAirBlock(pos) && TileMimic.replaceMimicWithBlockActual(world, pos, getMimicItemStack(), tileTag, metaOfReplacedBlock);
|
||||
return world.isAirBlock(pos) && TileMimic.replaceMimicWithBlockActual(world, pos, getMimicItemStack(), tileTag, stateOfReplacedBlock);
|
||||
}
|
||||
|
||||
public boolean spawnMimicBlockAtPosition(World world, BlockPos pos) {
|
||||
|
@ -98,7 +103,7 @@ public class EntityMimic extends EntityDemonBase {
|
|||
TileEntity tile = world.getTileEntity(pos);
|
||||
if (tile instanceof TileMimic) {
|
||||
TileMimic mimic = (TileMimic) tile;
|
||||
mimic.metaOfReplacedBlock = metaOfReplacedBlock;
|
||||
mimic.setReplacedState(this.stateOfReplacedBlock);
|
||||
mimic.tileTag = tileTag;
|
||||
mimic.setInventorySlotContents(0, getMimicItemStack());
|
||||
mimic.dropItemsOnBreak = dropItemsOnBreak;
|
||||
|
@ -111,11 +116,11 @@ public class EntityMimic extends EntityDemonBase {
|
|||
return false;
|
||||
}
|
||||
|
||||
public void initializeMimic(ItemStack heldStack, NBTTagCompound tileTag, boolean dropItemsOnBreak, int metaOfReplacedBlock, int playerCheckRadius, BlockPos homePosition) {
|
||||
public void initializeMimic(ItemStack heldStack, NBTTagCompound tileTag, boolean dropItemsOnBreak, IBlockState stateOfReplacedBlock, int playerCheckRadius, BlockPos homePosition) {
|
||||
this.setMimicItemStack(heldStack);
|
||||
this.tileTag = tileTag;
|
||||
this.dropItemsOnBreak = dropItemsOnBreak;
|
||||
this.metaOfReplacedBlock = metaOfReplacedBlock;
|
||||
this.stateOfReplacedBlock = stateOfReplacedBlock;
|
||||
this.playerCheckRadius = playerCheckRadius;
|
||||
this.setHomePosAndDistance(homePosition, 2); //TODO: Save this.
|
||||
}
|
||||
|
@ -319,4 +324,4 @@ public class EntityMimic extends EntityDemonBase {
|
|||
super(spider, classTarget, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue