pala M-grinder-1: 3 blocs + 9 items grinder/broadsword/fastsword (textures legacy, crafts)

This commit is contained in:
Anaïs Saraiva
2026-10-19 03:10:20 +02:00
parent fdff425a48
commit be6c0306e3
51 changed files with 277 additions and 1 deletions
+6
View File
@@ -547,6 +547,12 @@ avant M4 (TODO:crafts-machines).
- M-eco LIVRE 2026-10-19 ~03:05 : /pay (transfert, fonds verifies) + /baltop (top 10 via
PalaStorage.topMoney) + /balance (solde). ECART : connectes uniquement (wiki suggere pseudo
offline). VERIFIE : build SUCCESSFUL, boot Done, 0 erreur. UNVERIFIED en jeu (2 joueurs).
- M-grinder-1 LIVRE 2026-10-19 ~03:10 : 3 blocs (block/casing/frame, textures legacy cablees)
+ 9 items (5 patterns, socket, orb_knockback, broadsword +9, fastsword +7 ; vitesses
UNVERIFIED) + 30 assets (blockstates/models/definitions items/lang 221 cles) + 3 crafts
(pattern frame UNVERIFIED : positions titane non visibles wiki). GUI + multibloc + tetes +
modifieurs : M-grinder-2/3. VERIFIE : build SUCCESSFUL, boot Done, 0 erreur. UNVERIFIED
visuel (session client M-grinder-2).
- Client/mod : boucle visuelle OPERATIONNELLE 2026-10-19 (Xvfb :99 + runClient SDL x11 +
captures Java Robot + pilotage xdotool + vision_analyze) : menu, Select World, monde New World
(creatif, cheats), /give, pose de bloc, inventaire, F3+T. Screens : scratch vis*.png.
@@ -33,6 +33,11 @@ public final class PalaBlocks {
public static final Block AMETHYST_ORE = register("amethyst_ore", new Block(BlockBehaviour.Properties.of().setId(blockId("amethyst_ore")).strength(3.0F, 5.0F).sound(SoundType.STONE).requiresCorrectToolForDrops()));
public static final Block AMETHYST_ORE_BLOCK = register("amethyst_ore_block", new Block(BlockBehaviour.Properties.of().setId(blockId("amethyst_ore_block")).strength(5.0F, 8.0F).sound(SoundType.METAL).requiresCorrectToolForDrops()));
// M-grinder-1 (wiki grinder §2) : 1 block + 5 casing + 20 frame + 1 lave (26 blocs).
// Crafts M-grinder-2 ; multibloc + GUI M-grinder-2/3.
public static final Block GRINDER_BLOCK = register("grinder_block", new Block(BlockBehaviour.Properties.of().setId(blockId("grinder_block")).strength(5.0F, 10.0F).sound(SoundType.METAL).requiresCorrectToolForDrops()));
public static final Block GRINDER_CASING = register("grinder_casing", new Block(BlockBehaviour.Properties.of().setId(blockId("grinder_casing")).strength(5.0F, 10.0F).sound(SoundType.METAL).requiresCorrectToolForDrops()));
public static final Block GRINDER_FRAME = register("grinder_frame", new Block(BlockBehaviour.Properties.of().setId(blockId("grinder_frame")).strength(5.0F, 10.0F).sound(SoundType.METAL).requiresCorrectToolForDrops()));
public static final Block AMETHYST_SPIKE = register("amethyst_spike", new Block(BlockBehaviour.Properties.of().setId(blockId("amethyst_spike")).strength(1.0F, 10.0F).sound(SoundType.GRAVEL)));
public static final Block CAVE_BLOCK = register("cave_block", new Block(BlockBehaviour.Properties.of().setId(blockId("cave_block")).strength(1.0F, 10.0F).sound(SoundType.METAL)));
public static final Block FIKUTSI_STAGE0 = register("fikutsi_stage0", new Block(BlockBehaviour.Properties.of().setId(blockId("fikutsi_stage0")).strength(0.0F, 0.0F).sound(SoundType.CROP).noCollision().instabreak()));
@@ -59,6 +59,15 @@ public final class PalaItems {
public static final Item TITANE_STICK = register("titane_stick", id -> new Item(new Item.Properties().setId(id)));
public static final Item TRIXIUM_GEM = register("trixium_gem", id -> new Item(new Item.Properties().setId(id)));
public static final Item XP_BERRIES = register("xp_berries", id -> new Item(new Item.Properties().setId(id)));
// M-grinder-1 (wiki grinder) : patterns + socket + orbe. Textures d'origine legacy
// (textures/, jamais cablees). Les crafts complets + GUI arrivent en M-grinder-2.
public static final Item SOCKET_PATTERN = register("socket_pattern", id -> new Item(new Item.Properties().setId(id)));
public static final Item HAMMER_PATTERN = register("hammer_pattern", id -> new Item(new Item.Properties().setId(id)));
public static final Item BROADSWORD_PATTERN = register("broadsword_pattern", id -> new Item(new Item.Properties().setId(id)));
public static final Item FASTSWORD_PATTERN = register("fastsword_pattern", id -> new Item(new Item.Properties().setId(id)));
public static final Item INGOT_PATTERN = register("ingot_pattern", id -> new Item(new Item.Properties().setId(id)));
public static final Item SOCKET = register("socket", id -> new Item(new Item.Properties().setId(id)));
public static final Item ORB_KNOCKBACK = register("orb_knockback", id -> new Item(new Item.Properties().setId(id)));
public static final Item PALA_APPLE = register("pala_apple", id -> new Item(new Item.Properties().setId(id).stacksTo(16).food(new FoodProperties(4, 0.3F, true))));
public static final Item AMETHYST_AXE = register("amethyst_axe", id -> new Item(new Item.Properties().setId(id).axe(PalaToolMaterials.AMETHYST_AXE, 3.7F, -3.0F)));
public static final Item AMETHYST_HAMMER = register("amethyst_hammer", id -> new Item(new Item.Properties().setId(id).pickaxe(PalaToolMaterials.AMETHYST_HAMMER, 3.0F, -3.2F)));
@@ -113,6 +122,11 @@ public final class PalaItems {
public static final Item TITANE_PICKAXE = register("titane_pickaxe", id -> new Item(new Item.Properties().setId(id).pickaxe(PalaToolMaterials.TITANE_PICKAXE, 2.4F, -3.0F)));
public static final Item TITANE_SHOVEL = register("titane_shovel", id -> new Item(new Item.Properties().setId(id).shovel(PalaToolMaterials.TITANE_SHOVEL, 1.8F, -3.0F)));
public static final Item TITANE_SWORD = register("titane_sword", id -> new Item(new Item.Properties().setId(id).sword(PalaToolMaterials.TITANE_SWORD, 6.0F, -2.4F)));
// M-grinder-1 (wiki grinder §3.3/3.4) : broadsword +9 (lente) / fastsword +7 (rapide) vs
// epee paladium +10 (8.0F). Echelle : 7.0F -> +9, 5.0F -> +7. Vitesses UNVERIFIED (wiki
// qualitatif seul) : -2.6 lente, -1.8 rapide. Meme materiau paladium (dura 4999).
public static final Item BROADSWORD = register("broadsword", id -> new Item(new Item.Properties().setId(id).sword(PalaToolMaterials.PALADIUM_SWORD, 7.0F, -2.6F)));
public static final Item FASTSWORD = register("fastsword", id -> new Item(new Item.Properties().setId(id).sword(PalaToolMaterials.PALADIUM_SWORD, 5.0F, -1.8F)));
public static final Item AMETHYST_HELMET = register("amethyst_helmet", id -> new Item(new Item.Properties().setId(id).durability(15).humanoidArmor(PalaArmorMaterials.AMETHYST, ArmorType.HELMET)));
public static final Item AMETHYST_CHESTPLATE = register("amethyst_chestplate", id -> new Item(new Item.Properties().setId(id).durability(15).humanoidArmor(PalaArmorMaterials.AMETHYST, ArmorType.CHESTPLATE)));
public static final Item AMETHYST_LEGGINGS = register("amethyst_leggings", id -> new Item(new Item.Properties().setId(id).durability(15).humanoidArmor(PalaArmorMaterials.AMETHYST, ArmorType.LEGGINGS)));
@@ -67,6 +67,13 @@ public final class PalaTabs {
output.accept(PalaItems.TITANE_STICK);
output.accept(PalaItems.TRIXIUM_GEM);
output.accept(PalaItems.XP_BERRIES);
output.accept(PalaItems.SOCKET_PATTERN);
output.accept(PalaItems.HAMMER_PATTERN);
output.accept(PalaItems.BROADSWORD_PATTERN);
output.accept(PalaItems.FASTSWORD_PATTERN);
output.accept(PalaItems.INGOT_PATTERN);
output.accept(PalaItems.SOCKET);
output.accept(PalaItems.ORB_KNOCKBACK);
output.accept(PalaItems.PALA_APPLE);
output.accept(PalaItems.AMETHYST_AXE);
output.accept(PalaItems.AMETHYST_HAMMER);
@@ -86,6 +93,8 @@ public final class PalaTabs {
output.accept(PalaItems.PALADIUM_PICKAXE);
output.accept(PalaItems.PALADIUM_SHOVEL);
output.accept(PalaItems.PALADIUM_SWORD);
output.accept(PalaItems.BROADSWORD);
output.accept(PalaItems.FASTSWORD);
output.accept(PalaItems.PALADIUM_GREEN_AXE);
output.accept(PalaItems.PALADIUM_GREEN_PICKAXE);
output.accept(PalaItems.PALADIUM_GREEN_SHOVEL);
@@ -161,6 +170,9 @@ public final class PalaTabs {
output.accept(PalaBlocks.FIKUTSI_STAGE3);
output.accept(PalaBlocks.FINDIUM_ORE);
output.accept(PalaBlocks.FINDIUM_ORE_BLOCK);
output.accept(PalaBlocks.GRINDER_BLOCK);
output.accept(PalaBlocks.GRINDER_CASING);
output.accept(PalaBlocks.GRINDER_FRAME);
output.accept(PalaBlocks.KISAKAY_ORE);
output.accept(PalaBlocks.KISAKAY_ORE_BLOCK);
output.accept(PalaBlocks.KIWANO_STAGE0);
@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "pala:block/grinder_block"
}
}
}
@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "pala:block/grinder_casing"
}
}
}
@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "pala:block/grinder_frame"
}
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/broadsword"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/broadsword_pattern"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/fastsword"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/fastsword_pattern"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/grinder_block"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/grinder_casing"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/grinder_frame"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/hammer_pattern"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/ingot_pattern"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/orb_knockback"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/socket"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "pala:item/socket_pattern"
}
}
@@ -204,5 +204,20 @@
"item.pala.trixium_ore": "Trixium Ore",
"item.pala.trixium_ore_block": "Trixium Block",
"item.pala.xp_bush": "Xp Bush",
"item.pala.paladium_furnace": "Paladium Furnace"
"item.pala.paladium_furnace": "Paladium Furnace",
"block.pala.grinder_block": "Grinder Block",
"block.pala.grinder_casing": "Grinder Casing",
"block.pala.grinder_frame": "Grinder Frame",
"item.pala.grinder_block": "Grinder Block",
"item.pala.grinder_casing": "Grinder Casing",
"item.pala.grinder_frame": "Grinder Frame",
"item.pala.socket_pattern": "Socket Pattern",
"item.pala.hammer_pattern": "Hammer Pattern",
"item.pala.broadsword_pattern": "Broadsword Pattern",
"item.pala.fastsword_pattern": "Fastsword Pattern",
"item.pala.ingot_pattern": "Ingot Pattern",
"item.pala.socket": "Socket",
"item.pala.orb_knockback": "Knockback Orb",
"item.pala.broadsword": "Broadsword",
"item.pala.fastsword": "Fastsword"
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "pala:block/grinder_block"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "pala:block/grinder_casing"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "pala:block/grinder_frame"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/handheld",
"textures": {
"layer0": "pala:item/broadsword"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "pala:item/broadsword_pattern"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/handheld",
"textures": {
"layer0": "pala:item/fastsword"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "pala:item/fastsword_pattern"
}
}
@@ -0,0 +1,3 @@
{
"parent": "pala:block/grinder_block"
}
@@ -0,0 +1,3 @@
{
"parent": "pala:block/grinder_casing"
}
@@ -0,0 +1,3 @@
{
"parent": "pala:block/grinder_frame"
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "pala:item/hammer_pattern"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "pala:item/ingot_pattern"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "pala:item/orb_knockback"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "pala:item/socket"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "pala:item/socket_pattern"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 B

@@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"pattern": [
"###",
"#F#",
"###"
],
"key": {
"#": "pala:paladium_ingot",
"F": "pala:paladium_furnace"
},
"result": {
"id": "pala:grinder_block",
"count": 1
}
}
@@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"pattern": [
"###",
"# #",
"###"
],
"key": {
"#": "pala:paladium_ingot"
},
"result": {
"id": "pala:grinder_casing",
"count": 1
}
}
@@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"pattern": [
"#T#",
"# #",
"#T#"
],
"key": {
"#": "pala:paladium_ingot",
"T": "pala:titane_ingot"
},
"result": {
"id": "pala:grinder_frame",
"count": 1
}
}
Binary file not shown.