@@ -1,5 +1,6 @@
|
|||||||
package gamer.noir.curseenc
|
package gamer.noir.curseenc
|
||||||
|
|
||||||
|
import gamer.noir.curseenc.effect.Effect
|
||||||
import gamer.noir.curseenc.item.ModItems
|
import gamer.noir.curseenc.item.ModItems
|
||||||
import net.fabricmc.api.ModInitializer
|
import net.fabricmc.api.ModInitializer
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
@@ -11,6 +12,7 @@ object CurseOfEienNoChi : ModInitializer {
|
|||||||
|
|
||||||
override fun onInitialize() {
|
override fun onInitialize() {
|
||||||
ModItems.initialize()
|
ModItems.initialize()
|
||||||
|
Effect.initialize()
|
||||||
// This code runs as soon as Minecraft is in a mod-load-ready state.
|
// This code runs as soon as Minecraft is in a mod-load-ready state.
|
||||||
// However, some things (like resources) may still be uninitialized.
|
// However, some things (like resources) may still be uninitialized.
|
||||||
// Proceed with mild caution.
|
// 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
|
package gamer.noir.curseenc.item
|
||||||
|
|
||||||
import gamer.noir.curseenc.CurseOfEienNoChi
|
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.FabricItemGroupEntries
|
||||||
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents
|
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents
|
||||||
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents.ModifyEntries
|
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents.ModifyEntries
|
||||||
import net.minecraft.core.Registry
|
import net.minecraft.core.Registry
|
||||||
import net.minecraft.core.registries.BuiltInRegistries
|
import net.minecraft.core.registries.BuiltInRegistries
|
||||||
import net.minecraft.resources.ResourceLocation
|
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.CreativeModeTabs
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
|
|
||||||
|
|
||||||
object ModItems {
|
object ModItems {
|
||||||
fun register(item: Item, id: String): Item {
|
fun register(item: Item, id: String): Item {
|
||||||
// Create the identifier for the item.
|
// Create the identifier for the item.
|
||||||
@@ -22,13 +29,21 @@ object ModItems {
|
|||||||
return registeredItem
|
return registeredItem
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val GARLIC_FOOD: FoodProperties = FoodProperties.Builder()
|
||||||
|
.alwaysEdible()
|
||||||
|
.effect(MobEffectInstance(Effect.GARLIC_STATUS, 6 * 20, 0), 1.0f)
|
||||||
|
.build()
|
||||||
|
|
||||||
val GARLIC: Item = register(
|
val GARLIC: Item = register(
|
||||||
Item(Item.Properties()),
|
Item(Item.Properties().food(GARLIC_FOOD)),
|
||||||
"garlic"
|
"garlic"
|
||||||
)
|
)
|
||||||
|
|
||||||
fun initialize() {
|
fun initialize() {
|
||||||
ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.INGREDIENTS)
|
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",
|
"parent": "item/generated",
|
||||||
"textures": {
|
"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