Skip to content

Commit

Permalink
Implement cultist sword
Browse files Browse the repository at this point in the history
  • Loading branch information
IcarussOne committed May 24, 2024
1 parent e46e638 commit d244939
Show file tree
Hide file tree
Showing 7 changed files with 91 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,24 @@
import com.google.common.base.Preconditions;
import com.mobiusflip.crimsonrevelations.CrimsonRevelations;
import com.mobiusflip.crimsonrevelations.entity.boss.EntityOvergrownTaintacle;
import com.mobiusflip.crimsonrevelations.item.ItemCR;
import com.mobiusflip.crimsonrevelations.item.ItemCRSword;

import net.minecraft.block.Block;
import net.minecraft.block.BlockDoor;
import net.minecraft.block.BlockSlab;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.entity.Entity;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.common.util.EnumHelper;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
Expand All @@ -42,12 +48,17 @@ public class RegistryHandler {
public static Item crimsonFabric;
@GameRegistry.ObjectHolder("crimson_plate")
public static Item crimsonPlate;
@GameRegistry.ObjectHolder("crimson_sword")
public static Item crimsonSword;

static ToolMaterial TOOL_CULTIST = EnumHelper.addToolMaterial("CULTIST", 3, 371, 7.5F, 2.5F, 20).setRepairItem(new ItemStack(crimsonPlate));

@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event) {
event.getRegistry().registerAll(
setup(new Item(), "crimson_fabric"),
setup(new Item(), "crimson_plate")
setup(new ItemCR(EnumRarity.UNCOMMON), "crimson_fabric"),
setup(new ItemCR(EnumRarity.UNCOMMON), "crimson_plate"),
setup(new ItemCRSword(TOOL_CULTIST, EnumRarity.UNCOMMON), "crimson_sword")
);
}

Expand Down
19 changes: 19 additions & 0 deletions src/main/java/com/mobiusflip/crimsonrevelations/item/ItemCR.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.mobiusflip.crimsonrevelations.item;

import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

public class ItemCR extends Item {
EnumRarity rarity;

public ItemCR(EnumRarity rarity) {
super();
this.rarity = rarity;
}

@Override
public EnumRarity getRarity(ItemStack stack) {
return rarity;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.mobiusflip.crimsonrevelations.item;

import com.mobiusflip.crimsonrevelations.init.RegistryHandler;

import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.MobEffects;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.potion.PotionEffect;

public class ItemCRSword extends ItemSword {
EnumRarity rarity;

public ItemCRSword(ToolMaterial material, EnumRarity rarity) {
super(material);
this.rarity = rarity;
}

@Override
public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) {
if (this == RegistryHandler.crimsonSword)
target.addPotionEffect(new PotionEffect(MobEffects.POISON, 6 * 20, 1));

stack.damageItem(1, attacker);
return true;
}

@Override
public EnumRarity getRarity(ItemStack stack) {
return rarity;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,14 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import net.minecraft.init.Items;
import com.mobiusflip.crimsonrevelations.init.RegistryHandler;

import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.MobEffects;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.DifficultyInstance;
import net.minecraft.world.World;
import thaumcraft.api.items.ItemsTC;
Expand Down Expand Up @@ -45,7 +50,19 @@ public void crSetLoot(DifficultyInstance diff, CallbackInfo ci) {
this.setItemStackToSlot(EntityEquipmentSlot.HEAD, ItemStack.EMPTY);
}
} else {
this.setHeldItem(this.getActiveHand(), new ItemStack(Items.IRON_SWORD));
this.setHeldItem(this.getActiveHand(), new ItemStack(RegistryHandler.crimsonSword));
}
}

@Override
public boolean attackEntityAsMob(Entity entityIn) {
boolean flag = super.attackEntityAsMob(entityIn);

// Poison while cultist sword is equipped
if (flag && this.getHeldItemMainhand().getItem() == RegistryHandler.crimsonSword && entityIn instanceof EntityLivingBase) {
((EntityLivingBase) entityIn).addPotionEffect(new PotionEffect(MobEffects.POISON, 6 * 20, 1));
}

return flag;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ entity.crimsonrevelations.overgrown_taintacle.name=Overgrown Taintacle

item.crimsonrevelations.crimson_fabric.name=Crimson Fabric
item.crimsonrevelations.crimson_plate.name=Crimson Plate
item.crimsonrevelations.crimson_sword.name=Crimson Cult Sword

tc.research_category.REVELATIONS=Revelations

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "item/handheld",
"textures": {
"layer0": "crimsonrevelations:items/crimson_sword"
}
}
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 d244939

Please sign in to comment.