Skip to content

Commit

Permalink
immune fire and other
Browse files Browse the repository at this point in the history
  • Loading branch information
huige233 committed Apr 19, 2022
1 parent 103b550 commit 8159960
Show file tree
Hide file tree
Showing 10 changed files with 214 additions and 2 deletions.
15 changes: 15 additions & 0 deletions src/main/java/huige233/transcend/items/ItemBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,17 @@
import huige233.transcend.Main;
import huige233.transcend.init.ModItems;
import huige233.transcend.util.IHasModel;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public class ItemBase extends Item implements IHasModel {
public ItemBase(String name, CreativeTabs tab) {
Expand All @@ -21,6 +28,14 @@ public void registerModels() {
Main.proxy.registerItemRenderer(this, 0, "inventory");
}

public boolean hasCustomEntity(ItemStack stack) {
return true;
}

public Entity createEntity(World world,Entity location, ItemStack itemstack) {
return new fireimmune(world,location,itemstack);
}

public EnumRarity getRarity(ItemStack stack )
{
return(ModItems.COSMIC_RARITY);
Expand Down
14 changes: 13 additions & 1 deletion src/main/java/huige233/transcend/items/armor/ArmorBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import huige233.transcend.Main;
import huige233.transcend.compat.PsiCompat;
import huige233.transcend.init.ModItems;
import huige233.transcend.items.fireimmune;
import huige233.transcend.util.ArmorUtils;
import huige233.transcend.util.IHasModel;
import huige233.transcend.util.Reference;
Expand All @@ -15,12 +16,14 @@
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.NonNullList;
Expand All @@ -36,6 +39,7 @@
import org.jetbrains.annotations.NotNull;
import vazkii.psi.api.PsiAPI;

import javax.annotation.Nonnull;
import java.util.List;

@Mod.EventBusSubscriber(modid = Reference.MOD_ID)
Expand Down Expand Up @@ -67,7 +71,7 @@ public static void onPlayerDeath(LivingDeathEvent event) {
if (player.getHealth() <= 0) {
event.setCanceled(true);
float maxHP = player.getMaxHealth();
event.getEntityLiving().setHealth(maxHP);
event.getEntityLiving().setHealth(player.getMaxHealth());
}
}
}
Expand Down Expand Up @@ -148,6 +152,14 @@ private void fillModifiers(Multimap<String, AttributeModifier> attributes) {
attributes.put(SharedMonsterAttributes.MAX_HEALTH.getName(), new AttributeModifier( "transcend", 1000, 0).setSaved(false));
}

public boolean hasCustomEntity(ItemStack stack) {
return true;
}

public Entity createEntity(World world,Entity location, ItemStack itemstack) {
return new fireimmune(world,location,itemstack);
}

@SideOnly(Side.CLIENT)
public boolean hasEffect(@NotNull ItemStack stack) {
return (false);
Expand Down
64 changes: 64 additions & 0 deletions src/main/java/huige233/transcend/items/fireimmune.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package huige233.transcend.items;

import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import net.minecraftforge.event.entity.item.ItemExpireEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

import javax.annotation.Nonnull;

public class fireimmune extends EntityItem {
public fireimmune(World world, Entity location, ItemStack stack) {
this(world, location.posX, location.posY, location.posZ, stack);
this.setPickupDelay(20);
this.motionX = location.motionX;
this.motionY = location.motionY;
this.motionZ = location.motionZ;
this.setItem(stack);
}
public fireimmune(World world, double x, double y, double z, ItemStack itemstack) {
super(world, x, y, z, itemstack);
this.setItem(itemstack);
}

public fireimmune(World world, double x, double y, double z) {
super(world, x, y, z);
this.isImmuneToFire = true;
}

public fireimmune(World world) {
super(world);
isImmuneToFire = true;
}


protected void dealFireDamage(int damage) {
}

@Override
public boolean attackEntityFrom(@Nonnull DamageSource source, float amount) {
if (source.getDamageType().equals(DamageSource.OUT_OF_WORLD.damageType)) {
return true;
}
// prevent any damage besides out of world
return false;
}

public static class EventHandler {

public static final EventHandler instance = new EventHandler();

private EventHandler() {
}

@SubscribeEvent
public void onExpire(ItemExpireEvent event) {
if (event.getEntityItem() instanceof fireimmune) {
event.setCanceled(true);
}
}
}
}
21 changes: 21 additions & 0 deletions src/main/java/huige233/transcend/items/tools/ToolAxe.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,19 @@

import huige233.transcend.Main;
import huige233.transcend.init.ModItems;
import huige233.transcend.items.fireimmune;
import huige233.transcend.util.IHasModel;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemAxe;
import net.minecraft.item.ItemSpade;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;

import javax.annotation.Nonnull;

public class ToolAxe extends ItemAxe implements IHasModel {
public ToolAxe(String name, CreativeTabs tab, ToolMaterial material) {
Expand All @@ -20,4 +29,16 @@ public void registerModels() {
Main.proxy.registerItemRenderer(this, 0, "inventory");
}

public boolean hasCustomEntity(ItemStack stack) {
return true;
}

public Entity createEntity(World world,Entity location, ItemStack itemstack) {
return new fireimmune(world,location,itemstack);
}

public EnumRarity getRarity(ItemStack stack )
{
return(ModItems.COSMIC_RARITY);
}
}
21 changes: 21 additions & 0 deletions src/main/java/huige233/transcend/items/tools/ToolHoe.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,18 @@

import huige233.transcend.Main;
import huige233.transcend.init.ModItems;
import huige233.transcend.items.fireimmune;
import huige233.transcend.util.IHasModel;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemHoe;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;

import javax.annotation.Nonnull;

public class ToolHoe extends ItemHoe implements IHasModel {
public ToolHoe(String name, CreativeTabs tab, ToolMaterial material) {
Expand All @@ -19,4 +28,16 @@ public void registerModels() {
Main.proxy.registerItemRenderer(this, 0, "inventory");
}

public boolean hasCustomEntity(ItemStack stack) {
return true;
}

public Entity createEntity(World world,Entity location, ItemStack itemstack) {
return new fireimmune(world,location,itemstack);
}

public EnumRarity getRarity(ItemStack stack )
{
return(ModItems.COSMIC_RARITY);
}
}
39 changes: 39 additions & 0 deletions src/main/java/huige233/transcend/items/tools/ToolPickaxe.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,24 @@

import huige233.transcend.Main;
import huige233.transcend.init.ModItems;
import huige233.transcend.items.fireimmune;
import huige233.transcend.util.IHasModel;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Enchantments;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemPickaxe;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.world.World;

import javax.annotation.Nonnull;

public class ToolPickaxe extends ItemPickaxe implements IHasModel {
public ToolPickaxe(String name, CreativeTabs tab, ToolMaterial material) {
Expand All @@ -14,9 +29,33 @@ public ToolPickaxe(String name, CreativeTabs tab, ToolMaterial material) {
setCreativeTab(tab);
ModItems.ITEMS.add(this);
}

@Override
public void registerModels() {
Main.proxy.registerItemRenderer(this, 0, "inventory");
}

@Override
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
ItemStack stack = player.getHeldItem(hand);
// if (player.isSneaking()) {
if (EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, stack) < 10) {
stack.addEnchantment(Enchantments.FORTUNE, 10);
}
// }
return new ActionResult(EnumActionResult.SUCCESS, stack);
}

public boolean hasCustomEntity(ItemStack stack) {
return true;
}

public Entity createEntity(World world,Entity location, ItemStack itemstack) {
return new fireimmune(world,location,itemstack);
}

public EnumRarity getRarity(ItemStack stack )
{
return(ModItems.COSMIC_RARITY);
}
}
21 changes: 21 additions & 0 deletions src/main/java/huige233/transcend/items/tools/ToolShovel.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,18 @@

import huige233.transcend.Main;
import huige233.transcend.init.ModItems;
import huige233.transcend.items.fireimmune;
import huige233.transcend.util.IHasModel;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemSpade;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;

import javax.annotation.Nonnull;


public class ToolShovel extends ItemSpade implements IHasModel {
Expand All @@ -20,5 +29,17 @@ public void registerModels() {
Main.proxy.registerItemRenderer(this, 0, "inventory");
}

public boolean hasCustomEntity(ItemStack stack) {
return true;
}

public Entity createEntity(World world,Entity location, ItemStack itemstack) {
return new fireimmune(world,location,itemstack);
}

public EnumRarity getRarity(ItemStack stack )
{
return(ModItems.COSMIC_RARITY);
}
}

19 changes: 19 additions & 0 deletions src/main/java/huige233/transcend/items/tools/ToolSword.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,27 @@

import huige233.transcend.Main;
import huige233.transcend.init.ModItems;
import huige233.transcend.items.fireimmune;
import huige233.transcend.lib.TranscendDamageSources;
import huige233.transcend.util.ArmorUtils;
import huige233.transcend.util.IHasModel;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.item.ItemTool;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EntityDamageSource;
import net.minecraft.util.EnumHand;
import net.minecraft.world.World;

import javax.annotation.Nonnull;
import java.util.List;


Expand Down Expand Up @@ -52,6 +58,19 @@ public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingB
//target.onDeath(new EntityDamageSource("transcend",player));
return true;
}

public boolean hasCustomEntity(ItemStack stack) {
return true;
}

public Entity createEntity(World world,Entity location, ItemStack itemstack) {
return new fireimmune(world,location,itemstack);
}

public EnumRarity getRarity(ItemStack stack )
{
return(ModItems.COSMIC_RARITY);
}
}


Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import org.spongepowered.asm.mixin.injection.Inject;

@Mixin(value = AvaritiaEventHandler.class,remap = false)
public class MixinAvarOnDeath {
public abstract class MixinAvarOnDeath {


@Inject(method ="onDeath(Lnet/minecraftforge/event/entity/living/LivingDeathEvent;)V",at = @At("HEAD"),remap = false)
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 8159960

Please sign in to comment.