diff --git a/PALAMOD_CDC.md b/PALAMOD_CDC.md index 7cc1a6f..0e8ca24 100644 --- a/PALAMOD_CDC.md +++ b/PALAMOD_CDC.md @@ -683,6 +683,12 @@ avant M4 (TODO:crafts-machines). - M-market-2 LIVRE 2026-10-19 ~06:20 : expiration annonces (createdAt, marketExpiryDays =7 persistee VERIFIEE, purge au flush, rendu si vendeur connecte). TODO:market-expiry CLOS. VERIFIE : build SUCCESSFUL, boot Done, 0 erreur. UNVERIFIED en jeu (purge 7j). +- M-alchi-1 LIVRE 2026-10-19 ~06:30 : fiole (craft 5 verres, XP craft 0.2@1) + mixin + craft data-driven (alchemistCraft). Incident : 1er boot refuse (ingredients objets + {"item"} parses vide en 26.3 -> strings simples comme socketpattern). Lecon : boot + Datapack = validation JSON, toujours rebooter apres recette. ECART : positions craft + UNVERIFIED, extracteur sans texture (TODO:M-alchi-extracteur), arbes a seve absents + (TODO:M-trees). 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 36ea746..a025fa5 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java @@ -120,6 +120,9 @@ public final class PalaItems { // Nutrition 4/0.3 ECART (wiki muet, comme pomme). Sans craft (ECART lucky). public static final Item BANANA = register("banana", id -> new Item(new Item.Properties().setId(id).food(new FoodProperties(4, 0.3F, true), net.minecraft.world.item.component.Consumable.builder().onConsume(new net.minecraft.world.item.consume_effects.ApplyStatusEffectsConsumeEffect(new net.minecraft.world.effect.MobEffectInstance(net.minecraft.world.effect.MobEffects.SPEED, 300, 2), 1.0F)).build()))); public static final Item COUAC_SWORD = register("couac_sword", id -> new Item(new Item.Properties().setId(id).sword(PalaToolMaterials.PALADIUM_SWORD, 8.0F, -2.3F))); + // M-alchi-1 (wiki alchimiste) : fiole (stack 16, craft 5 verres shapeless ECART + // positions, XP craft 0.2@1). Extracteur : texture absente (TODO:M-alchi-extracteur). + public static final Item FLASK = register("flask", id -> new Item(new Item.Properties().setId(id).stacksTo(16))); // M-gadget-8 (wiki ID 5023/5029) : cagoule (cosmetique, UNBREAKABLE) + masque de // garde (stats fer). Sans craft (ECART lucky). public static final Item BALACLAVA = register("balaclava", id -> new Item(new Item.Properties().setId(id).durability(1).humanoidArmor(PalaArmorMaterials.BALACLAVA, ArmorType.HELMET).component(DataComponents.UNBREAKABLE, Unit.INSTANCE))); 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 83a753f..dda8c93 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java @@ -78,6 +78,7 @@ public final class PalaTabs { output.accept(PalaItems.BANANA); output.accept(PalaItems.BALACLAVA); output.accept(PalaItems.GUARD_MASK); + output.accept(PalaItems.FLASK); output.accept(PalaItems.CANDY); output.accept(PalaItems.CANDY_BLUE); output.accept(PalaItems.CANDY_GREEN); diff --git a/mods/pala/src/main/java/fr/surviepote/pala/core/PalaConfig.java b/mods/pala/src/main/java/fr/surviepote/pala/core/PalaConfig.java index c911c20..10e16d3 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/core/PalaConfig.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/core/PalaConfig.java @@ -139,6 +139,10 @@ public final class PalaConfig { "pala:egg_plant_fruit", new double[]{3, 8}, "pala:okami_fruit", new double[]{4.5, 12}, "pala:kiwano", new double[]{6, 16})); + // M-alchi-1 (wiki Evolution alchimiste VERIFIE) : XP au craft = item -> [xp, niveau]. + // Fiole 0.2@1. Extracteur/lightning/glueballs/portails : items/crafts en M-alchi-2+. + public Map alchemistCraft = new HashMap<>(Map.of( + "pala:flask", new double[]{0.2, 1})); // M4a : recettes machines data-driven (CDC §3.4). Cles = ids de registres. // Defauts = legacy+wiki VERIFIES (M3). Rechargeables via /pala reload. public Map crusherResults = new HashMap<>(Map.of( @@ -237,6 +241,7 @@ public final class PalaConfig { java.util.Set expected = java.util.Set.of("minerXp", "minerLevels", "xpBase", "xpExponent", "levelThresholds", "netherMinerLevel", "stickCooldowns", "rankNodes", "hunterKills", "farmerHarvest", "crusherXp", + "alchemistCraft", "crusherResults", "crusherFuels", "crusherInfiniteFuels", "furnaceSmelts", "furnaceFuels", "serverName", "wikiUrl", "discordUrl", "shopUrl", diff --git a/mods/pala/src/main/java/fr/surviepote/pala/mixin/PalaCraftXpMixin.java b/mods/pala/src/main/java/fr/surviepote/pala/mixin/PalaCraftXpMixin.java index 1808ffa..69d91b8 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/mixin/PalaCraftXpMixin.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/mixin/PalaCraftXpMixin.java @@ -15,6 +15,7 @@ import fr.surviepote.pala.core.PalaJobs; // M-mixin (wiki metiers, VERIFIE) : XP au craft, sans event fabric existant. // Fermier : pain = 1 XP (niveau 1+), tarte citrouille = 4 XP (niveau 11+), par item pris. +// M-alchi-1 : alchimiste data-driven (config alchemistCraft : item -> [xp, niveau]). // Injection en TAIL de checkTakeAchievements (appele a chaque prise du resultat). @Mixin(ResultSlot.class) public class PalaCraftXpMixin { @@ -39,5 +40,9 @@ public class PalaCraftXpMixin { PalaJobs.addXp(sp, "fermier", 4.0 * stack.getCount()); } } + double[] row = fr.surviepote.pala.core.PalaConfig.get().alchemistCraft.get(id); + if (row != null && PalaJobs.levelOf(sp, "alchimiste") >= (int) row[1]) { + PalaJobs.addXp(sp, "alchimiste", row[0] * stack.getCount()); + } } } diff --git a/mods/pala/src/main/resources/assets/pala/items/flask.json b/mods/pala/src/main/resources/assets/pala/items/flask.json new file mode 100644 index 0000000..71384aa --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/items/flask.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "pala:item/flask" + } +} \ No newline at end of file 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 58bb28d..3e883ce 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 @@ -4,6 +4,7 @@ "item.pala.amethyst_mixed_coal": "Amethyst Mixed Coal", "item.pala.amethyst_stick": "Amethyst Stick", "item.pala.compressed_amethyst": "Compressed Amethyst", + "item.pala.flask": "Fiole", "item.pala.balaclava": "Cagoule", "item.pala.guard_mask": "Masque de garde", "item.pala.banana": "Banane", diff --git a/mods/pala/src/main/resources/assets/pala/models/item/flask.json b/mods/pala/src/main/resources/assets/pala/models/item/flask.json new file mode 100644 index 0000000..5d83b08 --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/models/item/flask.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "pala:item/flask" + } +} \ No newline at end of file diff --git a/mods/pala/src/main/resources/assets/pala/textures/item/flask.png b/mods/pala/src/main/resources/assets/pala/textures/item/flask.png new file mode 100644 index 0000000..caaaf75 Binary files /dev/null and b/mods/pala/src/main/resources/assets/pala/textures/item/flask.png differ diff --git a/mods/pala/src/main/resources/data/pala/recipe/flaskrecipe.json b/mods/pala/src/main/resources/data/pala/recipe/flaskrecipe.json new file mode 100644 index 0000000..87d51dd --- /dev/null +++ b/mods/pala/src/main/resources/data/pala/recipe/flaskrecipe.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + "minecraft:glass", + "minecraft:glass", + "minecraft:glass", + "minecraft:glass", + "minecraft:glass" + ], + "result": { + "id": "pala:flask", + "count": 1 + } +} \ No newline at end of file diff --git a/server/mods/pala-0.2.1.jar b/server/mods/pala-0.2.1.jar index 04d8cf8..c6724b4 100644 Binary files a/server/mods/pala-0.2.1.jar and b/server/mods/pala-0.2.1.jar differ