Add Copper Watering Can
This commit is contained in:
parent
fab7353e78
commit
d8720840f3
|
|
@ -1,6 +1,7 @@
|
|||
## Ex Deorum 4.0
|
||||
- Added Pale Oak Crucible, Sieve, Compressed Sieve, and Barrel
|
||||
- Added Creaking Core to turn Pale Oak Log into Creaking Heart
|
||||
- Added Copper Watering Can in parity with Vanilla's new copper tools
|
||||
- Added new Moss Block sieve drops:
|
||||
- Pale Oak Sapling now drops from all meshes
|
||||
- Bush now drops from Flint Mesh
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// 26.1.2 2026-05-15T13:35:45.55322574 ModKit Language: en_us for mod 'exdeorum'
|
||||
994c3e75819f30f5398e9ddf6b3ace1e04caccfc assets/exdeorum/lang/en_us.json
|
||||
// 26.1.2 2026-05-15T14:18:28.254105946 ModKit Language: en_us for mod 'exdeorum'
|
||||
b152b07fb635f093011eb25daea6d773eb07bf76 assets/exdeorum/lang/en_us.json
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// 26.1.2 2026-05-15T13:35:45.564024987 ModKit Recipes for mod 'exdeorum'
|
||||
// 26.1.2 2026-05-15T14:18:28.258585953 ModKit Recipes for mod 'exdeorum'
|
||||
0060d0e16dba2df44cc115f8ed68ef5dc52c74f1 data/exdeorum/advancement/recipes/building_blocks/andesite.json
|
||||
b9c5d12771d724cd646e637641da7a4d6b0a6bbf data/exdeorum/advancement/recipes/building_blocks/basalt.json
|
||||
d87a237248c140367dbfb748d45f532534e5b45c data/exdeorum/advancement/recipes/building_blocks/blackstone.json
|
||||
|
|
@ -205,6 +205,7 @@ fa317e0e8887b640978d7b3cf13a894c01918752 data/exdeorum/advancement/recipes/tools
|
|||
6da1d5298bda12a9b9037871e99d0ec6997b23cc data/exdeorum/advancement/recipes/tools/compressed_netherite_hammer.json
|
||||
6eccf976923f18bea6072818b804dae52e1588da data/exdeorum/advancement/recipes/tools/compressed_stone_hammer.json
|
||||
ca061bf2d0df36d7e73c3d115a7ee909eae5d978 data/exdeorum/advancement/recipes/tools/compressed_wooden_hammer.json
|
||||
d614acd345ba5d6ec095f116b0499079de2e1b7a data/exdeorum/advancement/recipes/tools/copper_watering_can.json
|
||||
3024e4883143c79e5ca1b787b1b6f882c31df9dd data/exdeorum/advancement/recipes/tools/crook.json
|
||||
5611c6255c467b58903146b6aa45c04b2333b6f5 data/exdeorum/advancement/recipes/tools/diamond_hammer.json
|
||||
e6a4a0f007a873628ad73e63fda13e5d41140343 data/exdeorum/advancement/recipes/tools/diamond_watering_can.json
|
||||
|
|
@ -1225,6 +1226,7 @@ f75f50de4e82c951d409cf2ee2c9ef36fb530681 data/exdeorum/recipe/compressed_stone_h
|
|||
a96c72e752d046013e08ad0647a4e1315edac0af data/exdeorum/recipe/cooked_silkworm_from_campfire_cooking.json
|
||||
0ac4b2838492d19d35923e15c6fd6e09d2fa1667 data/exdeorum/recipe/cooked_silkworm_from_smoking.json
|
||||
65684fe56a6af62a689c2b13844cc27cefaafeb9 data/exdeorum/recipe/copper_ore.json
|
||||
ee0a2755375533b3b246d643adcb6d0b00c1f291 data/exdeorum/recipe/copper_watering_can.json
|
||||
9e43f8e85af0e75617f824566b580f3f731c7c05 data/exdeorum/recipe/creaking_core.json
|
||||
cceee6f7baeb4725a3ac6568f869f9724e2a21b9 data/exdeorum/recipe/crimson_barrel.json
|
||||
f7caaff7a9c182901eaff290b6d61382efa279bb data/exdeorum/recipe/crimson_compressed_sieve.json
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// 26.1.2 2026-05-15T13:35:45.554995054 ModKit Item Models for mod 'exdeorum'
|
||||
// 26.1.2 2026-05-15T14:18:28.254818863 ModKit Item Models for mod 'exdeorum'
|
||||
8cfb1fdb327d53288205eb62b8b7857eafa2a091 assets/exdeorum/items/acacia_barrel.json
|
||||
8c5b35194de98a2325ed84334623e72596e50b0f assets/exdeorum/items/acacia_compressed_sieve.json
|
||||
930e698609436fdf71a3ab0b738f7566adfe15c7 assets/exdeorum/items/acacia_crucible.json
|
||||
|
|
@ -63,6 +63,7 @@ e6d96fa05cd3c8ebaa5f2e0d3e67ba04f203b741 assets/exdeorum/items/compressed_stone_
|
|||
f1cd9e3ce836021d8e435bc206fc8e62c242a615 assets/exdeorum/items/compressed_wooden_hammer.json
|
||||
52de2263e21e688edae120e80bac0f15a95397c9 assets/exdeorum/items/cooked_silkworm.json
|
||||
1d5add85d17aa829a184d469690e654f9fdbf5ef assets/exdeorum/items/copper_ore_chunk.json
|
||||
fa738eef9f6a69809026ec7523f75a96d041c571 assets/exdeorum/items/copper_watering_can.json
|
||||
e109bde87167aec1b6cf7d5d6c1ca50824f974c2 assets/exdeorum/items/creaking_core.json
|
||||
535f3bf29763fe534df092396589e75f41ff25bd assets/exdeorum/items/crimson_barrel.json
|
||||
2ea9c91eacc0413d3ba0794bef229f502d076eb0 assets/exdeorum/items/crimson_compressed_sieve.json
|
||||
|
|
@ -303,6 +304,7 @@ fa43f2736b5d430be09a4040699d50f4716422d0 assets/exdeorum/models/item/compressed_
|
|||
8ee0cde55fd9244eff5b9ed65e8027ba89362c03 assets/exdeorum/models/item/compressed_wooden_hammer.json
|
||||
2738250c8aaede17c32c2df28612bfd70145a158 assets/exdeorum/models/item/cooked_silkworm.json
|
||||
f611abadb3d337ab6a40255116e974e6f5b6edf2 assets/exdeorum/models/item/copper_ore_chunk.json
|
||||
37ed28bbc7ef4bb58d972a1cdc98dc1c936b8682 assets/exdeorum/models/item/copper_watering_can.json
|
||||
9303141f016767327bc7e8de59fa58bc26529a05 assets/exdeorum/models/item/creaking_core.json
|
||||
d6109df4904776aca591e7dfc8ee8da50664e1df assets/exdeorum/models/item/crimson_barrel.json
|
||||
b240f3070b3c93e54ddbf02bf2c3f6876a28a4bc assets/exdeorum/models/item/crimson_compressed_sieve.json
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "exdeorum:item/copper_watering_can"
|
||||
}
|
||||
}
|
||||
|
|
@ -301,6 +301,7 @@
|
|||
"item.exdeorum.compressed_wooden_hammer": "Compressed Wooden Hammer",
|
||||
"item.exdeorum.cooked_silkworm": "Cooked Silkworm",
|
||||
"item.exdeorum.copper_ore_chunk": "Copper Ore Chunk",
|
||||
"item.exdeorum.copper_watering_can": "Copper Watering Can",
|
||||
"item.exdeorum.creaking_core": "Creaking Core",
|
||||
"item.exdeorum.crimson_barrel": "Crimson Barrel",
|
||||
"item.exdeorum.crimson_compressed_sieve": "Crimson Compressed Sieve",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "exdeorum:item/copper_watering_can"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"criteria": {
|
||||
"has_item": {
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": "#c:ingots/copper"
|
||||
}
|
||||
]
|
||||
},
|
||||
"trigger": "minecraft:inventory_changed"
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"conditions": {
|
||||
"recipe": "exdeorum:copper_watering_can"
|
||||
},
|
||||
"trigger": "minecraft:recipe_unlocked"
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_the_recipe",
|
||||
"has_item"
|
||||
]
|
||||
],
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"exdeorum:copper_watering_can"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "equipment",
|
||||
"key": {
|
||||
"#": "#c:ingots/copper",
|
||||
"B": "minecraft:bowl"
|
||||
},
|
||||
"pattern": [
|
||||
"# ",
|
||||
"#B#",
|
||||
" # "
|
||||
],
|
||||
"result": {
|
||||
"id": "exdeorum:copper_watering_can"
|
||||
}
|
||||
}
|
||||
|
|
@ -26,12 +26,14 @@ import net.minecraft.client.resources.model.sprite.Material;
|
|||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.server.packs.resources.ResourceManagerReloadListener;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.levelgen.presets.WorldPreset;
|
||||
import net.neoforged.bus.api.IEventBus;
|
||||
import net.neoforged.fml.event.config.ModConfigEvent;
|
||||
import net.neoforged.neoforge.client.event.*;
|
||||
import net.neoforged.neoforge.client.extensions.common.RegisterClientExtensionsEvent;
|
||||
import net.neoforged.neoforge.common.NeoForge;
|
||||
import net.neoforged.neoforge.registries.DeferredItem;
|
||||
import net.neoforged.neoforge.server.ServerLifecycleHooks;
|
||||
import thedarkcolour.exdeorum.ExDeorum;
|
||||
import thedarkcolour.exdeorum.asm.ASMHooks;
|
||||
|
|
@ -69,14 +71,7 @@ public class ClientHandler {
|
|||
|
||||
private static void registerClientExtensions(RegisterClientExtensionsEvent event) {
|
||||
event.registerFluidType(new WitchWaterFluid.ClientExtensions(), EFluids.WITCH_WATER_TYPE.get());
|
||||
event.registerItem(new WateringCanItem.ClientExtensions(),
|
||||
EItems.WOODEN_WATERING_CAN.get(),
|
||||
EItems.STONE_WATERING_CAN.get(),
|
||||
EItems.IRON_WATERING_CAN.get(),
|
||||
EItems.GOLDEN_WATERING_CAN.get(),
|
||||
EItems.DIAMOND_WATERING_CAN.get(),
|
||||
EItems.NETHERITE_WATERING_CAN.get()
|
||||
);
|
||||
event.registerItem(new WateringCanItem.ClientExtensions(), EItems.WATERING_CANS.stream().map(DeferredItem::asItem).toArray(Item[]::new));
|
||||
}
|
||||
|
||||
private static void registerFluidModels(RegisterFluidModelsEvent event) {
|
||||
|
|
@ -93,7 +88,7 @@ public class ClientHandler {
|
|||
}
|
||||
|
||||
private static void addClientReloadListeners(AddClientReloadListenersEvent event) {
|
||||
event.addListener(ExDeorum.loc("render_util"), (ResourceManagerReloadListener) resourceManager -> RenderUtil.reload());
|
||||
event.addListener(ExDeorum.loc("render_util"), (ResourceManagerReloadListener) _ -> RenderUtil.reload());
|
||||
}
|
||||
|
||||
private static void registerMenuScreens(RegisterMenuScreensEvent event) {
|
||||
|
|
@ -120,11 +115,11 @@ public class ClientHandler {
|
|||
private static void registerRenderers(EntityRenderersEvent.RegisterRenderers event) {
|
||||
event.registerBlockEntityRenderer(EBlockEntities.INFESTED_LEAVES.get(), InfestedLeavesRenderer::new);
|
||||
event.registerBlockEntityRenderer(EBlockEntities.BARREL.get(), BarrelRenderer::new);
|
||||
event.registerBlockEntityRenderer(EBlockEntities.LAVA_CRUCIBLE.get(), ctx -> new CrucibleRenderer());
|
||||
event.registerBlockEntityRenderer(EBlockEntities.WATER_CRUCIBLE.get(), ctx -> new CrucibleRenderer());
|
||||
event.registerBlockEntityRenderer(EBlockEntities.SIEVE.get(), ctx -> new SieveRenderer<>(0.75f, 15f));
|
||||
event.registerBlockEntityRenderer(EBlockEntities.MECHANICAL_SIEVE.get(), ctx -> new SieveRenderer<>(0.75f, 15f));
|
||||
event.registerBlockEntityRenderer(EBlockEntities.COMPRESSED_SIEVE.get(), ctx -> new CompressedSieveRenderer<>(0.5625f, 16f));
|
||||
event.registerBlockEntityRenderer(EBlockEntities.LAVA_CRUCIBLE.get(), _ -> new CrucibleRenderer());
|
||||
event.registerBlockEntityRenderer(EBlockEntities.WATER_CRUCIBLE.get(), _ -> new CrucibleRenderer());
|
||||
event.registerBlockEntityRenderer(EBlockEntities.SIEVE.get(), _ -> new SieveRenderer<>(0.75f, 15f));
|
||||
event.registerBlockEntityRenderer(EBlockEntities.MECHANICAL_SIEVE.get(), _ -> new SieveRenderer<>(0.75f, 15f));
|
||||
event.registerBlockEntityRenderer(EBlockEntities.COMPRESSED_SIEVE.get(), _ -> new CompressedSieveRenderer<>(0.5625f, 16f));
|
||||
}
|
||||
|
||||
// Sets Ex Deorum world type as default
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ public class ExDeorumJeiPlugin implements IModPlugin {
|
|||
registration.addItemStackInfo(List.of(new ItemStack(EItems.INFESTED_LEAVES.get()), new ItemStack(EItems.SILKWORM.get())), Component.translatable(TranslationKeys.SILK_WORM_JEI_INFO));
|
||||
registration.addItemStackInfo(CompatUtil.getAvailableSieves(true, false).stream().map(ItemStack::new).toList(), Component.translatable(TranslationKeys.SIEVE_JEI_INFO));
|
||||
registration.addItemStackInfo(List.of(new ItemStack(EItems.STRING_MESH.get()), new ItemStack(EItems.STRING_MESH.get()), new ItemStack(EItems.FLINT_MESH.get()), new ItemStack(EItems.IRON_MESH.get()), new ItemStack(EItems.GOLDEN_MESH.get()), new ItemStack(EItems.DIAMOND_MESH.get()), new ItemStack(EItems.NETHERITE_MESH.get())), Component.translatable(TranslationKeys.SIEVE_MESH_JEI_INFO));
|
||||
registration.addItemStackInfo(List.of(WateringCanItem.getFull(EItems.WOODEN_WATERING_CAN), WateringCanItem.getFull(EItems.STONE_WATERING_CAN), WateringCanItem.getFull(EItems.IRON_WATERING_CAN), WateringCanItem.getFull(EItems.GOLDEN_WATERING_CAN), WateringCanItem.getFull(EItems.DIAMOND_WATERING_CAN), WateringCanItem.getFull(EItems.NETHERITE_WATERING_CAN)), Component.translatable(TranslationKeys.WATERING_CAN_JEI_INFO));
|
||||
registration.addItemStackInfo(EItems.WATERING_CANS.stream().map(WateringCanItem::getFull).toList(), Component.translatable(TranslationKeys.WATERING_CAN_JEI_INFO));
|
||||
var witchWaterInfo = Component.translatable(TranslationKeys.WITCH_WATER_JEI_INFO);
|
||||
registration.addItemStackInfo(List.of(new ItemStack(EItems.WITCH_WATER_BUCKET.get()), new ItemStack(EItems.PORCELAIN_WITCH_WATER_BUCKET.get())), witchWaterInfo);
|
||||
registration.addIngredientInfo(new FluidStack(EFluids.WITCH_WATER.get(), 1000), NeoForgeTypes.FLUID_STACK, witchWaterInfo);
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ class ItemModels {
|
|||
|
||||
models.handheld(EItems.WOODEN_WATERING_CAN);
|
||||
models.handheld(EItems.STONE_WATERING_CAN);
|
||||
models.handheld(EItems.COPPER_WATERING_CAN);
|
||||
models.handheld(EItems.IRON_WATERING_CAN);
|
||||
models.handheld(EItems.GOLDEN_WATERING_CAN);
|
||||
models.handheld(EItems.DIAMOND_WATERING_CAN);
|
||||
|
|
|
|||
|
|
@ -346,6 +346,7 @@ public class Recipes {
|
|||
// Watering cans
|
||||
wateringCan(recipes, EItems.WOODEN_WATERING_CAN, recipes.ingredient(ItemTags.PLANKS));
|
||||
wateringCan(recipes, EItems.STONE_WATERING_CAN, recipes.ingredient(ItemTags.STONE_TOOL_MATERIALS));
|
||||
wateringCan(recipes, EItems.COPPER_WATERING_CAN, recipes.ingredient(Tags.Items.INGOTS_COPPER));
|
||||
wateringCan(recipes, EItems.IRON_WATERING_CAN, recipes.ingredient(Tags.Items.INGOTS_IRON));
|
||||
wateringCan(recipes, EItems.GOLDEN_WATERING_CAN, recipes.ingredient(Tags.Items.INGOTS_GOLD));
|
||||
wateringCan(recipes, EItems.DIAMOND_WATERING_CAN, recipes.ingredient(Tags.Items.GEMS_DIAMOND));
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import net.minecraft.util.Unit;
|
|||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.crafting.RecipeType;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
import net.minecraft.world.level.gamerules.GameRules;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
|
@ -283,18 +284,12 @@ public final class EventHandler {
|
|||
event.registerBlockEntity(Capabilities.Item.BLOCK, EBlockEntities.WATER_CRUCIBLE.get(), (crucible, direction) -> new LegacyItemHandlerTransfer(crucible.getItem()));
|
||||
event.registerBlockEntity(Capabilities.Fluid.BLOCK, EBlockEntities.WATER_CRUCIBLE.get(), (crucible, direction) -> new LegacyFluidTankTransfer(crucible.getTank()));
|
||||
|
||||
event.registerItem(Capabilities.Fluid.ITEM, (stack, ctx) -> ctx == null ? null : new LegacyFluidItemAccessTransfer(ctx, PorcelainBucket.ItemHandler::new),
|
||||
event.registerItem(Capabilities.Fluid.ITEM, (_, ctx) -> new LegacyFluidItemAccessTransfer(ctx, PorcelainBucket.ItemHandler::new),
|
||||
EItems.PORCELAIN_BUCKET,
|
||||
EItems.PORCELAIN_WATER_BUCKET,
|
||||
EItems.PORCELAIN_LAVA_BUCKET,
|
||||
EItems.PORCELAIN_MILK_BUCKET,
|
||||
EItems.PORCELAIN_WITCH_WATER_BUCKET);
|
||||
event.registerItem(Capabilities.Fluid.ITEM, (stack, ctx) -> ctx == null ? null : new LegacyFluidItemAccessTransfer(ctx, WateringCanItem.FluidHandler::new),
|
||||
EItems.WOODEN_WATERING_CAN,
|
||||
EItems.STONE_WATERING_CAN,
|
||||
EItems.IRON_WATERING_CAN,
|
||||
EItems.GOLDEN_WATERING_CAN,
|
||||
EItems.DIAMOND_WATERING_CAN,
|
||||
EItems.NETHERITE_WATERING_CAN);
|
||||
event.registerItem(Capabilities.Fluid.ITEM, (_, ctx) -> new LegacyFluidItemAccessTransfer(ctx, WateringCanItem.FluidHandler::new), EItems.WATERING_CANS.toArray(ItemLike[]::new));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ public class EItems {
|
|||
// Watering cans
|
||||
public static final DeferredItem<Item> WOODEN_WATERING_CAN = register("wooden_watering_can", properties -> new WateringCanItem(300, properties.stacksTo(1)));
|
||||
public static final DeferredItem<Item> STONE_WATERING_CAN = register("stone_watering_can", properties -> new WateringCanItem(1000, properties.stacksTo(1)));
|
||||
public static final DeferredItem<Item> COPPER_WATERING_CAN = register("copper_watering_can", properties -> new WateringCanItem(2000, properties.stacksTo(1)));
|
||||
public static final DeferredItem<Item> IRON_WATERING_CAN = register("iron_watering_can", properties -> new WateringCanItem(2000, properties.stacksTo(1)));
|
||||
public static final DeferredItem<Item> GOLDEN_WATERING_CAN = register("golden_watering_can", properties -> new WateringCanItem(4000, properties.stacksTo(1)));
|
||||
public static final DeferredItem<Item> DIAMOND_WATERING_CAN = register("diamond_watering_can", properties -> new WideWateringCanItem(false, properties.stacksTo(1)));
|
||||
|
|
@ -170,6 +171,7 @@ public class EItems {
|
|||
public static final DeferredItem<BlockItem> END_CAKE = registerItemBlock(EBlocks.END_CAKE);
|
||||
public static final DeferredItem<BlockItem> INFESTED_LEAVES = registerItemBlock(EBlocks.INFESTED_LEAVES);
|
||||
|
||||
public static final List<DeferredItem<Item>> WATERING_CANS = List.of(WOODEN_WATERING_CAN, STONE_WATERING_CAN, COPPER_WATERING_CAN, IRON_WATERING_CAN, GOLDEN_WATERING_CAN, DIAMOND_WATERING_CAN, NETHERITE_WATERING_CAN);
|
||||
|
||||
public static void addItemsToMainTab(CreativeModeTab.Output output) {
|
||||
for (var material : Iterables.concat(CompatUtil.getAvailableBarrels(true), CompatUtil.getAvailableSieves(true, false), CompatUtil.getAvailableCompressedSieves(true))) {
|
||||
|
|
@ -219,8 +221,7 @@ public class EItems {
|
|||
output.accept(COOKED_SILKWORM.get());
|
||||
output.accept(CROOK.get());
|
||||
output.accept(BONE_CROOK.get());
|
||||
var wateringCans = List.of(WOODEN_WATERING_CAN, STONE_WATERING_CAN, IRON_WATERING_CAN, GOLDEN_WATERING_CAN, DIAMOND_WATERING_CAN, NETHERITE_WATERING_CAN);
|
||||
for (var wateringCan : wateringCans) {
|
||||
for (var wateringCan : WATERING_CANS) {
|
||||
var full = WateringCanItem.getFull(wateringCan);
|
||||
output.accept(wateringCan.get());
|
||||
output.accept(full);
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 350 B |
Loading…
Reference in New Issue
Block a user