generated from neoforged/MDK
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
dbb5799
commit 41b9078
Showing
9 changed files
with
136 additions
and
0 deletions.
There are no files selected for viewing
4 changes: 4 additions & 0 deletions
4
src/generated/resources/.cache/95bb3a2eea1b1ca79b1089cc135e8d6882c6b2ad
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
// 1.21 2024-08-08T05:47:34.865233 Global Loot Modifiers : tutorialmod | ||
60641db777c2d35cc872ccfc7cc7480e72559477 data/neoforge/loot_modifiers/global_loot_modifiers.json | ||
7c8fa841a46c131d5b9d58923260f8681ecbe5fd data/tutorialmod/loot_modifiers/example_item_from_igloo_chest.json | ||
a891e805643031c2b80b813521b72a35c95121b2 data/tutorialmod/loot_modifiers/example_item_from_iron_golem.json |
7 changes: 7 additions & 0 deletions
7
src/generated/resources/data/neoforge/loot_modifiers/global_loot_modifiers.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"entries": [ | ||
"tutorialmod:example_item_from_igloo_chest", | ||
"tutorialmod:example_item_from_iron_golem" | ||
], | ||
"replace": false | ||
} |
14 changes: 14 additions & 0 deletions
14
src/generated/resources/data/tutorialmod/loot_modifiers/example_item_from_igloo_chest.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
{ | ||
"type": "tutorialmod:add_item", | ||
"conditions": [ | ||
{ | ||
"condition": "neoforge:loot_table_id", | ||
"loot_table_id": "minecraft:chests/igloo_chest" | ||
}, | ||
{ | ||
"chance": 0.35, | ||
"condition": "minecraft:random_chance" | ||
} | ||
], | ||
"item": "tutorialmod:example_item" | ||
} |
10 changes: 10 additions & 0 deletions
10
src/generated/resources/data/tutorialmod/loot_modifiers/example_item_from_iron_golem.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"type": "tutorialmod:add_item", | ||
"conditions": [ | ||
{ | ||
"condition": "neoforge:loot_table_id", | ||
"loot_table_id": "minecraft:entities/iron_golem" | ||
} | ||
], | ||
"item": "tutorialmod:example_item" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
33 changes: 33 additions & 0 deletions
33
src/main/java/io/github/realyusufismail/data/loot/ModGlobalLootModifiersProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package io.github.realyusufismail.data.loot; | ||
|
||
import io.github.realyusufismail.TutorialMod; | ||
import io.github.realyusufismail.init.ItemInit; | ||
import io.github.realyusufismail.loot.AddItemModifier; | ||
import net.minecraft.core.HolderLookup; | ||
import net.minecraft.data.PackOutput; | ||
import net.minecraft.resources.ResourceLocation; | ||
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; | ||
import net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceCondition; | ||
import net.neoforged.neoforge.common.data.GlobalLootModifierProvider; | ||
import net.neoforged.neoforge.common.loot.LootTableIdCondition; | ||
|
||
import java.util.concurrent.CompletableFuture; | ||
|
||
// see https://github.com/Luohuayu/CatServer/blob/1c92118fcca69ffac97a48c8e1f6e1bb861b41d1/src/main/java/org/bukkit/loot/LootTables.java#L71 for some loot tables | ||
public class ModGlobalLootModifiersProvider extends GlobalLootModifierProvider { | ||
public ModGlobalLootModifiersProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) { | ||
super(output, registries, TutorialMod.MOD_ID); | ||
} | ||
|
||
@Override | ||
protected void start() { | ||
add("example_item_from_igloo_chest", new AddItemModifier(new LootItemCondition[]{ | ||
LootTableIdCondition.builder(ResourceLocation.parse("chests/igloo_chest")).build(), | ||
LootItemRandomChanceCondition.randomChance(0.35f).build()}, | ||
ItemInit.EXAMPLE_ITEM.get())); | ||
|
||
add("example_item_from_iron_golem", new AddItemModifier(new LootItemCondition[]{ | ||
LootTableIdCondition.builder(ResourceLocation.parse("entities/iron_golem")).build()}, | ||
ItemInit.EXAMPLE_ITEM.get())); | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
src/main/java/io/github/realyusufismail/init/LootModifierInit.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package io.github.realyusufismail.init; | ||
|
||
import com.mojang.serialization.MapCodec; | ||
import io.github.realyusufismail.TutorialMod; | ||
import io.github.realyusufismail.loot.AddItemModifier; | ||
import net.neoforged.neoforge.common.loot.IGlobalLootModifier; | ||
import net.neoforged.neoforge.registries.DeferredHolder; | ||
import net.neoforged.neoforge.registries.DeferredRegister; | ||
import net.neoforged.neoforge.registries.NeoForgeRegistries; | ||
|
||
public class LootModifierInit { | ||
public static DeferredRegister<MapCodec<? extends IGlobalLootModifier>> LOOT_MODIFIERS = DeferredRegister.create(NeoForgeRegistries.GLOBAL_LOOT_MODIFIER_SERIALIZERS, TutorialMod.MOD_ID); | ||
|
||
public static final DeferredHolder<MapCodec<? extends IGlobalLootModifier>, MapCodec<AddItemModifier>> ADD_ITEM_MODIFIER = LOOT_MODIFIERS.register("add_item", AddItemModifier.CODEC_SUPPLIER); | ||
} |
49 changes: 49 additions & 0 deletions
49
src/main/java/io/github/realyusufismail/loot/AddItemModifier.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
package io.github.realyusufismail.loot; | ||
|
||
import com.google.common.base.Suppliers; | ||
import com.mojang.serialization.MapCodec; | ||
import com.mojang.serialization.codecs.RecordCodecBuilder; | ||
import it.unimi.dsi.fastutil.objects.ObjectArrayList; | ||
import net.minecraft.core.registries.BuiltInRegistries; | ||
import net.minecraft.world.item.Item; | ||
import net.minecraft.world.item.ItemStack; | ||
import net.minecraft.world.level.storage.loot.LootContext; | ||
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; | ||
import net.neoforged.neoforge.common.loot.IGlobalLootModifier; | ||
import net.neoforged.neoforge.common.loot.LootModifier; | ||
import org.jetbrains.annotations.NotNull; | ||
|
||
import java.util.function.Supplier; | ||
|
||
public class AddItemModifier extends LootModifier { | ||
|
||
public static Supplier<MapCodec<AddItemModifier>> CODEC_SUPPLIER = Suppliers.memoize(() -> RecordCodecBuilder | ||
.mapCodec(instance -> AddItemModifier.codecStart(instance) | ||
.and(BuiltInRegistries.ITEM.byNameCodec().fieldOf("item") | ||
.forGetter(addItemModifierInstance -> addItemModifierInstance.item)) | ||
.apply(instance, AddItemModifier::new))); | ||
|
||
private final Item item; | ||
|
||
public AddItemModifier(LootItemCondition[] conditionsIn, Item item) { | ||
super(conditionsIn); | ||
this.item = item; | ||
} | ||
|
||
@Override | ||
protected @NotNull ObjectArrayList<ItemStack> doApply(ObjectArrayList<ItemStack> generatedLoot, LootContext context) { | ||
for (LootItemCondition condition : this.conditions) { | ||
if (!condition.test(context)) { | ||
return generatedLoot; | ||
} | ||
} | ||
|
||
generatedLoot.add(new ItemStack(this.item)); | ||
return generatedLoot; | ||
} | ||
|
||
@Override | ||
public MapCodec<? extends IGlobalLootModifier> codec() { | ||
return CODEC_SUPPLIER.get(); | ||
} | ||
} |