Skip to content

Commit dd52482

Browse files
committed
ichorium crown
1 parent f0792f3 commit dd52482

26 files changed

+145
-70
lines changed

Diff for: src/main/java/dev/sterner/mixin/ItemEntityMixin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package dev.sterner.mixin;
22

33
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
4-
import dev.sterner.common.item.tool.UpgradableTool;
4+
import dev.sterner.common.item.equipment.UpgradableTool;
55
import net.minecraft.world.entity.item.ItemEntity;
66
import net.minecraft.world.item.ItemStack;
77
import org.spongepowered.asm.mixin.Mixin;

Diff for: src/main/java/dev/sterner/mixin/ReboundEnchantmentMixin.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.llamalad7.mixinextras.sugar.Local;
44
import com.sammy.malum.common.enchantment.ReboundEnchantment;
5-
import dev.sterner.common.item.tool.ichor.IchoriumScytheItem;
5+
import dev.sterner.common.item.equipment.ichor.IchoriumEdge;
66
import dev.sterner.mixin_logic.ReboundEnchantmentMixinLogic;
77
import net.minecraft.server.level.ServerPlayer;
88
import net.minecraft.world.InteractionHand;
@@ -18,7 +18,7 @@ public class ReboundEnchantmentMixin {
1818
@Inject(method = "onRightClickItem", at = @At(value = "INVOKE", target = "Lcom/sammy/malum/common/entity/boomerang/ScytheBoomerangEntity;shootFromRotation(Lnet/minecraft/world/entity/Entity;FFFFF)V"))
1919
private static void voidbound$onRightClick(ServerPlayer player, InteractionHand interactionHand, ItemStack stack, CallbackInfoReturnable<Boolean> cir, @Local(ordinal = 0) float baseDamage, @Local(ordinal = 1) float magicDamage) {
2020

21-
if (stack.getItem() instanceof IchoriumScytheItem) {
21+
if (stack.getItem() instanceof IchoriumEdge) {
2222
ReboundEnchantmentMixinLogic.INSTANCE.logic(player, stack, baseDamage, magicDamage);
2323
}
2424
}
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package dev.sterner.mixin;
2+
3+
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
4+
import com.sammy.malum.MalumMod;
5+
import com.sammy.malum.core.handlers.SoulWardHandler;
6+
import dev.sterner.VoidBound;
7+
import dev.sterner.registry.VoidBoundItemRegistry;
8+
import net.minecraft.client.Minecraft;
9+
import net.minecraft.resources.ResourceLocation;
10+
import net.minecraft.world.entity.EquipmentSlot;
11+
import org.spongepowered.asm.mixin.Mixin;
12+
import org.spongepowered.asm.mixin.injection.At;
13+
14+
@Mixin(SoulWardHandler.ClientOnly.class)
15+
public class SoulWardHandlerMixin {
16+
17+
@ModifyReturnValue(method = "getSoulWardTexture", at = @At("RETURN"))
18+
private static ResourceLocation voidbound$modSoulWardTexture(ResourceLocation original){
19+
if (Minecraft.getInstance().player != null) {
20+
boolean bl = Minecraft.getInstance().player.getItemBySlot(EquipmentSlot.HEAD).is(VoidBoundItemRegistry.INSTANCE.getICHORIUM_CROWN().get());
21+
if (bl) {
22+
return VoidBound.INSTANCE.id("textures/gui/soul_ward/ichorium.png");
23+
}
24+
}
25+
return original;
26+
}
27+
}

Diff for: src/main/kotlin/dev/sterner/api/item/ItemAbility.kt

+12-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package dev.sterner.api.item
22

3-
import dev.sterner.common.item.tool.ichor.IchoriumScytheItem
4-
import dev.sterner.common.item.tool.ichor.IchoriumTerraformer
5-
import dev.sterner.common.item.tool.ichor.IchoriumVorpal
3+
import dev.sterner.common.item.equipment.ichor.IchoriumCrown
4+
import dev.sterner.common.item.equipment.ichor.IchoriumEdge
5+
import dev.sterner.common.item.equipment.ichor.IchoriumTerraformer
6+
import dev.sterner.common.item.equipment.ichor.IchoriumVorpal
67
import net.minecraft.nbt.CompoundTag
78
import net.minecraft.util.StringRepresentable
89
import net.minecraft.world.item.*
@@ -18,8 +19,8 @@ enum class ItemAbility: StringRepresentable {
1819
FINALE,//TODO implement. Consumes All stacks of Opening Strike, multiplying damage dealt by the amount of stacks total.
1920
TRIPLE_REBOUND,//TODO implement
2021
VENGEANCE,//TODO implement. Rebound now actively seeks the target who most recently attacked you, damage taken by the owner of the scythe extends it's flight time. Initial flight time greatly increased
21-
PROPAGATION;//TODO implement, Rebound causes a sweeping attack. Scythe Sweeping now propagates, spreading itself through hordes of enemies like a chain
22-
22+
PROPAGATION,//TODO implement, Rebound causes a sweeping attack. Scythe Sweeping now propagates, spreading itself through hordes of enemies like a chain
23+
SPIRIT_VISION; //TODO implement, hallowed goggles ability
2324

2425
override fun getSerializedName(): String {
2526
return this.name.lowercase()
@@ -47,12 +48,17 @@ enum class ItemAbility: StringRepresentable {
4748
if (item is IchoriumVorpal) {
4849
list.add(VAMPIRISM)
4950
list.add(OPENER)
51+
list.add(FINALE)
5052
list.add(HARVEST)
5153
}
52-
if (item is IchoriumScytheItem) {
54+
if (item is IchoriumEdge) {
5355
list.add(TRIPLE_REBOUND)
56+
list.add(VENGEANCE)
5457
list.add(PROPAGATION)
5558
}
59+
if (item is IchoriumCrown) {
60+
list.add(SPIRIT_VISION)
61+
}
5662

5763
return list
5864
}

Diff for: src/main/kotlin/dev/sterner/api/util/VoidBoundPlayerUtils.kt

+4-13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dev.sterner.api.util
22

3+
import dev.sterner.api.item.ItemAbility
34
import dev.sterner.registry.VoidBoundComponentRegistry
45
import dev.sterner.registry.VoidBoundItemRegistry
56
import net.minecraft.client.Minecraft
@@ -24,23 +25,13 @@ object VoidBoundPlayerUtils {
2425
.`is`(
2526
VoidBoundItemRegistry.HALLOWED_GOGGLES.get()
2627
)
27-
return bl || bl2
28+
val bl3 = VoidBoundItemUtils.getActiveAbility(player.mainHandItem) == ItemAbility.SPIRIT_VISION
29+
30+
return bl || bl2 || bl3
2831
}
2932
return false
3033
}
3134

32-
/**
33-
* Returns true if a player has the hallowed goggles or monocle equipped
34-
*/
35-
fun hasGoggles(player: Player): Boolean {
36-
val bl = TrinketsHelper.hasTrinketEquipped(player, VoidBoundItemRegistry.HALLOWED_MONOCLE.get())
37-
val bl2 = Minecraft.getInstance().player!!.getItemBySlot(EquipmentSlot.HEAD)
38-
.`is`(
39-
VoidBoundItemRegistry.HALLOWED_GOGGLES.get()
40-
)
41-
return bl || bl2
42-
}
43-
4435
/**
4536
* Returns false if the block being broken is warded by another player
4637
*/

Diff for: src/main/kotlin/dev/sterner/api/util/VoidBoundUtils.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.sammy.malum.core.systems.spirit.MalumSpiritType
66
import com.sammy.malum.registry.common.SpiritTypeRegistry
77
import com.sammy.malum.visual_effects.SpiritLightSpecs
88
import dev.sterner.VoidBound
9-
import dev.sterner.common.item.tool.UpgradableTool
9+
import dev.sterner.common.item.equipment.UpgradableTool
1010
import dev.sterner.listener.EnchantSpiritDataReloadListener
1111
import net.minecraft.ChatFormatting
1212
import net.minecraft.advancements.Advancement

Diff for: src/main/kotlin/dev/sterner/common/components/VoidBoundRevelationComponent.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class VoidBoundRevelationComponent(private val player: Player) : AutoSyncedCompo
1919
var unlockedItemAbilities = defaultAbilities()
2020

2121
private fun defaultAbilities(): MutableSet<ItemAbility> {
22-
return mutableSetOf(ItemAbility.NONE, ItemAbility.EXCAVATOR, ItemAbility.HARVEST, ItemAbility.SCORCHING_HEAT)
22+
return mutableSetOf(ItemAbility.NONE, ItemAbility.EXCAVATOR, ItemAbility.HARVEST, ItemAbility.SCORCHING_HEAT, ItemAbility.SPIRIT_VISION)
2323
}
2424

2525
fun addUnlockedItemAbility(ability: ItemAbility) {

Diff for: src/main/kotlin/dev/sterner/common/item/tool/CragbreakerItem.kt renamed to src/main/kotlin/dev/sterner/common/item/equipment/CragbreakerItem.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dev.sterner.common.item.tool
1+
package dev.sterner.common.item.equipment
22

33
import dev.sterner.api.item.HammerLikeItem
44
import dev.sterner.api.util.VoidBoundUtils

Diff for: src/main/kotlin/dev/sterner/common/item/tool/EarthsongItem.kt renamed to src/main/kotlin/dev/sterner/common/item/equipment/EarthsongItem.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dev.sterner.common.item.tool
1+
package dev.sterner.common.item.equipment
22

33
import dev.sterner.api.util.VoidBoundUtils
44
import net.minecraft.core.BlockPos

Diff for: src/main/kotlin/dev/sterner/common/item/tool/EarthsplitterItem.kt renamed to src/main/kotlin/dev/sterner/common/item/equipment/EarthsplitterItem.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dev.sterner.common.item.tool
1+
package dev.sterner.common.item.equipment
22

33
import dev.sterner.api.item.HammerLikeItem
44
import dev.sterner.api.util.VoidBoundUtils

Diff for: src/main/kotlin/dev/sterner/common/item/tool/GalesEdgeItem.kt renamed to src/main/kotlin/dev/sterner/common/item/equipment/GalesEdgeItem.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dev.sterner.common.item.tool
1+
package dev.sterner.common.item.equipment
22

33
import dev.sterner.api.util.VoidBoundUtils
44
import dev.sterner.registry.VoidBoundParticleTypeRegistry

Diff for: src/main/kotlin/dev/sterner/common/item/tool/TidecutterItem.kt renamed to src/main/kotlin/dev/sterner/common/item/equipment/TidecutterItem.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dev.sterner.common.item.tool
1+
package dev.sterner.common.item.equipment
22

33
import dev.sterner.api.util.VoidBoundBlockUtils
44
import dev.sterner.api.util.VoidBoundUtils

Diff for: src/main/kotlin/dev/sterner/common/item/tool/UpgradableTool.kt renamed to src/main/kotlin/dev/sterner/common/item/equipment/UpgradableTool.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dev.sterner.common.item.tool
1+
package dev.sterner.common.item.equipment
22

33
import net.minecraft.world.item.ItemStack
44

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package dev.sterner.common.item.equipment.ichor
2+
3+
import com.google.common.collect.ArrayListMultimap
4+
import com.google.common.collect.Multimap
5+
import com.sammy.malum.common.item.curiosities.armor.MalumArmorItem
6+
import com.sammy.malum.registry.common.AttributeRegistry
7+
import dev.sterner.registry.VoidBoundMaterials
8+
import net.minecraft.world.entity.ai.attributes.Attribute
9+
import net.minecraft.world.entity.ai.attributes.AttributeModifier
10+
import java.util.*
11+
12+
class IchoriumCrown(properties: Properties) : MalumArmorItem(
13+
VoidBoundMaterials.ICHORIUM, Type.HELMET,
14+
properties
15+
) {
16+
17+
override fun createExtraAttributes(type: Type?): Multimap<Attribute, AttributeModifier> {
18+
val attributes: Multimap<Attribute, AttributeModifier> = ArrayListMultimap.create()
19+
attributes.put(
20+
AttributeRegistry.SOUL_WARD_RECOVERY_RATE.get(),
21+
AttributeModifier(
22+
UUID.fromString("745DB17C-C613-495F-8C9F-6020A9A58B5B"),
23+
"Soul Ward Recovery Speed",
24+
3.0,
25+
AttributeModifier.Operation.ADDITION
26+
)
27+
)
28+
attributes.put(
29+
AttributeRegistry.SOUL_WARD_CAP.get(),
30+
AttributeModifier(
31+
UUID.fromString("545DB17C-C623-495F-8C9F-6010A9A58B5B"),
32+
"Speed",
33+
6.0,
34+
AttributeModifier.Operation.MULTIPLY_BASE
35+
)
36+
)
37+
return attributes
38+
}
39+
40+
override fun getTexture(): String {
41+
return "ichorium_layer_1"
42+
}
43+
44+
override fun getTextureLocation(): String {
45+
return "voidbound:textures/models/armor/"
46+
}
47+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package dev.sterner.common.item.equipment.ichor
2+
3+
import com.sammy.malum.common.item.curiosities.weapons.scythe.MagicScytheItem
4+
import net.minecraft.world.item.Tier
5+
6+
class IchoriumEdge(tier: Tier?, attackDamageIn: Float, attackSpeedIn: Float, builderIn: Properties?) :
7+
MagicScytheItem(
8+
tier,
9+
attackDamageIn + 3 + tier!!.attackDamageBonus,
10+
attackSpeedIn - 1.2f,
11+
4f,
12+
builderIn
13+
)

Diff for: src/main/kotlin/dev/sterner/common/item/tool/ichor/IchoriumTerraformer.kt renamed to src/main/kotlin/dev/sterner/common/item/equipment/ichor/IchoriumTerraformer.kt

+1-7
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
1-
package dev.sterner.common.item.tool.ichor
1+
package dev.sterner.common.item.equipment.ichor
22

33
import com.google.common.collect.ImmutableMultimap
44
import com.google.common.collect.Multimap
55
import dev.sterner.api.item.HammerLikeItem
6-
import dev.sterner.api.item.ItemAbility
7-
import dev.sterner.registry.VoidBoundComponentRegistry
86
import dev.sterner.registry.VoidBoundTiers
97
import net.minecraft.tags.BlockTags
108
import net.minecraft.tags.TagKey
11-
import net.minecraft.world.InteractionHand
12-
import net.minecraft.world.InteractionResultHolder
139
import net.minecraft.world.entity.EquipmentSlot
1410
import net.minecraft.world.entity.ai.attributes.Attribute
1511
import net.minecraft.world.entity.ai.attributes.AttributeModifier
16-
import net.minecraft.world.entity.player.Player
1712
import net.minecraft.world.item.AxeItem
1813
import net.minecraft.world.item.ItemStack
1914
import net.minecraft.world.item.Tier
20-
import net.minecraft.world.level.Level
2115
import net.minecraft.world.level.block.Block
2216
import net.minecraft.world.level.block.state.BlockState
2317
import team.lodestar.lodestone.registry.common.LodestoneAttributeRegistry

Diff for: src/main/kotlin/dev/sterner/common/item/tool/ichor/IchoriumVorpal.kt renamed to src/main/kotlin/dev/sterner/common/item/equipment/ichor/IchoriumVorpal.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
package dev.sterner.common.item.tool.ichor
1+
package dev.sterner.common.item.equipment.ichor
22

33
import com.mojang.datafixers.util.Pair
44
import dev.sterner.api.item.ItemAbility
55
import dev.sterner.api.util.VoidBoundItemUtils
6-
import dev.sterner.common.item.tool.GalesEdgeItem.Companion.ascend
6+
import dev.sterner.common.item.equipment.GalesEdgeItem.Companion.ascend
77
import dev.sterner.mixin.HoeItemTillablesAccessor
88
import net.minecraft.core.BlockPos
99
import net.minecraft.core.NonNullList
@@ -17,7 +17,6 @@ import net.minecraft.world.InteractionResult
1717
import net.minecraft.world.InteractionResultHolder
1818
import net.minecraft.world.entity.LivingEntity
1919
import net.minecraft.world.entity.player.Player
20-
import net.minecraft.world.item.HoeItem
2120
import net.minecraft.world.item.ItemStack
2221
import net.minecraft.world.item.Tier
2322
import net.minecraft.world.item.context.UseOnContext

Diff for: src/main/kotlin/dev/sterner/common/item/tool/ichor/IchoriumScytheItem.kt

-20
This file was deleted.

Diff for: src/main/kotlin/dev/sterner/registry/VoidBoundCreativeTabRegistry.kt

+1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ object VoidBoundCreativeTabRegistry {
6262
entries.accept(VoidBoundItemRegistry.TEAR_OF_CRIMSON.get())
6363
entries.accept(VoidBoundItemRegistry.TEAR_OF_ENDER.get())
6464
entries.accept(VoidBoundItemRegistry.ICHOR.get())
65+
entries.accept(VoidBoundItemRegistry.ICHORIUM_CROWN.get())
6566
entries.accept(VoidBoundItemRegistry.ICHORIUM_SCYTHE.get())
6667
entries.accept(VoidBoundItemRegistry.ICHORIUM_VORPAL.get())
6768
entries.accept(VoidBoundItemRegistry.ICHORIUM_TERRAFORMER.get())

Diff for: src/main/kotlin/dev/sterner/registry/VoidBoundEvents.kt

+2-6
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import dev.sterner.api.util.VoidBoundItemUtils
99
import dev.sterner.client.event.*
1010
import dev.sterner.common.components.VoidBoundPlayerComponent
1111
import dev.sterner.common.components.VoidBoundWorldComponent
12-
import dev.sterner.common.item.tool.TidecutterItem
13-
import dev.sterner.common.item.tool.UpgradableTool
12+
import dev.sterner.common.item.equipment.TidecutterItem
13+
import dev.sterner.common.item.equipment.UpgradableTool
1414
import io.github.fabricators_of_create.porting_lib.entity.events.living.LivingHurtEvent
1515
import io.github.fabricators_of_create.porting_lib.event.common.BlockEvents
1616
import net.fabricmc.api.EnvType
@@ -23,16 +23,12 @@ import net.fabricmc.fabric.api.event.player.UseEntityCallback
2323
import net.fabricmc.fabric.api.item.v1.ModifyItemAttributeModifiersCallback
2424
import net.minecraft.client.Minecraft
2525
import net.minecraft.client.gui.GuiGraphics
26-
import net.minecraft.server.level.ServerLevel
2726
import net.minecraft.world.entity.EquipmentSlot
2827
import net.minecraft.world.entity.ai.attributes.Attribute
2928
import net.minecraft.world.entity.ai.attributes.AttributeModifier
3029
import net.minecraft.world.entity.ai.attributes.Attributes
3130
import net.minecraft.world.entity.player.Player
3231
import net.minecraft.world.item.ItemStack
33-
import net.minecraft.world.item.crafting.RecipeType
34-
import net.minecraft.world.item.crafting.SmeltingRecipe
35-
import net.minecraft.world.level.block.Block
3632
import java.util.*
3733

3834

Diff for: src/main/kotlin/dev/sterner/registry/VoidBoundItemRegistry.kt

+7-3
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import dev.sterner.api.entity.GolemCore
66
import dev.sterner.common.blockentity.EldritchObeliskBlockEntity
77
import dev.sterner.common.item.*
88
import dev.sterner.common.item.focus.*
9-
import dev.sterner.common.item.tool.*
10-
import dev.sterner.common.item.tool.ichor.*
9+
import dev.sterner.common.item.equipment.*
10+
import dev.sterner.common.item.equipment.ichor.*
1111
import io.github.fabricators_of_create.porting_lib.util.LazyRegistrar
1212
import io.github.fabricators_of_create.porting_lib.util.RegistryObject
1313
import net.fabricmc.fabric.api.item.v1.FabricItemSettings
@@ -197,7 +197,11 @@ object VoidBoundItemRegistry {
197197
}
198198

199199
val ICHORIUM_SCYTHE: RegistryObject<Item> = ITEMS.register("ichorium_scythe") {
200-
IchoriumScytheItem(VoidBoundTiers.ICHORIUM, -2.5f, 2.1f, ichorProptery)
200+
IchoriumEdge(VoidBoundTiers.ICHORIUM, -2.5f, 2.1f, ichorProptery)
201+
}
202+
203+
val ICHORIUM_CROWN: RegistryObject<IchoriumCrown> = ITEMS.register("ichorium_crown") {
204+
IchoriumCrown(Item.Properties())
201205
}
202206

203207
val ichorProptery = FabricItemSettings().stacksTo(1).fireResistant().rarity(Rarity.RARE)

Diff for: src/main/kotlin/dev/sterner/registry/VoidBoundMaterials.kt

+9
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,15 @@ enum class VoidBoundMaterials(
3838
SoundEvents.ARMOR_EQUIP_GOLD,
3939
ItemRegistry.HALLOWED_GOLD_INGOT.get(),
4040
0.0f
41+
),
42+
ICHORIUM(
43+
"voidbound:ichorium",
44+
24,
45+
intArrayOf(4, 4, 4, 4),
46+
32,
47+
SoundEvents.ARMOR_EQUIP_GOLD,
48+
VoidBoundItemRegistry.ICHOR.get(),
49+
3.0f
4150
);
4251

4352
override fun getDurabilityForType(type: ArmorItem.Type): Int {

0 commit comments

Comments
 (0)