diff --git a/PALAMOD_CDC.md b/PALAMOD_CDC.md index 274b425..1dea66c 100644 --- a/PALAMOD_CDC.md +++ b/PALAMOD_CDC.md @@ -774,6 +774,12 @@ avant M4 (TODO:crafts-machines). plastron + magma fire ; hunter/voyance/combat/daemon/discretion = prochaine vague, effets a lire). VERIFIE : build SUCCESSFUL, boot Done, 0 erreur. UNVERIFIED en jeu. +- M-hoes-1 + M-fix-2 LIVRES 2026-10-19 ~08:45 : 4 grandes houes (dura wiki + 1999/4999/4999/4999, AoE 2x2/6x6/8x8/12x12 ancre ECART, gates fermier 2/12/16/20 + FAIL, claims, -1 dura/bloc ECART, sans craft ; titane SKIP texture) + capture + sword +7 (attribut +6, comme knocker). Lecon : outils 26.3 = .hoe() sur + Properties (pas de HoeItem). VERIFIE : build SUCCESSFUL, boot Done, 0 erreur. + UNVERIFIED en jeu. - M-palaforge LIVRE 2026-10-19 ~03:55 : bloc + BE partagee (3e mode) + gate mineur 14 + table fonte wiki §3.2 (31 items, ratio floor usure) + fuels bois (+buche/planches/baton, lave exclue : seau non rendu) + craft (1 findium + 4 furnaces + 4 briques, positions diff --git a/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java b/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java index a294011..5bbe8ab 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java @@ -99,6 +99,12 @@ public final class PalaItems { public static final Item ENDIUM_PICKAXE = register("endium_pickaxe", id -> new Item(new Item.Properties().setId(id).pickaxe(PalaToolMaterials.ENDIUM_PICKAXE, 5.5F, -3.0F))); public static final Item ENDIUM_SWORD = register("endium_sword", id -> new Item(new Item.Properties().setId(id).sword(PalaToolMaterials.ENDIUM_SWORD, 11.0F, -2.0F))); public static final Item KISAKAY_AXE = register("kisakay_axe", id -> new Item(new Item.Properties().setId(id).axe(PalaToolMaterials.KISAKAY_AXE, 25.0F, -3.0F))); + // M-hoes-1 : grandes houes AoE (labourage dans PalaItemUseEvents, gates fermier). + // Degats 1.0F/-2.0F ECART (non publies) ; houe titane SKIP TODO:texture. + public static final Item AMETHYST_HOE = register("amethyst_hoe", id -> new Item(new Item.Properties().setId(id).hoe(PalaToolMaterials.AMETHYST_HOE, 1.0F, -2.0F))); + public static final Item PALADIUM_HOE = register("paladium_hoe", id -> new Item(new Item.Properties().setId(id).hoe(PalaToolMaterials.PALADIUM_HOE, 1.0F, -2.0F))); + public static final Item PALADIUM_GREEN_HOE = register("paladium_green_hoe", id -> new Item(new Item.Properties().setId(id).hoe(PalaToolMaterials.PALADIUM_GREEN_HOE, 1.0F, -2.0F))); + public static final Item ENDIUM_HOE = register("endium_hoe", id -> new Item(new Item.Properties().setId(id).hoe(PalaToolMaterials.ENDIUM_HOE, 1.0F, -2.0F))); public static final Item KISAKAY_HOE = register("kisakay_hoe", id -> new Item(new Item.Properties().setId(id).hoe(PalaToolMaterials.KISAKAY_HOE, 8.0F, -3.0F))); public static final Item KISAKAY_PICKAXE = register("kisakay_pickaxe", id -> new Item(new Item.Properties().setId(id).pickaxe(PalaToolMaterials.KISAKAY_PICKAXE, 8.0F, -3.0F))); public static final Item KISAKAY_SHOVEL = register("kisakay_shovel", id -> new Item(new Item.Properties().setId(id).shovel(PalaToolMaterials.KISAKAY_SHOVEL, 8.0F, -3.0F))); @@ -152,7 +158,14 @@ public final class PalaItems { // M-hunter-6 (wiki niv.18 VERIFIE : renomme 1 entite, max 3, la 4e fait perdre // le surnom a la 1ere ; nom via rename enclume comme nametag vanilla, ECART). public static final Item ENDIUM_NAMETAG = register("endium_nametag", id -> new Item(new Item.Properties().setId(id).stacksTo(16))); - public static final Item CAPTURE_SWORD = register("capture_sword", id -> new Item(new Item.Properties().setId(id).stacksTo(1).durability(32))); + public static final Item CAPTURE_SWORD = register("capture_sword", id -> new Item(new Item.Properties().setId(id).stacksTo(1).durability(32).component(DataComponents.ATTRIBUTE_MODIFIERS, + net.minecraft.world.item.component.ItemAttributeModifiers.builder().add( + net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, + new net.minecraft.world.entity.ai.attributes.AttributeModifier( + net.minecraft.resources.Identifier.fromNamespaceAndPath("pala", "capture_sword"), + 6.0, + net.minecraft.world.entity.ai.attributes.AttributeModifier.Operation.ADD_VALUE), + net.minecraft.world.entity.EquipmentSlotGroup.MAINHAND).build()))); public static final Item CAPTURE_STONE_EMPTY = register("capture_stone_empty", id -> new Item(new Item.Properties().setId(id))); public static final Item CAPTURE_STONE_FULL = register("capture_stone_full", id -> new Item(new Item.Properties().setId(id).stacksTo(1))); public static final Item INFERNAL_KNOCKER = register("infernal_knocker", id -> new Item(new Item.Properties().setId(id).stacksTo(1).component(DataComponents.ATTRIBUTE_MODIFIERS, diff --git a/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java b/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java index cbbe8bd..7ea68e7 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java @@ -89,6 +89,10 @@ public final class PalaTabs { output.accept(PalaItems.CAPTURE_STONE_FULL); output.accept(PalaItems.ENDIUM_NAMETAG); output.accept(PalaItems.ROLLER); + output.accept(PalaItems.AMETHYST_HOE); + output.accept(PalaItems.PALADIUM_HOE); + output.accept(PalaItems.PALADIUM_GREEN_HOE); + output.accept(PalaItems.ENDIUM_HOE); output.accept(PalaItems.SPAWNER_FINDER); output.accept(PalaItems.DYNAMITE); output.accept(PalaItems.NINJA_DYNAMITE); diff --git a/mods/pala/src/main/java/fr/surviepote/pala/PalaToolMaterials.java b/mods/pala/src/main/java/fr/surviepote/pala/PalaToolMaterials.java index 13ca7cd..9187f94 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/PalaToolMaterials.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/PalaToolMaterials.java @@ -45,6 +45,12 @@ public final class PalaToolMaterials { public static final ToolMaterial ENDIUM_PICKAXE = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 4595, 11.0F, 0.0F, 25, repair("endium_pickaxe_repairs")); public static final ToolMaterial ENDIUM_SWORD = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 4595, 11.0F, 0.0F, 25, repair("endium_sword_repairs")); public static final ToolMaterial KISAKAY_AXE = new ToolMaterial(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 1927, 14.0F, 0.0F, 60, repair("kisakay_axe_repairs")); + // M-hoes-1 (wiki outils VERIFIE : dura 1999/4999/4999/4999 ; vitesses = pioches + // du tier ECART ; degats/enchant comme pioches du tier). + public static final ToolMaterial AMETHYST_HOE = new ToolMaterial(BlockTags.INCORRECT_FOR_STONE_TOOL, 1999, 6.0F, 0.0F, 7, repair("amethyst_hoe_repairs")); + public static final ToolMaterial PALADIUM_HOE = new ToolMaterial(BlockTags.INCORRECT_FOR_IRON_TOOL, 4999, 9.0F, 0.0F, 10, repair("paladium_hoe_repairs")); + public static final ToolMaterial PALADIUM_GREEN_HOE = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 4999, 10.0F, 0.0F, 22, repair("paladium_green_hoe_repairs")); + public static final ToolMaterial ENDIUM_HOE = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 4999, 11.0F, 0.0F, 25, repair("endium_hoe_repairs")); public static final ToolMaterial KISAKAY_HOE = new ToolMaterial(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 1927, 14.0F, 0.0F, 60, repair("kisakay_hoe_repairs")); public static final ToolMaterial KISAKAY_PICKAXE = new ToolMaterial(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 1927, 14.0F, 0.0F, 60, repair("kisakay_pickaxe_repairs")); public static final ToolMaterial KISAKAY_SHOVEL = new ToolMaterial(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 1927, 14.0F, 0.0F, 60, repair("kisakay_shovel_repairs")); diff --git a/mods/pala/src/main/java/fr/surviepote/pala/events/PalaItemUseEvents.java b/mods/pala/src/main/java/fr/surviepote/pala/events/PalaItemUseEvents.java index d43137b..1259bb8 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/events/PalaItemUseEvents.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/events/PalaItemUseEvents.java @@ -365,6 +365,63 @@ public final class PalaItemUseEvents { ItemStack stack = player.getItemInHand(hand); Item item = stack.isEmpty() ? null : stack.getItem(); + // --- Grandes houes (M-hoes-1, wiki outils VERIFIE : AoE + gates fermier) : + // carre NxN ancre (bloc clique = coin, ECART pairs non centrables), FAIL si + // gate KO (pas de contournement vanilla), -1 dura/bloc ECART, claims respectes. + int hoeSize = 0; + int hoeLevel = 0; + if (item == PalaItems.AMETHYST_HOE) { + hoeSize = 2; + hoeLevel = 2; + } else if (item == PalaItems.PALADIUM_HOE) { + hoeSize = 6; + hoeLevel = 12; + } else if (item == PalaItems.PALADIUM_GREEN_HOE) { + hoeSize = 8; + hoeLevel = 16; + } else if (item == PalaItems.ENDIUM_HOE) { + hoeSize = 12; + hoeLevel = 20; + } + if (hoeSize > 0) { + if (fr.surviepote.pala.core.PalaJobs.levelOf(sp, "fermier") < hoeLevel) { + final int required = hoeLevel; + sp.sendSystemMessage(net.minecraft.network.chat.Component.literal( + "§cFermier niveau " + required + " requis pour cette houe.")); + return InteractionResult.FAIL; + } + int tilled = 0; + for (int dx = 1 - hoeSize; dx <= 0; dx++) { + for (int dz = 1 - hoeSize; dz <= 0; dz++) { + if (stack.isEmpty()) { + break; + } + BlockPos cursor = pos.offset(dx, 0, dz); + BlockState state = sl.getBlockState(cursor); + Block b = state.getBlock(); + if (b != Blocks.GRASS_BLOCK && b != Blocks.DIRT + && b != Blocks.COARSE_DIRT && b != Blocks.DIRT_PATH) { + continue; + } + if (!sl.getBlockState(cursor.above()).isAir()) { + continue; + } + if (!fr.surviepote.pala.events.PalaFactionProtect.canAct(sp, sl, cursor)) { + continue; + } + sl.setBlock(cursor, Blocks.FARMLAND.defaultBlockState(), 11); + stack.hurtAndBreak(1, sp, hand); + tilled++; + } + } + if (tilled > 0) { + sl.playSound(null, pos.getX(), pos.getY(), pos.getZ(), + SoundEvents.HOE_TILL, SoundSource.BLOCKS, 1.0F, 1.0F); + return InteractionResult.SUCCESS; + } + return InteractionResult.PASS; + } + // --- Grinder : le coeur (PalaGrinderBlock) gere lui-meme le clic droit // (diagnostic PalaGrinder.isFormed + ouverture GUI). Rien a faire ici : PASS // pour laisser useWithoutItem du bloc s'executer (un SUCCESS du callback diff --git a/mods/pala/src/main/resources/assets/pala/items/amethyst_hoe.json b/mods/pala/src/main/resources/assets/pala/items/amethyst_hoe.json new file mode 100644 index 0000000..bcb0753 --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/items/amethyst_hoe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "pala:item/amethyst_hoe" + } +} diff --git a/mods/pala/src/main/resources/assets/pala/items/endium_hoe.json b/mods/pala/src/main/resources/assets/pala/items/endium_hoe.json new file mode 100644 index 0000000..07feebc --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/items/endium_hoe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "pala:item/endium_hoe" + } +} diff --git a/mods/pala/src/main/resources/assets/pala/items/paladium_green_hoe.json b/mods/pala/src/main/resources/assets/pala/items/paladium_green_hoe.json new file mode 100644 index 0000000..d6b9af5 --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/items/paladium_green_hoe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "pala:item/paladium_green_hoe" + } +} diff --git a/mods/pala/src/main/resources/assets/pala/items/paladium_hoe.json b/mods/pala/src/main/resources/assets/pala/items/paladium_hoe.json new file mode 100644 index 0000000..6d6a1ec --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/items/paladium_hoe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "pala:item/paladium_hoe" + } +} diff --git a/mods/pala/src/main/resources/assets/pala/lang/en_us.json b/mods/pala/src/main/resources/assets/pala/lang/en_us.json index 2bb8d06..940c4da 100644 --- a/mods/pala/src/main/resources/assets/pala/lang/en_us.json +++ b/mods/pala/src/main/resources/assets/pala/lang/en_us.json @@ -15,6 +15,10 @@ "item.pala.capture_stone_full": "Full Capture Stone", "item.pala.endium_nametag": "Endium Tag", "item.pala.roller": "Rollers", + "item.pala.amethyst_hoe": "Amethyst Hoe", + "item.pala.paladium_hoe": "Paladium Hoe", + "item.pala.paladium_green_hoe": "Green Paladium Hoe", + "item.pala.endium_hoe": "Endium Hoe", "item.pala.cave_hammer": "Marteau des cavernes", "item.pala.magma_amulet": "Amulette de feu", "enchantment.pala.experience_bottler": "Experience Bottler", diff --git a/mods/pala/src/main/resources/assets/pala/models/item/amethyst_hoe.json b/mods/pala/src/main/resources/assets/pala/models/item/amethyst_hoe.json new file mode 100644 index 0000000..a772f8c --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/models/item/amethyst_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "pala:item/amethyst_radius_hoe" + } +} diff --git a/mods/pala/src/main/resources/assets/pala/models/item/endium_hoe.json b/mods/pala/src/main/resources/assets/pala/models/item/endium_hoe.json new file mode 100644 index 0000000..c4500bd --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/models/item/endium_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "pala:item/endium_radius_hoe" + } +} diff --git a/mods/pala/src/main/resources/assets/pala/models/item/paladium_green_hoe.json b/mods/pala/src/main/resources/assets/pala/models/item/paladium_green_hoe.json new file mode 100644 index 0000000..de7c060 --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/models/item/paladium_green_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "pala:item/green_paladium_radius_hoe" + } +} diff --git a/mods/pala/src/main/resources/assets/pala/models/item/paladium_hoe.json b/mods/pala/src/main/resources/assets/pala/models/item/paladium_hoe.json new file mode 100644 index 0000000..650218f --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/models/item/paladium_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "pala:item/paladium_hoe" + } +} diff --git a/mods/pala/src/main/resources/assets/pala/textures/item/amethyst_radius_hoe.png b/mods/pala/src/main/resources/assets/pala/textures/item/amethyst_radius_hoe.png new file mode 100644 index 0000000..7580a47 Binary files /dev/null and b/mods/pala/src/main/resources/assets/pala/textures/item/amethyst_radius_hoe.png differ diff --git a/mods/pala/src/main/resources/assets/pala/textures/item/endium_radius_hoe.png b/mods/pala/src/main/resources/assets/pala/textures/item/endium_radius_hoe.png new file mode 100644 index 0000000..b188052 Binary files /dev/null and b/mods/pala/src/main/resources/assets/pala/textures/item/endium_radius_hoe.png differ diff --git a/mods/pala/src/main/resources/assets/pala/textures/item/green_paladium_radius_hoe.png b/mods/pala/src/main/resources/assets/pala/textures/item/green_paladium_radius_hoe.png new file mode 100644 index 0000000..65fb577 Binary files /dev/null and b/mods/pala/src/main/resources/assets/pala/textures/item/green_paladium_radius_hoe.png differ diff --git a/mods/pala/src/main/resources/assets/pala/textures/item/paladium_hoe.png b/mods/pala/src/main/resources/assets/pala/textures/item/paladium_hoe.png new file mode 100644 index 0000000..c61985b Binary files /dev/null and b/mods/pala/src/main/resources/assets/pala/textures/item/paladium_hoe.png differ diff --git a/mods/pala/src/main/resources/data/pala/tags/item/amethyst_hoe_repairs.json b/mods/pala/src/main/resources/data/pala/tags/item/amethyst_hoe_repairs.json new file mode 100644 index 0000000..ffa2b98 --- /dev/null +++ b/mods/pala/src/main/resources/data/pala/tags/item/amethyst_hoe_repairs.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "pala:amethyst_ingot" + ] +} diff --git a/mods/pala/src/main/resources/data/pala/tags/item/endium_hoe_repairs.json b/mods/pala/src/main/resources/data/pala/tags/item/endium_hoe_repairs.json new file mode 100644 index 0000000..b92e2fd --- /dev/null +++ b/mods/pala/src/main/resources/data/pala/tags/item/endium_hoe_repairs.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "pala:endium_ingot" + ] +} diff --git a/mods/pala/src/main/resources/data/pala/tags/item/paladium_green_hoe_repairs.json b/mods/pala/src/main/resources/data/pala/tags/item/paladium_green_hoe_repairs.json new file mode 100644 index 0000000..6465d38 --- /dev/null +++ b/mods/pala/src/main/resources/data/pala/tags/item/paladium_green_hoe_repairs.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "pala:paladium_green_ingot" + ] +} diff --git a/mods/pala/src/main/resources/data/pala/tags/item/paladium_hoe_repairs.json b/mods/pala/src/main/resources/data/pala/tags/item/paladium_hoe_repairs.json new file mode 100644 index 0000000..e26793d --- /dev/null +++ b/mods/pala/src/main/resources/data/pala/tags/item/paladium_hoe_repairs.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "pala:paladium_ingot" + ] +} diff --git a/server/mods/pala-0.2.1.jar b/server/mods/pala-0.2.1.jar index bf38c75..90c3c79 100644 Binary files a/server/mods/pala-0.2.1.jar and b/server/mods/pala-0.2.1.jar differ