diff --git a/src/main/java/electroblob/wizardry/client/ClientProxy.java b/src/main/java/electroblob/wizardry/client/ClientProxy.java index 9b7b7e18..0ce0099f 100644 --- a/src/main/java/electroblob/wizardry/client/ClientProxy.java +++ b/src/main/java/electroblob/wizardry/client/ClientProxy.java @@ -785,6 +785,7 @@ public class ClientProxy extends CommonProxy { new ResourceLocation(Wizardry.MODID, "textures/entity/ice_lance.png"), false, 16.0, 3.0, 22, 5, false)); RenderingRegistry.registerEntityRenderingHandler(EntityFlamecatcherArrow.class, manager -> new RenderMagicArrow(manager, new ResourceLocation(Wizardry.MODID, "textures/entity/flamecatcher_arrow.png"), false, 8, 2.0, 16, 5, true)); + RenderingRegistry.registerEntityRenderingHandler(EntityConjuredArrow.class, RenderConjuredArrow::new); RenderingRegistry.registerEntityRenderingHandler(EntityForceArrow.class, RenderForceArrow::new); diff --git a/src/main/java/electroblob/wizardry/client/renderer/entity/RenderConjuredArrow.java b/src/main/java/electroblob/wizardry/client/renderer/entity/RenderConjuredArrow.java new file mode 100644 index 00000000..d69d3625 --- /dev/null +++ b/src/main/java/electroblob/wizardry/client/renderer/entity/RenderConjuredArrow.java @@ -0,0 +1,25 @@ +package electroblob.wizardry.client.renderer.entity; + +import electroblob.wizardry.Wizardry; +import electroblob.wizardry.entity.projectile.EntityConjuredArrow; +import net.minecraft.client.renderer.entity.RenderArrow; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class RenderConjuredArrow extends RenderArrow { + + public static final ResourceLocation CONJURED_ARROW_TEXTURE = new ResourceLocation(Wizardry.MODID, "textures/entity/conjured_arrow.png"); + + public RenderConjuredArrow(RenderManager manager) { + super(manager); + + } + + @Override + protected ResourceLocation getEntityTexture(EntityConjuredArrow entity) { + return CONJURED_ARROW_TEXTURE; + } +} diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityArrowRain.java b/src/main/java/electroblob/wizardry/entity/construct/EntityArrowRain.java index 98033d36..01343cf5 100644 --- a/src/main/java/electroblob/wizardry/entity/construct/EntityArrowRain.java +++ b/src/main/java/electroblob/wizardry/entity/construct/EntityArrowRain.java @@ -1,10 +1,8 @@ package electroblob.wizardry.entity.construct; +import electroblob.wizardry.entity.projectile.EntityConjuredArrow; import electroblob.wizardry.registry.Spells; import electroblob.wizardry.spell.Spell; -import net.minecraft.entity.projectile.EntityTippedArrow; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; @@ -30,7 +28,7 @@ public class EntityArrowRain extends EntityScaledConstruct { double y = posY + world.rand.nextDouble() * (double)height; double z = posZ + (world.rand.nextDouble() - 0.5D) * (double)width; - EntityTippedArrow arrow = new EntityTippedArrow(world, x, y, z); + EntityConjuredArrow arrow = new EntityConjuredArrow(world, x, y, z); arrow.motionX = MathHelper.cos((float)Math.toRadians(this.rotationYaw + 90)); arrow.motionY = -0.6; @@ -38,7 +36,6 @@ public class EntityArrowRain extends EntityScaledConstruct { arrow.shootingEntity = this.getCaster(); arrow.setDamage(7.0d * damageMultiplier); - arrow.setPotionEffect(new ItemStack(Items.ARROW)); this.world.spawnEntity(arrow); } diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityConjuredArrow.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityConjuredArrow.java new file mode 100644 index 00000000..e26e6de6 --- /dev/null +++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityConjuredArrow.java @@ -0,0 +1,34 @@ +package electroblob.wizardry.entity.projectile; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityConjuredArrow extends EntityArrow { + + public EntityConjuredArrow(World worldIn) { + super(worldIn); + } + + public EntityConjuredArrow(World worldIn, double x, double y, double z) { + super(worldIn, x, y, z); + } + + public EntityConjuredArrow(World worldIn, EntityLivingBase shooter) { + super(worldIn, shooter); + } + + @Override + public void onUpdate() { + super.onUpdate(); + if (this.timeInGround > 400) { + this.setDead(); + } + } + + @Override + protected ItemStack getArrowStack() { + return ItemStack.EMPTY; + } +} diff --git a/src/main/java/electroblob/wizardry/registry/WizardryEntities.java b/src/main/java/electroblob/wizardry/registry/WizardryEntities.java index d5568de0..25e7d9e6 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryEntities.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryEntities.java @@ -113,6 +113,7 @@ public class WizardryEntities { registry.register(createEntry(EntityDart.class, "dart", TrackingType.PROJECTILE).build()); registry.register(createEntry(EntityIceLance.class, "ice_lance", TrackingType.PROJECTILE).build()); registry.register(createEntry(EntityFlamecatcherArrow.class, "flamecatcher_arrow", TrackingType.PROJECTILE).build()); + registry.register(createEntry(EntityConjuredArrow.class, "conjured_arrow", TrackingType.PROJECTILE).build()); // Directionless projectiles registry.register(createEntry(EntityFirebomb.class, "firebomb", TrackingType.PROJECTILE).build()); diff --git a/src/main/resources/assets/ebwizardry/lang/en_us.lang b/src/main/resources/assets/ebwizardry/lang/en_us.lang index 01413326..6e8c8eeb 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_us.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_us.lang @@ -759,6 +759,7 @@ entity.ebwizardry\:smoke_bomb.name=Magic entity.ebwizardry\:ice_spike.name=Magic entity.ebwizardry\:combustion_rune.name=Magic entity.ebwizardry\:flamecatcher_arrow.name=Magic +entity.ebwizardry\:conjured_arrow.name=Magic entity.ebwizardry\:black_hole.name=Black Hole entity.ebwizardry\:shield.name=Shield diff --git a/src/main/resources/assets/ebwizardry/textures/entity/conjured_arrow.png b/src/main/resources/assets/ebwizardry/textures/entity/conjured_arrow.png new file mode 100644 index 00000000..27c3d784 Binary files /dev/null and b/src/main/resources/assets/ebwizardry/textures/entity/conjured_arrow.png differ diff --git a/src/main/resources/assets/ebwizardry/textures/spells/arrow_rain.png b/src/main/resources/assets/ebwizardry/textures/spells/arrow_rain.png index 9d1a0808..d139d3a4 100644 Binary files a/src/main/resources/assets/ebwizardry/textures/spells/arrow_rain.png and b/src/main/resources/assets/ebwizardry/textures/spells/arrow_rain.png differ