pala M-hoes-1 + M-fix-2: 4 grandes houes AoE + capture +7

This commit is contained in:
Anaïs Saraiva
2026-10-19 08:45:47 +02:00
parent 16e980c133
commit 7dac46275c
23 changed files with 163 additions and 1 deletions
+6
View File
@@ -774,6 +774,12 @@ avant M4 (TODO:crafts-machines).
plastron + magma fire ; hunter/voyance/combat/daemon/discretion = prochaine plastron + magma fire ; hunter/voyance/combat/daemon/discretion = prochaine
vague, effets a lire). VERIFIE : build SUCCESSFUL, boot Done, 0 erreur. vague, effets a lire). VERIFIE : build SUCCESSFUL, boot Done, 0 erreur.
UNVERIFIED en jeu. 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 + - 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, 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 lave exclue : seau non rendu) + craft (1 findium + 4 furnaces + 4 briques, positions
@@ -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_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 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))); 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_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_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))); 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 // 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). // 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 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_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 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, public static final Item INFERNAL_KNOCKER = register("infernal_knocker", id -> new Item(new Item.Properties().setId(id).stacksTo(1).component(DataComponents.ATTRIBUTE_MODIFIERS,
@@ -89,6 +89,10 @@ public final class PalaTabs {
output.accept(PalaItems.CAPTURE_STONE_FULL); output.accept(PalaItems.CAPTURE_STONE_FULL);
output.accept(PalaItems.ENDIUM_NAMETAG); output.accept(PalaItems.ENDIUM_NAMETAG);
output.accept(PalaItems.ROLLER); 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.SPAWNER_FINDER);
output.accept(PalaItems.DYNAMITE); output.accept(PalaItems.DYNAMITE);
output.accept(PalaItems.NINJA_DYNAMITE); output.accept(PalaItems.NINJA_DYNAMITE);
@@ -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_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 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")); 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_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_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")); public static final ToolMaterial KISAKAY_SHOVEL = new ToolMaterial(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 1927, 14.0F, 0.0F, 60, repair("kisakay_shovel_repairs"));
@@ -365,6 +365,63 @@ public final class PalaItemUseEvents {
ItemStack stack = player.getItemInHand(hand); ItemStack stack = player.getItemInHand(hand);
Item item = stack.isEmpty() ? null : stack.getItem(); 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 // --- Grinder : le coeur (PalaGrinderBlock) gere lui-meme le clic droit
// (diagnostic PalaGrinder.isFormed + ouverture GUI). Rien a faire ici : PASS // (diagnostic PalaGrinder.isFormed + ouverture GUI). Rien a faire ici : PASS
// pour laisser useWithoutItem du bloc s'executer (un SUCCESS du callback // pour laisser useWithoutItem du bloc s'executer (un SUCCESS du callback
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/amethyst_hoe"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/endium_hoe"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/paladium_green_hoe"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/paladium_hoe"
}
}
@@ -15,6 +15,10 @@
"item.pala.capture_stone_full": "Full Capture Stone", "item.pala.capture_stone_full": "Full Capture Stone",
"item.pala.endium_nametag": "Endium Tag", "item.pala.endium_nametag": "Endium Tag",
"item.pala.roller": "Rollers", "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.cave_hammer": "Marteau des cavernes",
"item.pala.magma_amulet": "Amulette de feu", "item.pala.magma_amulet": "Amulette de feu",
"enchantment.pala.experience_bottler": "Experience Bottler", "enchantment.pala.experience_bottler": "Experience Bottler",
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "pala:item/amethyst_radius_hoe"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "pala:item/endium_radius_hoe"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "pala:item/green_paladium_radius_hoe"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "pala:item/paladium_hoe"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"pala:amethyst_ingot"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"pala:endium_ingot"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"pala:paladium_green_ingot"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"pala:paladium_ingot"
]
}
Binary file not shown.