diff --git a/PALAMOD_CDC.md b/PALAMOD_CDC.md index 56cf495..274b425 100644 --- a/PALAMOD_CDC.md +++ b/PALAMOD_CDC.md @@ -767,6 +767,13 @@ avant M4 (TODO:crafts-machines). nom enclume, max 3 persistee, 4e retire surnom 1ere, sans craft ECART). Lecon : sp.server prive -> sp.level().getServer(). VERIFIE : build SUCCESSFUL, boot Done, 0 erreur. UNVERIFIED en jeu. +- M-fix-1 + M-roller-1 LIVRES 2026-10-19 ~08:35 : canne dura 384->128 (wiki outils + VERIFIE ; bonus loot sans chiffres SKIP TODO:chance-peche) + rollers (ArmorItem + pieds, tick transient +20% vitesse ECART + step 0.6->1.1, retrait auto, dura 128 + ECART, sans craft). Decouverte : incrustation amulettes EXISTE (CUSTOM_DATA + plastron + magma fire ; hunter/voyance/combat/daemon/discretion = prochaine + vague, effets a lire). 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/PalaArmorMaterials.java b/mods/pala/src/main/java/fr/surviepote/pala/PalaArmorMaterials.java index 7e46237..e5a156e 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/PalaArmorMaterials.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/PalaArmorMaterials.java @@ -37,5 +37,8 @@ public final class PalaArmorMaterials { // l'item) + masque de garde (stats casque fer). ECART : textures portees absentes // du legacy (pas d'equipment JSON, rendu casque absent cote client). public static final ArmorMaterial BALACLAVA = new ArmorMaterial(1, Map.of(ArmorType.HELMET, 0, ArmorType.CHESTPLATE, 0, ArmorType.LEGGINGS, 0, ArmorType.BOOTS, 0), 1, SoundEvents.ARMOR_EQUIP_LEATHER, 0.0F, 0.0F, repair("balaclava_repairs"), asset("balaclava")); + // M-roller-1 (wiki outils VERIFIE : vitesse + saut auto ; durabilite NON PUBLIEE + // -> ECART 128 ; sans craft ECART). + public static final ArmorMaterial ROLLER = new ArmorMaterial(128, Map.of(ArmorType.HELMET, 0, ArmorType.CHESTPLATE, 0, ArmorType.LEGGINGS, 0, ArmorType.BOOTS, 0), 1, SoundEvents.ARMOR_EQUIP_LEATHER, 0.0F, 0.0F, repair("roller_repairs"), asset("roller")); public static final ArmorMaterial GUARD_MASK = new ArmorMaterial(15, Map.of(ArmorType.HELMET, 2, ArmorType.CHESTPLATE, 0, ArmorType.LEGGINGS, 0, ArmorType.BOOTS, 0), 9, SoundEvents.ARMOR_EQUIP_IRON, 0.0F, 0.0F, repair("guard_mask_repairs"), asset("guard_mask")); } 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 4c211c8..a294011 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java @@ -140,11 +140,11 @@ public final class PalaItems { // M-hunter-4 (wiki niv.9 VERIFIE : 4 degats + knockback, non enchantable) : Item // simple (sans composant enchantable -> non enchantable) + attribut +3 degats // mainhand (1 base + 3 = 4 EXACT) ; le push x3 wither reste dans PalaJobEvents. - // M-hunter-4 (wiki niv.4 VERIFIE : craft 2 sticks pala + 1 lingot pala + 2 ficelles, - // "peche plus vite" NON QUANTIFIE -> ECART : durabilite 384 (6x vanilla, valeur - // gameplay), sans bonus invente ; gate craft chasseur 4 non applicable (pas de - // gates craft). Textures legacy cast/uncast. - public static final Item PALADIUM_FISHING_ROD = register("paladium_fishing_rod", id -> new net.minecraft.world.item.FishingRodItem(new Item.Properties().setId(id).stacksTo(1).durability(384))); + // M-hunter-4 corrige M-fix-1 (wiki outils VERIFIE : durabilite 128, "peche plus + // vite" + chance lingots amethyste/titane/paladium SANS CHIFFRES -> ECART : sans + // bonus (TODO:chance-peche) ; craft 2 sticks pala + 1 lingot pala + 2 ficelles ; + // gate craft chasseur 4 non applicable (pas de gates craft). Textures cast/uncast. + public static final Item PALADIUM_FISHING_ROD = register("paladium_fishing_rod", id -> new net.minecraft.world.item.FishingRodItem(new Item.Properties().setId(id).stacksTo(1).durability(128))); // M-hunter-5 (wiki niv.13/14 VERIFIE : epee 32 utilisations, 1 pierre = 1 ame, // pleines non stackables, epee utilisable avant niv.13) : capture d'entites. // ECART : degats epee non publies (Item simple), crafts exacts (positions image @@ -238,6 +238,8 @@ public final class PalaItems { public static final Item TITANE_CHESTPLATE = register("titane_chestplate", id -> new Item(new Item.Properties().setId(id).durability(18).humanoidArmor(PalaArmorMaterials.TITANE, ArmorType.CHESTPLATE))); public static final Item TITANE_LEGGINGS = register("titane_leggings", id -> new Item(new Item.Properties().setId(id).durability(18).humanoidArmor(PalaArmorMaterials.TITANE, ArmorType.LEGGINGS))); public static final Item TITANE_BOOTS = register("titane_boots", id -> new Item(new Item.Properties().setId(id).durability(18).humanoidArmor(PalaArmorMaterials.TITANE, ArmorType.BOOTS))); + // M-roller-1 : rollers aux pieds (voir tick PalaArmorEvents). + public static final Item ROLLER = register("roller", id -> new Item(new Item.Properties().setId(id).durability(128).humanoidArmor(PalaArmorMaterials.ROLLER, ArmorType.BOOTS))); public static final Item WEIGHTED_BOOTS = register("weighted_boots", id -> new Item(new Item.Properties().setId(id).durability(16).humanoidArmor(PalaArmorMaterials.WEIGHTED_BOOTS, ArmorType.BOOTS))); public static void register() { 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 6138e03..cbbe8bd 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java @@ -88,6 +88,7 @@ public final class PalaTabs { output.accept(PalaItems.CAPTURE_STONE_EMPTY); output.accept(PalaItems.CAPTURE_STONE_FULL); output.accept(PalaItems.ENDIUM_NAMETAG); + output.accept(PalaItems.ROLLER); 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/events/PalaArmorEvents.java b/mods/pala/src/main/java/fr/surviepote/pala/events/PalaArmorEvents.java index bd7be8c..3736825 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/events/PalaArmorEvents.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/events/PalaArmorEvents.java @@ -86,6 +86,36 @@ public final class PalaArmorEvents { } } + // --- Rollers (M-roller-1, wiki outils VERIFIE : vitesse + saut auto ; +20% + // ECART non quantifie, step +0.5 -> 1.1 = monte 1 bloc). + net.minecraft.world.entity.ai.attributes.AttributeInstance speed = + player.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MOVEMENT_SPEED); + net.minecraft.world.entity.ai.attributes.AttributeInstance step = + player.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.STEP_HEIGHT); + net.minecraft.resources.Identifier rollerSpeed = + net.minecraft.resources.Identifier.fromNamespaceAndPath("pala", "roller_speed"); + net.minecraft.resources.Identifier rollerStep = + net.minecraft.resources.Identifier.fromNamespaceAndPath("pala", "roller_step"); + if (wearing(player, EquipmentSlot.FEET, PalaItems.ROLLER)) { + if (speed != null && !speed.hasModifier(rollerSpeed)) { + speed.addOrUpdateTransientModifier(new net.minecraft.world.entity.ai.attributes.AttributeModifier( + rollerSpeed, 0.2, + net.minecraft.world.entity.ai.attributes.AttributeModifier.Operation.ADD_MULTIPLIED_TOTAL)); + } + if (step != null && !step.hasModifier(rollerStep)) { + step.addOrUpdateTransientModifier(new net.minecraft.world.entity.ai.attributes.AttributeModifier( + rollerStep, 0.5, + net.minecraft.world.entity.ai.attributes.AttributeModifier.Operation.ADD_VALUE)); + } + } else { + if (speed != null && speed.hasModifier(rollerSpeed)) { + speed.removeModifier(rollerSpeed); + } + if (step != null && step.hasModifier(rollerStep)) { + step.removeModifier(rollerStep); + } + } + // --- Bottes lestees (M-gadget-4, legacy VERIFIE) : memorise la chute, explosion // a l'atterrissage si > 3 blocs. Annulee en claim d'autrui (anti-grief, ECART). if (wearing(player, EquipmentSlot.FEET, PalaItems.WEIGHTED_BOOTS)) { diff --git a/mods/pala/src/main/resources/assets/pala/items/roller.json b/mods/pala/src/main/resources/assets/pala/items/roller.json new file mode 100644 index 0000000..3fc7eef --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/items/roller.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "pala:item/roller" + } +} 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 9f966e2..2bb8d06 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 @@ -14,6 +14,7 @@ "item.pala.capture_stone_empty": "Capture Stone", "item.pala.capture_stone_full": "Full Capture Stone", "item.pala.endium_nametag": "Endium Tag", + "item.pala.roller": "Rollers", "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/roller.json b/mods/pala/src/main/resources/assets/pala/models/item/roller.json new file mode 100644 index 0000000..7c3ccee --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/models/item/roller.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "pala:item/roller" + } +} diff --git a/mods/pala/src/main/resources/assets/pala/textures/item/roller.png b/mods/pala/src/main/resources/assets/pala/textures/item/roller.png new file mode 100644 index 0000000..754aaa7 Binary files /dev/null and b/mods/pala/src/main/resources/assets/pala/textures/item/roller.png differ diff --git a/server/mods/pala-0.2.1.jar b/server/mods/pala-0.2.1.jar index 6604792..bf38c75 100644 Binary files a/server/mods/pala-0.2.1.jar and b/server/mods/pala-0.2.1.jar differ