@@ -1,5 +1,6 @@
|
||||
package gamer.noir.curseenc
|
||||
|
||||
import gamer.noir.curseenc.effect.Effect
|
||||
import gamer.noir.curseenc.item.ModItems
|
||||
import net.fabricmc.api.ModInitializer
|
||||
import org.slf4j.LoggerFactory
|
||||
@@ -11,6 +12,7 @@ object CurseOfEienNoChi : ModInitializer {
|
||||
|
||||
override fun onInitialize() {
|
||||
ModItems.initialize()
|
||||
Effect.initialize()
|
||||
// This code runs as soon as Minecraft is in a mod-load-ready state.
|
||||
// However, some things (like resources) may still be uninitialized.
|
||||
// Proceed with mild caution.
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package gamer.noir.curseenc.effect
|
||||
|
||||
import net.minecraft.advancements.critereon.MobEffectsPredicate.Builder.effects
|
||||
import net.minecraft.core.Holder
|
||||
import net.minecraft.core.Registry
|
||||
import net.minecraft.core.registries.BuiltInRegistries
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.effect.MobEffect
|
||||
|
||||
|
||||
|
||||
|
||||
object Effect {
|
||||
val GARLIC_STATUS: Holder<MobEffect> = register(GarlicStatus,"garlic_status")
|
||||
|
||||
fun register(effect : MobEffect , id : String): Holder.Reference<MobEffect> {
|
||||
return Registry.registerForHolder(
|
||||
BuiltInRegistries.MOB_EFFECT,
|
||||
ResourceLocation.fromNamespaceAndPath("curseenc", id),
|
||||
effect
|
||||
);
|
||||
|
||||
}
|
||||
fun initialize() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package gamer.noir.curseenc.effect
|
||||
|
||||
import gamer.noir.curseenc.item.ModItems
|
||||
import net.fabricmc.api.ModInitializer
|
||||
import net.minecraft.core.registries.BuiltInRegistries
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.effect.MobEffect
|
||||
import net.minecraft.world.effect.MobEffectCategory
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
import net.minecraft.world.entity.player.Player
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.item.Items
|
||||
|
||||
|
||||
object GarlicStatus : MobEffect(MobEffectCategory.BENEFICIAL, 0xe9b8b3) {
|
||||
// Called every tick to check if the effect can be applied or not
|
||||
override fun shouldApplyEffectTickThisTick(duration: Int, amplifier: Int): Boolean {
|
||||
// In our case, we just make it return true so that it applies the effect every tick
|
||||
return true
|
||||
}
|
||||
|
||||
// Called when the effect is applied.
|
||||
override fun applyEffectTick(entity: LivingEntity, amplifier: Int): Boolean {
|
||||
if (entity is Player && entity.mainHandItem.`is`(Items.DIRT)){
|
||||
entity.inventory.add(ItemStack(ModItems.GARLIC)) // Higher amplifier gives you experience faster
|
||||
}
|
||||
|
||||
return super.applyEffectTick(entity, amplifier)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,15 +1,22 @@
|
||||
package gamer.noir.curseenc.item
|
||||
|
||||
import gamer.noir.curseenc.CurseOfEienNoChi
|
||||
import gamer.noir.curseenc.effect.Effect
|
||||
import gamer.noir.curseenc.effect.GarlicStatus
|
||||
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroupEntries
|
||||
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents
|
||||
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents.ModifyEntries
|
||||
import net.minecraft.core.Registry
|
||||
import net.minecraft.core.registries.BuiltInRegistries
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.effect.MobEffect
|
||||
import net.minecraft.world.effect.MobEffectInstance
|
||||
import net.minecraft.world.effect.MobEffects
|
||||
import net.minecraft.world.food.FoodProperties
|
||||
import net.minecraft.world.item.CreativeModeTabs
|
||||
import net.minecraft.world.item.Item
|
||||
|
||||
|
||||
object ModItems {
|
||||
fun register(item: Item, id: String): Item {
|
||||
// Create the identifier for the item.
|
||||
@@ -22,13 +29,21 @@ object ModItems {
|
||||
return registeredItem
|
||||
}
|
||||
|
||||
val GARLIC_FOOD: FoodProperties = FoodProperties.Builder()
|
||||
.alwaysEdible()
|
||||
.effect(MobEffectInstance(Effect.GARLIC_STATUS, 6 * 20, 0), 1.0f)
|
||||
.build()
|
||||
|
||||
val GARLIC: Item = register(
|
||||
Item(Item.Properties()),
|
||||
Item(Item.Properties().food(GARLIC_FOOD)),
|
||||
"garlic"
|
||||
)
|
||||
|
||||
fun initialize() {
|
||||
ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.INGREDIENTS)
|
||||
.register(ModifyEntries { entries: FabricItemGroupEntries? -> entries!!.accept(GARLIC) })
|
||||
.register(ModifyEntries { entries: FabricItemGroupEntries ->
|
||||
entries.accept(GARLIC)
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"item.CurseOfEienNoChi.garlic": "Garlic"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"item.curseenc.garlic": "Garlic",
|
||||
|
||||
|
||||
"effect.curseenc.garlic_status": "Garlic Status"
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "example-mod:item/garlic"
|
||||
"layer0": "curseenc:item/garlic"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 257 B After Width: | Height: | Size: 257 B |
Binary file not shown.
|
After Width: | Height: | Size: 257 B |
Reference in New Issue
Block a user