summaryrefslogtreecommitdiff
path: root/src/main/java/jp/plusplus/fbs/entity/EntityMagicDig.java
diff options
context:
space:
mode:
authorBenjamin Culkin <scorpress@gmail.com>2024-08-24 08:16:37 -0400
committerBenjamin Culkin <scorpress@gmail.com>2024-08-24 08:16:37 -0400
commit70c1354a4a96698758a88c032866288f79de6f5a (patch)
treeeca51294e84b90a4cb3230bc2c7900469e784184 /src/main/java/jp/plusplus/fbs/entity/EntityMagicDig.java
Initial commitHEADtrunk
Diffstat (limited to 'src/main/java/jp/plusplus/fbs/entity/EntityMagicDig.java')
-rw-r--r--src/main/java/jp/plusplus/fbs/entity/EntityMagicDig.java68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/main/java/jp/plusplus/fbs/entity/EntityMagicDig.java b/src/main/java/jp/plusplus/fbs/entity/EntityMagicDig.java
new file mode 100644
index 0000000..3b38d4a
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/entity/EntityMagicDig.java
@@ -0,0 +1,68 @@
+package jp.plusplus.fbs.entity;
+
+import cpw.mods.fml.common.FMLLog;
+import net.minecraft.block.Block;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.init.Blocks;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.world.World;
+
+/**
+ * Createdby pluslus_Fon 2015/06/07.
+ */
+public class EntityMagicDig extends EntityMagicProjectileBase {
+ protected int till;
+ protected boolean isPenetrate;
+
+ public EntityMagicDig(World p_i1582_1_) {
+ super(p_i1582_1_);
+ till=10;
+ }
+ public EntityMagicDig(World par1World, EntityLivingBase par2EntityLivingBase, float speed, float speed2, int till, boolean isPenetrate) {
+ super(par1World, par2EntityLivingBase, speed, speed2, 0, 0, 0);
+ this.till=10+till;
+ this.isPenetrate=isPenetrate;
+ }
+
+ @Override
+ protected void readEntityFromNBT(NBTTagCompound nbt) {
+ super.readEntityFromNBT(nbt);
+ isPenetrate=nbt.getBoolean("IsPenetrate");
+ till=nbt.getInteger("magicTill");
+ }
+ @Override
+ protected void writeEntityToNBT(NBTTagCompound nbt) {
+ super.writeEntityToNBT(nbt);
+ nbt.setBoolean("IsPenetrate", isPenetrate);
+ nbt.setInteger("magicTill", till);
+ }
+
+ public boolean canExist(){ return worldObj.isRemote || ticksExisted<till; }
+ public void onCollideWithBlock(MovingObjectPosition pos, Block block) {
+ if (!worldObj.isRemote) {
+ float h = block.getBlockHardness(worldObj, xTile, yTile, zTile);
+ if (h <= 30.0f && h != -1.0f){
+ worldObj.func_147480_a(xTile, yTile, zTile, true);
+ }
+ else{
+ setDead();
+ return;
+ }
+ }
+ if (isPenetrate) {
+ inTile = Blocks.air;
+ inData = 0;
+ } else {
+ setDead();
+ }
+ }
+
+ @Override
+ protected void setParticleColor(){
+ particleRed=0.5f+0.5f*rand.nextFloat();
+ particleGreen=0.25f+0.2f*rand.nextFloat();
+ particleBlue=0.2f*rand.nextFloat();
+ }
+}