~williewillus/violet-moon

botania: Add livingrock slate, new textures for catalysts v1 APPLIED

Artemis System: 1
 Add livingrock slate, new textures for catalysts

 26 files changed, 91 insertions(+), 5 deletions(-)
#1075866 linux.yml failed
just wanted to send to the list because i was adding a new block
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~williewillus/violet-moon/patches/45715/mbox | git am -3
Learn more about email & git

[PATCH botania] Add livingrock slate, new textures for catalysts Export this patch

---
The pool overlay doesn't look amazing on the new pools still, but i have an idea to
change it up a little that i'll try implementing later
 .../78d786698a78a3fae4900a3727160f8869454f97  |   4 +++-
 .../bfa01a6ca2555c100103725bf5c9e6da285f29c3  |   2 +-
 .../e50b421f53620945aa4912c1c2808ee8f6be1628  |   1 +
 .../fe6dd937b27a0445e2470653094724c1477de210  |   1 +
 .../botania/blockstates/livingrock_slate.json |   7 ++++++
 .../models/block/conjuration_catalyst.json    |   5 +++--
 .../models/block/livingrock_slate.json        |   6 ++++++
 .../botania/models/item/livingrock_slate.json |   3 +++
 .../loot_tables/blocks/livingrock_slate.json  |  20 ++++++++++++++++++
 .../tags/blocks/mineable/pickaxe.json         |   1 +
 .../botania/common/block/BotaniaBlocks.java   |   3 +++
 .../botania/common/lib/LibBlockNames.java     |   1 +
 .../botania/data/BlockstateProvider.java      |   6 +++++-
 .../resources/assets/botania/lang/en_us.json  |   1 +
 .../textures/block/alchemy_catalyst.png       | Bin 16604 -> 1434 bytes
 .../block/alchemy_catalyst.png.mcmeta         |   7 ++++++
 .../block/alchemy_catalyst_overlay.png        | Bin 16042 -> 727 bytes
 .../block/alchemy_catalyst_overlay.png.mcmeta |   7 ++++++
 .../textures/block/conjuration_catalyst.png   | Bin 16544 -> 574 bytes
 .../block/conjuration_catalyst.png.mcmeta     |   7 ++++++
 .../block/conjuration_catalyst_mirrored.png   | Bin 0 -> 538 bytes
 .../conjuration_catalyst_mirrored.png.mcmeta  |   7 ++++++
 .../block/conjuration_catalyst_overlay.png    | Bin 15988 -> 239 bytes
 .../conjuration_catalyst_overlay.png.mcmeta   |   7 ++++++
 .../textures/block/livingrock_slate.png       | Bin 0 -> 288 bytes
 .../working_files/block/livingrock.ase        | Bin 5871 -> 10420 bytes
 26 files changed, 91 insertions(+), 5 deletions(-)
 create mode 100644 Xplat/src/generated/resources/assets/botania/blockstates/livingrock_slate.json
 create mode 100644 Xplat/src/generated/resources/assets/botania/models/block/livingrock_slate.json
 create mode 100644 Xplat/src/generated/resources/assets/botania/models/item/livingrock_slate.json
 create mode 100644 Xplat/src/generated/resources/data/botania/loot_tables/blocks/livingrock_slate.json
 create mode 100644 Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst.png.mcmeta
 create mode 100644 Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst_overlay.png.mcmeta
 create mode 100644 Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst.png.mcmeta
 create mode 100644 Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_mirrored.png
 create mode 100644 Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_mirrored.png.mcmeta
 create mode 100644 Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_overlay.png.mcmeta
 create mode 100644 Xplat/src/main/resources/assets/botania/textures/block/livingrock_slate.png

diff --git a/Xplat/src/generated/resources/.cache/78d786698a78a3fae4900a3727160f8869454f97 b/Xplat/src/generated/resources/.cache/78d786698a78a3fae4900a3727160f8869454f97
index 69b5bc374..ac152c2be 100644
--- a/Xplat/src/generated/resources/.cache/78d786698a78a3fae4900a3727160f8869454f97
+++ b/Xplat/src/generated/resources/.cache/78d786698a78a3fae4900a3727160f8869454f97
@@ -298,6 +298,7 @@ d2b8636160eb41e54a34ea5cc8b8b21417d3749b assets/botania/blockstates/livingrock_b
1cfa3acde0a62991b1e1d1419b1ea5cd405e70c9 assets/botania/blockstates/livingrock_bricks_stairs.json
9176b534dc3cbaf31d5f0f0eb2400419a4c7d1ee assets/botania/blockstates/livingrock_bricks_wall.json
3425c1ee14bbe96436c279b281e9c3ec838e3af2 assets/botania/blockstates/livingrock_slab.json
3ba939233caf101e97289d84ec97aeb9cba4e555 assets/botania/blockstates/livingrock_slate.json
b915fca66466339402c1aaa2ed92453b134802ec assets/botania/blockstates/livingrock_stairs.json
4063134083d719d28fbdb6f7594f4b9e6b2784e7 assets/botania/blockstates/livingrock_wall.json
2b5f04574d1a974bb0ec4d72222ec62f5c9b7aac assets/botania/blockstates/livingwood.json
@@ -687,7 +688,7 @@ d3e1152342af5fb8bb78c2318a71286db651cf87 assets/botania/models/block/chiseled_me
2bd099fb649225025ca73dbe8965fbb590c60fd7 assets/botania/models/block/chiseled_sunny_quartz.json
494ff4cd5443c4905c8e5bd846a4780bbc14c1b2 assets/botania/models/block/clayconia.json
7d7051fb042ca628836942c3059779277081ffb2 assets/botania/models/block/clayconia_chibi.json
a81420bbdace58af0c406fc0b798a0cb63db48c7 assets/botania/models/block/conjuration_catalyst.json
d50741f4a3405d9c0735b2c2207ccf7681c8ce2f assets/botania/models/block/conjuration_catalyst.json
1add40e50b08ec86cbd46f36a249cb6f628ea013 assets/botania/models/block/corporea_block.json
98165be84de7c03394107f396f4dafbe33bab52d assets/botania/models/block/corporea_brick.json
c3aa63fec5aa6f05cf8021c525b03b0dfa1592d5 assets/botania/models/block/corporea_brick_slab.json
@@ -1012,6 +1013,7 @@ fb3eebd637518e0cc76d9742d48880c27f5546ad assets/botania/models/block/livingrock_
c3b2e71d756cd058b8d4098cd2c83719f87599b1 assets/botania/models/block/livingrock_mirrored.json
e0078e8bdcfdd135ff9295bbe82d3c24e8838c1b assets/botania/models/block/livingrock_slab.json
de85022fcad09f8ebe55b7f5b42bfa31c5fbca27 assets/botania/models/block/livingrock_slab_top.json
3781033d3a0ef20b0f558742326f05487ebdbf28 assets/botania/models/block/livingrock_slate.json
9d88e30bc39a225483da7544a41ea5a16b0a7cbb assets/botania/models/block/livingrock_stairs.json
d0994a2585977533785327a612daf378831303d1 assets/botania/models/block/livingrock_stairs_inner.json
1672b5a926a519b098dfa06695b739488a3ae28f assets/botania/models/block/livingrock_stairs_outer.json
diff --git a/Xplat/src/generated/resources/.cache/bfa01a6ca2555c100103725bf5c9e6da285f29c3 b/Xplat/src/generated/resources/.cache/bfa01a6ca2555c100103725bf5c9e6da285f29c3
index f5e43947e..667a364fc 100644
--- a/Xplat/src/generated/resources/.cache/bfa01a6ca2555c100103725bf5c9e6da285f29c3
+++ b/Xplat/src/generated/resources/.cache/bfa01a6ca2555c100103725bf5c9e6da285f29c3
@@ -42,7 +42,7 @@ b59d5b36ebe88ae60fca62eb6985e9825e0a9031 data/minecraft/tags/blocks/fences.json
0d43cab6db2ee9b5d1865b8938630349ce5bfa23 data/minecraft/tags/blocks/logs_that_burn.json
becd82a0a742cbb63f817ee0db553914c88660c0 data/minecraft/tags/blocks/mineable/axe.json
8393fc4bde3a0ab934c23ea1ab61c715005d6fad data/minecraft/tags/blocks/mineable/hoe.json
17eeb23733b9f65a0bd6dcbac03ad77fbcadbd49 data/minecraft/tags/blocks/mineable/pickaxe.json
49028c0568cb6dac935978c2eef4c62892e2ec0a data/minecraft/tags/blocks/mineable/pickaxe.json
d007dc55eac3ad87cfa2bb5010e3aae01bd8f100 data/minecraft/tags/blocks/mineable/shovel.json
54675e9a9831f96294a26f8ea2d942bee9b19559 data/minecraft/tags/blocks/mushroom_grow_block.json
5a8edc115bd46b1aaf4c4c720b921774a1a9deea data/minecraft/tags/blocks/planks.json
diff --git a/Xplat/src/generated/resources/.cache/e50b421f53620945aa4912c1c2808ee8f6be1628 b/Xplat/src/generated/resources/.cache/e50b421f53620945aa4912c1c2808ee8f6be1628
index bbc463f30..63ca6bc80 100644
--- a/Xplat/src/generated/resources/.cache/e50b421f53620945aa4912c1c2808ee8f6be1628
+++ b/Xplat/src/generated/resources/.cache/e50b421f53620945aa4912c1c2808ee8f6be1628
@@ -390,6 +390,7 @@ c80abc9d00c1f0016af11e037f7c0da34e733da7 assets/botania/models/item/livingrock_b
7aeb81ccbd8979ad397b93a29bc16887845b80e0 assets/botania/models/item/livingrock_bricks_stairs.json
c02a105573e954575707fbe2452bae4d3156a0ba assets/botania/models/item/livingrock_bricks_wall.json
49ea74b26867ce497a4af45c002cfa02e7be8e3e assets/botania/models/item/livingrock_slab.json
5709512364ab62f7c850ebdff949224f11cb64fd assets/botania/models/item/livingrock_slate.json
d00c9c6f316d26dc59464002ec955eec0f324e89 assets/botania/models/item/livingrock_stairs.json
b5681239b7a157bc56db2ac725a805154f690bac assets/botania/models/item/livingrock_wall.json
64a75f117265a8a9a2be99b0c9ab0ceb510b0d20 assets/botania/models/item/livingwood.json
diff --git a/Xplat/src/generated/resources/.cache/fe6dd937b27a0445e2470653094724c1477de210 b/Xplat/src/generated/resources/.cache/fe6dd937b27a0445e2470653094724c1477de210
index 8ce237594..bb9c214df 100644
--- a/Xplat/src/generated/resources/.cache/fe6dd937b27a0445e2470653094724c1477de210
+++ b/Xplat/src/generated/resources/.cache/fe6dd937b27a0445e2470653094724c1477de210
@@ -299,6 +299,7 @@ be8209ae2d4776c54cdff6350f884e83982abfcc data/botania/loot_tables/blocks/livingr
fbd4d95615af0c9adadf877a0c5ef9dc9a4f645b data/botania/loot_tables/blocks/livingrock_bricks_stairs.json
17b79f5b4ac6c7c3f3936cadd034b1b525f2d41d data/botania/loot_tables/blocks/livingrock_bricks_wall.json
6b1e8fcecde6a48acba1a71bb579fccfa0638b88 data/botania/loot_tables/blocks/livingrock_slab.json
5fd0b6be908cef855eb8f72087248ab81e6f2114 data/botania/loot_tables/blocks/livingrock_slate.json
01829b46ea7761b5a880af2cb6e310e34cdfb362 data/botania/loot_tables/blocks/livingrock_stairs.json
ac1112c13ffd75190e297885ddd200486a344977 data/botania/loot_tables/blocks/livingrock_wall.json
b113617588f0c8a3af2d5a40760ec02eedecb6ce data/botania/loot_tables/blocks/livingwood.json
diff --git a/Xplat/src/generated/resources/assets/botania/blockstates/livingrock_slate.json b/Xplat/src/generated/resources/assets/botania/blockstates/livingrock_slate.json
new file mode 100644
index 000000000..93914090b
--- /dev/null
+++ b/Xplat/src/generated/resources/assets/botania/blockstates/livingrock_slate.json
@@ -0,0 +1,7 @@
{
  "variants": {
    "": {
      "model": "botania:block/livingrock_slate"
    }
  }
}
\ No newline at end of file
diff --git a/Xplat/src/generated/resources/assets/botania/models/block/conjuration_catalyst.json b/Xplat/src/generated/resources/assets/botania/models/block/conjuration_catalyst.json
index bba9b1ad5..ddfc3431b 100644
--- a/Xplat/src/generated/resources/assets/botania/models/block/conjuration_catalyst.json
+++ b/Xplat/src/generated/resources/assets/botania/models/block/conjuration_catalyst.json
@@ -1,6 +1,7 @@
{
  "parent": "minecraft:block/cube_all",
  "parent": "botania:block/shapes/cube_checkered",
  "textures": {
    "all": "botania:block/conjuration_catalyst"
    "north": "botania:block/conjuration_catalyst_mirrored",
    "side": "botania:block/conjuration_catalyst"
  }
}
\ No newline at end of file
diff --git a/Xplat/src/generated/resources/assets/botania/models/block/livingrock_slate.json b/Xplat/src/generated/resources/assets/botania/models/block/livingrock_slate.json
new file mode 100644
index 000000000..f4757d808
--- /dev/null
+++ b/Xplat/src/generated/resources/assets/botania/models/block/livingrock_slate.json
@@ -0,0 +1,6 @@
{
  "parent": "minecraft:block/cube_all",
  "textures": {
    "all": "botania:block/livingrock_slate"
  }
}
\ No newline at end of file
diff --git a/Xplat/src/generated/resources/assets/botania/models/item/livingrock_slate.json b/Xplat/src/generated/resources/assets/botania/models/item/livingrock_slate.json
new file mode 100644
index 000000000..c29b23dd3
--- /dev/null
+++ b/Xplat/src/generated/resources/assets/botania/models/item/livingrock_slate.json
@@ -0,0 +1,3 @@
{
  "parent": "botania:block/livingrock_slate"
}
\ No newline at end of file
diff --git a/Xplat/src/generated/resources/data/botania/loot_tables/blocks/livingrock_slate.json b/Xplat/src/generated/resources/data/botania/loot_tables/blocks/livingrock_slate.json
new file mode 100644
index 000000000..23b6a8c56
--- /dev/null
+++ b/Xplat/src/generated/resources/data/botania/loot_tables/blocks/livingrock_slate.json
@@ -0,0 +1,20 @@
{
  "type": "minecraft:block",
  "pools": [
    {
      "bonus_rolls": 0.0,
      "conditions": [
        {
          "condition": "minecraft:survives_explosion"
        }
      ],
      "entries": [
        {
          "type": "minecraft:item",
          "name": "botania:livingrock_slate"
        }
      ],
      "rolls": 1.0
    }
  ]
}
\ No newline at end of file
diff --git a/Xplat/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/Xplat/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json
index 43579b60e..2f9f59c96 100644
--- a/Xplat/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json
+++ b/Xplat/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json
@@ -105,6 +105,7 @@
    "botania:livingrock_bricks_slab",
    "botania:livingrock_bricks_stairs",
    "botania:livingrock_slab",
    "botania:livingrock_slate",
    "botania:livingrock_stairs",
    "botania:mana_detector",
    "botania:mana_diamond_block",
diff --git a/Xplat/src/main/java/vazkii/botania/common/block/BotaniaBlocks.java b/Xplat/src/main/java/vazkii/botania/common/block/BotaniaBlocks.java
index 986199813..f0cf4fca6 100644
--- a/Xplat/src/main/java/vazkii/botania/common/block/BotaniaBlocks.java
+++ b/Xplat/src/main/java/vazkii/botania/common/block/BotaniaBlocks.java
@@ -204,6 +204,7 @@ public final class BotaniaBlocks {

	public static final Block livingrock = new BotaniaBlock(BlockBehaviour.Properties.of().strength(2, 10).sound(SoundType.STONE).mapColor(MapColor.TERRACOTTA_WHITE).requiresCorrectToolForDrops());
	public static final Block livingrockPolished = new BotaniaBlock(BlockBehaviour.Properties.copy(livingrock));
	public static final Block livingrockSlate = new BotaniaBlock(BlockBehaviour.Properties.copy(livingrock));
	public static final Block livingrockBrick = new BotaniaBlock(BlockBehaviour.Properties.copy(livingrock));
	public static final Block livingrockBrickChiseled = new BotaniaBlock(BlockBehaviour.Properties.copy(livingrock));
	public static final Block livingrockBrickCracked = new BotaniaBlock(BlockBehaviour.Properties.copy(livingrock));
@@ -728,6 +729,7 @@ public static void registerBlocks(BiConsumer<Block, ResourceLocation> r) {
		r.accept(livingrockPolishedStairs, prefix(LibBlockNames.LIVING_ROCK_POLISHED + STAIR_SUFFIX));
		r.accept(livingrockPolishedSlab, prefix(LibBlockNames.LIVING_ROCK_POLISHED + SLAB_SUFFIX));
		r.accept(livingrockPolishedWall, prefix(LibBlockNames.LIVING_ROCK_POLISHED + WALL_SUFFIX));
		r.accept(livingrockSlate, prefix(LibBlockNames.LIVING_ROCK_SLATE));
		r.accept(livingrockBrick, prefix(LibBlockNames.LIVING_ROCK_BRICK));
		r.accept(livingrockBrickStairs, prefix(LibBlockNames.LIVING_ROCK_BRICK + STAIR_SUFFIX));
		r.accept(livingrockBrickSlab, prefix(LibBlockNames.LIVING_ROCK_BRICK + SLAB_SUFFIX));
@@ -1212,6 +1214,7 @@ public static void registerItemBlocks(BiConsumer<Item, ResourceLocation> r) {
		r.accept(new BlockItem(livingrockPolishedStairs, props), BuiltInRegistries.BLOCK.getKey(livingrockPolishedStairs));
		r.accept(new BlockItem(livingrockPolishedSlab, props), BuiltInRegistries.BLOCK.getKey(livingrockPolishedSlab));
		r.accept(new BlockItem(livingrockPolishedWall, props), BuiltInRegistries.BLOCK.getKey(livingrockPolishedWall));
		r.accept(new BlockItem(livingrockSlate, props), BuiltInRegistries.BLOCK.getKey(livingrockSlate));
		r.accept(new BlockItem(livingrockBrick, props), BuiltInRegistries.BLOCK.getKey(livingrockBrick));
		r.accept(new BlockItem(livingrockBrickStairs, props), BuiltInRegistries.BLOCK.getKey(livingrockBrickStairs));
		r.accept(new BlockItem(livingrockBrickSlab, props), BuiltInRegistries.BLOCK.getKey(livingrockBrickSlab));
diff --git a/Xplat/src/main/java/vazkii/botania/common/lib/LibBlockNames.java b/Xplat/src/main/java/vazkii/botania/common/lib/LibBlockNames.java
index c60fbcbcd..07c7c3bc8 100644
--- a/Xplat/src/main/java/vazkii/botania/common/lib/LibBlockNames.java
+++ b/Xplat/src/main/java/vazkii/botania/common/lib/LibBlockNames.java
@@ -19,6 +19,7 @@ public final class LibBlockNames {
	public static final String APOTHECARY_PREFIX = "apothecary_";
	public static final String LIVING_ROCK = "livingrock";
	public static final String LIVING_ROCK_POLISHED = "polished_livingrock";
	public static final String LIVING_ROCK_SLATE = "livingrock_slate";
	public static final String LIVING_ROCK_BRICK = "livingrock_bricks";
	public static final String LIVING_ROCK_BRICK_MOSSY = "mossy_livingrock_bricks";
	public static final String LIVING_ROCK_BRICK_CRACKED = "cracked_livingrock_bricks";
diff --git a/Xplat/src/main/java/vazkii/botania/data/BlockstateProvider.java b/Xplat/src/main/java/vazkii/botania/data/BlockstateProvider.java
index 41dad9730..0c3fbb1e3 100644
--- a/Xplat/src/main/java/vazkii/botania/data/BlockstateProvider.java
+++ b/Xplat/src/main/java/vazkii/botania/data/BlockstateProvider.java
@@ -350,6 +350,10 @@ protected void registerStatesAndModels() {
		);
		slabBlock(remainingBlocks, livingrockPolishedSlab, polishedLivingrockSlabDoubleModel, polishedLivingrockSlabSideTexture, polishedLivingrockTexture, polishedLivingrockTexture);

		var conjurationTexture = getBlockTexture(conjurationCatalyst);
		var conjurationMirrored = getBlockTexture(conjurationCatalyst, "_mirrored");
		checkeredBlockWithBlockstate(remainingBlocks, conjurationCatalyst, conjurationTexture, conjurationMirrored);

		// block entities with only particles
		particleOnly(remainingBlocks, animatedTorch, getBlockTexture(Blocks.REDSTONE_TORCH));
		particleOnly(remainingBlocks, avatar, getBlockTexture(livingwoodLog));
@@ -1090,7 +1094,7 @@ protected ResourceLocation checkeredBlockWithBlockstate(Set<Block> blocks, Block
		BiFunction<String, Optional<String>, ModelTemplate> checkeredTemplate = (model, suffix) -> new ModelTemplate(Optional.of(prefix("block/shapes/" + model)), suffix, TextureSlot.SIDE, TextureSlot.NORTH);
		TextureMapping checkeredMapping = new TextureMapping().put(TextureSlot.SIDE, texture).put(TextureSlot.NORTH, mirroredTexture);

		var blockModel = checkeredTemplate.apply("cube_checkered", Optional.empty()).create(biomeBrickMesa, checkeredMapping, this.modelOutput);
		var blockModel = checkeredTemplate.apply("cube_checkered", Optional.empty()).create(block, checkeredMapping, this.modelOutput);
		cubeAllWithModels(blocks, block, new ResourceLocation[] { blockModel }, new Integer[] { 1 });
		return blockModel;
	}
diff --git a/Xplat/src/main/resources/assets/botania/lang/en_us.json b/Xplat/src/main/resources/assets/botania/lang/en_us.json
index 270a7b14b..ff274fdea 100644
--- a/Xplat/src/main/resources/assets/botania/lang/en_us.json
+++ b/Xplat/src/main/resources/assets/botania/lang/en_us.json
@@ -586,6 +586,7 @@
  "block.botania.apothecary_deepslate": "Deepslate Petal Apothecary",
  "block.botania.livingrock": "Livingrock",
  "block.botania.polished_livingrock": "Polished Livingrock",
  "block.botania.livingrock_slate": "Livingrock Slate",
  "block.botania.polished_livingrock_slab": "Polished Livingrock Slab",
  "block.botania.polished_livingrock_stairs": "Polished Livingrock Stairs",
  "block.botania.polished_livingrock_wall": "Polished Livingrock Wall",
diff --git a/Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst.png b/Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst.png
index 3bae9117ee902d11af5b01e0064514fe2d074a24..84fc61007cb078d775a6246afadd5d62e2abe628 100644
GIT binary patch
delta 1430
zcmV;H1!?-+fdQHekQaY&2nGNE02c@FI{*Lx0drDELIAGL9O(c61yo5yK~z|U?U~O`
z8&?#EKMYYkgHiZrApuRJqzEaIfCv$xs0!WSt|~vkEc*aFOCBIgKY-OuOEwKcC<39@
zm5dr$SXBazDuZ2Qm>CNJU0lwcJL4H*T$Faf-Ppe4^P4kw&iQ}loI5?0^7;kFa9tMw
z+qQ|Dj~?p-s2?7Zwk$pAdmg^$0kqAVpJ~fd0su2la{z2^6t$7e{r1bM7U|u}191Gf
zpafjkC2d)>YVh{g0z;#gHk5I?cKLgu$ekCfoUY~YeIMWR=qYWjUH~)>Y7C8Lweg$R
zg^);Q#{uBZ3*~>!$Gr~>jf~P$DX(9+u8VEkd@=krpgaMv`ZEA{C&z6fvJR=}s{Z`;
zRmj-<e*Cz=y$8x$S;Un5NzNWMmIXEECR|5<Pnq`@Ae~OP8OIIp<QU)cln1WsQmPc&
z&SVP7IsojZUIiXRBW`vo-zM;J?*qQ?hg_Evr65?8cYA;87ClS_B64g#`#k{lY*Alk
z+Okv}G!AMk&N=$_JsAkjWRB{25%1)f3D;3VmZdJi>d(;JRfbl7hU$5da<dRJ6k`!@
z93H4htd!R;>W7Ck4iB`!(8y?L(d3$C&i8%&KOM?ITL#K+b1pjHXWj+dwnIEHkD2i@
zJTejpzzu)#V0uzzVX1O851u_&xA@I##e<aa08|#HEsN>N9Mh9IS}FvXd75hzOXPug
zA~7LjY1s)0{C7MMZ)Fj?;(>Sq5gs&mKNAlQ9$vu%GnHkSJh=BDe3>C0{CPK-2anF<
zdC(_o@GzC9d{Cf4fhPlw5@~^LAhVt|c+g)AE<u0XiQ~cGm@+ht;g$#HF&)a1!oKH`
zwk*<?#q3mGXQzzWsXWh~=k<E%`k=WB<)*3+qDCfc-tDb2lf9xoxGoQLC{Nt~lJQp9
z*y_*d7?FZQ$TT!E3S5&1A`;7k!A9pikjsIatPiT^o%7(QAG+j0X2)UsC7~0=@?f~u
z&Vzr^s^Y=fLI*sUz|kV&-_fP9cXCW-$Kh-th6fX_;z2!IWZw<~sh%x{jNz6CvGsu@
zQuREj4<s|C{DYv5lu{s6AC#MFa=eveyp^N5ix!HCCGtQ#G0QxF#W^P=a3v4K*yMpQ
zLOe<2!FDZ~2O<*71Ae~&9{l~+r+IKUt3H3*cu>#Y5D&~$mLWVaU618~dtcomX)euU
z-+rffu(^@IgW+19eY-%zE|9^YcPq~+u(T3*vbmvBdTH5Vb3<KnpKaUt{TXo4pfGcP
z`z0D4VhoB0y3oAk!R6WCt0a+b%$$?k3&C?kQeX4n=nvSp)ujDCr;P{4(0qX4*^z(9
z12HtQ4nZ#|0<k<eUCU`tAj|_{gm{w311Y5AcpxINJUIHXa~=rZpo{uo;F0=l<AKC`
zCp?fc2x533eW5vo2d3+>JdiCOQzXiRQYB&kAhYA>uFNElIfMs`bB^wCH4o-j02C-p
zaEPHS+|sf`t9HwSSRTlh-`T>|Jdl6qhNOO|K9Ehu)3uz=Oc9ETCGtQ#k(iJn?VboE
z^1w7Uc_54sPrBm4zFlB&EP)4KO?S=%bE_=GgZY(z(Jx56cftcHgW#GxFkO%3fwXjS
zJosi&@t}I1z=Ne_M|Wi=dCXC&1Y3eq(T4hk#W~e4lq$tg<5{W{wXulb_6vV8`v;Q3
z=KewNRz7$&a5;Ln@(kC4{R7Q|`IUAaM8zR^c3hhWnH{x@73D!_KT$GL0xG(nXhJ1%
zKT!(lBp!&jZHssv9wfeBXw^Ow54wK8@JSv>OJ|C7^?t$Rfi#~$=oNwRAm|q^4b9va
kmt}t?`hMa6Q6KyR^0;A^#x@Q*LI3~&07*qoM6N<$f^z?=<NyEw

literal 16604
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
IZdS>^04GJOmjD0&

diff --git a/Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst.png.mcmeta b/Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst.png.mcmeta
new file mode 100644
index 000000000..95bb238a9
--- /dev/null
+++ b/Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst.png.mcmeta
@@ -0,0 +1,7 @@
{
	"animation": {
		"frametime": 120,
		"interpolate": true,
		"frames": [ 0, 1, 2, 3, 4, 5, 6 ]
	}
}
diff --git a/Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst_overlay.png b/Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst_overlay.png
index 3b9d059fb327161eb5b067b0ddb54ce431a54233..c791ea674808d1e2732c57b8301cc9a52157b6aa 100644
GIT binary patch
delta 716
zcmV;-0yF)peb)t$7k_XF1^@s67YFb=00001b5ch_0Itp)=>Px%kx4{BR9J=WS;0!f
zKoFglg1v}diu5LkU!X_-!VmG_cl6+g^e=L(Ur>bJisWMP(n4W9gh?iwH#@V9iVz<N
z>ALfFlI(jsyCM2B2uBLxNWp4bEhwxOP1~3+4kgiOLL(F?gMaRyt3FwopphZ=TMGNF
z-pM3M1vA#mcAxqgc!CkhIMp#5y>7un5(leUlts5=Sx`U(^`zKuDNN_pZ$v;uG<&H2
zzg|+feT*hlS#(F%+FZ9XL?9t~JOaK(Npv=Af~8;ZwJQ@X8+S0{Tl^p<ILQy7sS*)=
zzIiD?2K)v*kblnH@dHhXM3o9Jt_^miKn_m&L0M2>y-R|R_og#@KrcVgGWiE#A!%*U
z59DjqbiuRr=lq~7(tdzQI$B7H3Z-2Wq(p==Q8VZTPZs7gNRg}-6kcB(Ss=A(jtnOf
zBG_#jD_bon@byG?Vxy48LDU!t2OBprTp$DWc!X)|=YKa%u&f_c(P;~dwe%;0-6S3{
z#RRpOa#kDF59B(iK^9#dc(O44AVp%jG7})hX|`TZ2D#=-g1aZtIaO$)k&z3z7MP&|
z6;G%w7F<1%cAIt?$AOnu?I8AytW40z5Y~RcB=Ia7F+u$da#kE^D%tgcG}#V3S*VuA
zND0NYEq~I~7LJA^%k-Hf{!3=!Jqj~388VQNJRZ@izGNB4?Q)};-1en1(Xw#|yGeTa
zLC$IeO_iv<4xR*07V0f{NL<?@%@4G5#(FZyHQ(BJ%A&M&3miC|(@0jL^7p?NB!GmZ
zwLw3SuTc{f`^8Cq5RVLD)qtiSc*LY0&gb}n`bB-=P<kmq2I{E{fP4d4-xpkdpzX}G
y3e7y2mglT;W6Ia9^8+S{KUB!-H0QMEckl&wP1f4b>k3x@0000<MNUMnLSTYw{Xt~_

literal 16042
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
GTlpKiBV_FW

diff --git a/Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst_overlay.png.mcmeta b/Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst_overlay.png.mcmeta
new file mode 100644
index 000000000..95bb238a9
--- /dev/null
+++ b/Xplat/src/main/resources/assets/botania/textures/block/alchemy_catalyst_overlay.png.mcmeta
@@ -0,0 +1,7 @@
{
	"animation": {
		"frametime": 120,
		"interpolate": true,
		"frames": [ 0, 1, 2, 3, 4, 5, 6 ]
	}
}
diff --git a/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst.png b/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst.png
index e4a0393c3894be8203377f4d749c991849508c85..24a07bd9ccb835044e5d38ed5455694d464263f5 100644
GIT binary patch
delta 563
zcmV-30?hrOfdRe*kQaYI2nGNE026)pmH+?%0drDELIAGL9O(c60r*KoK~z|U?UpfX
z6hRcnf4Qu1GkeY5UaA8x0U?1Uoogkr&SyxIuVQ_zu%$NEK`bI%>46}L*aU=tnus9e
zb`N51XKjpy%;fFuMsy1yy001b&71e${Ac#ZEFB+BE)kYx832D;YpVQ<a~?pNB(#-s
z&fFMsV*pBiIkuIeC9BM)XUwK&EczBrCT(R|R&Xf4Qwq{rGmb{Q+<H{%$aNqq$)LgQ
zA<x2x0CZ7|qY-ZpUSD+}1+mqwnfZkiuZv=aVV!;<rgdF)>&uN{C4K<FI(^bOWVpKK
zV!f)$iydu*o4kLEAqBVCnkUcqIz4h@*a$b>wrpZ2qHVhu1dO8*2is3b)1<Vms&1W#
zy&x#4{eI^;pFf>cc2u|rHlRxFujl85#b$otzHOqGU6>og-ThslthR02jxwpIwI&z)
z^5T1>P!LU;@;j~*<#&D_qnsSBt`&r;x?Ivc`7h+gp!|PM;aiGlN9p(ERn}S;cp&HG
zedz_kRRXvvJXntQ@V8#n<H5J^DR)`{UD}*RkL&Ru`99|jUrO8gEgl@k17_p^^?7g@
z0}L7-G(2$Q|H^~reegHm2g}hO{q0FT9!UD$+Idxv2a>*j%!BFv{Yv`&iU&)_N0ZAm
zNnC}Kj~^=lDn*l>*n|xan)d<xo9}~$2RD%iKLGTNq%ZIN%boxL002ovPDHLkV1hud
B4$uGq

literal 16544
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

diff --git a/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst.png.mcmeta b/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst.png.mcmeta
new file mode 100644
index 000000000..5734039f6
--- /dev/null
+++ b/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst.png.mcmeta
@@ -0,0 +1,7 @@
{
	"animation": {
		"frametime": 120,
		"interpolate": true,
		"frames": [ 1, 3, 0, 2, 3, 0 ]
	}
}
diff --git a/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_mirrored.png b/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_mirrored.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9ecc9ca99bcaf082ca7a33205b1987346342dcd
GIT binary patch
literal 538
zcmV+#0_FXQP)<h;3K|Lk000e1NJLTq000mG002M;1^@s66MgrV00001b5ch_0Itp)
z=>Px$)Ja4^R9J=Wma%RcK@f&N!xcAsG#8+vuq{QhB`Z>j9G!9Nhsm4JTDsD$JK9Ke
z*ez}l5>mQUQEZ@r+pCfkr^R!}S;kZ-xor?Lv%~EFFQ4}4`}E-tY9&bmfH8)$croVz
zEar0nd=UUrYe}um#avu}`Xba^QWxsAe16)B>DpS7B)Pya>T}<_$;EV&;zTuFG>rNH
zgb2f^&ultDf=20Nn+b|yg$PS5XSCit3Xo0UlI{2kfHPVw;tP&XP64*2aP_`O=7K9Y
zzxc!~h6QkZa#}imaS~7a3-I|%cdN)3!57)s=NhNhW)tY7+w6**>Q3Ox(bv2NT0~d;
z+U5}9zIVfHI(cbOJXhFim)?OgcYKlTBE2S%TW;*4I{=<BhE%DoHE_BBcyV{*4uD;+
zvbg>w2^!e-DrcXz*lp6w)BlCkS|n)XzU%Xr#XaqUF($_Yozq%<Xf|IOz@hP=9t{Y3
z-}d7{JsR+_)+EH|M|8U%59YtuJo0m=qd?&*kK+zYQh@z=FpdE_6%Q&N{P#Sl-Uo;L
zKBz|n0)WwVUV~kDplSW9cefu8%4oea57wjWQd+}1crcDTI9fx+gX(=yXrPn-`1_#Z
c!6EbDFI`PRwL(yHiU0rr07*qoM6N<$f;g=En*aa+

literal 0
HcmV?d00001

diff --git a/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_mirrored.png.mcmeta b/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_mirrored.png.mcmeta
new file mode 100644
index 000000000..5734039f6
--- /dev/null
+++ b/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_mirrored.png.mcmeta
@@ -0,0 +1,7 @@
{
	"animation": {
		"frametime": 120,
		"interpolate": true,
		"frames": [ 1, 3, 0, 2, 3, 0 ]
	}
}
diff --git a/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_overlay.png b/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_overlay.png
index 0abcb31bc0b40e345cb61cfaa7fa5c8d98b0623d..33ec48b12bc1ec66e909fea9f10af5cc64fe9cf6 100644
GIT binary patch
delta 224
zcmV<603ZMKeD48}7k@wq1^@s66MgrV00001b5ch_0Itp)=>Px#sYygZR9J=Wmaz?k
zFc3wbsFD&TBOqlGTKbIOU05Mgum_cgpovmN>9|xBc4Bl;Adv5smj9Rib^1EUhn8Ae
zYKhMatr(!>Ol+bun8YtW+_-8bArBhqxc_`%hosU@5rjCGwpq$x66cb(u^f*Rk6YIV
z9w$|Cq2xq7BkDeQj&FJf?e+h!ILL%r9~k?__Jb`+wQq_b#JToW89-j`Yb?k1gDtT>
aI3iyHfqns+18%DT0000<MNUMnLSTXu5@06)

literal 15988
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
P4QiloP3qm18=v?KqU~fZ

diff --git a/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_overlay.png.mcmeta b/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_overlay.png.mcmeta
new file mode 100644
index 000000000..5734039f6
--- /dev/null
+++ b/Xplat/src/main/resources/assets/botania/textures/block/conjuration_catalyst_overlay.png.mcmeta
@@ -0,0 +1,7 @@
{
	"animation": {
		"frametime": 120,
		"interpolate": true,
		"frames": [ 1, 3, 0, 2, 3, 0 ]
	}
}
diff --git a/Xplat/src/main/resources/assets/botania/textures/block/livingrock_slate.png b/Xplat/src/main/resources/assets/botania/textures/block/livingrock_slate.png
new file mode 100644
index 0000000000000000000000000000000000000000..213bf805732e62461fd41179b542486d637d00c7
GIT binary patch
literal 288
zcmV+*0pI?KP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp)
z=>Px#+DSw~R5*==Q!x^QFbq?33~^xTUHkvf^b4K(1fVPsv$X@~o^1^ElAs9LR-DW0
z`S?IZtrY-JN<oDCvjza(<A_Z316O9O%mA>%^_q#0be3u8F%3OD=0l67TB`x5?RF$B
z;wwu3NFsO?NgLwHyv(Pq0N5&svTMu>%ULGcZsDlR2=|pFeZLV&D$-)I|Cty$u75Z)
z)tKnBMSf%=I|rU{z1<IIfS1`An2D?hM^_~k$*Os&lw$hQ<18~DiA_UqCo#(8_tJ)r
mM!$uX8Ps;>TSBl*WbiLWpMVXN)f>wI0000<MNUMnLSTY70D4&f

literal 0
HcmV?d00001

diff --git a/Xplat/src/main/resources/assets/botania/textures/working_files/block/livingrock.ase b/Xplat/src/main/resources/assets/botania/textures/working_files/block/livingrock.ase
index 778ef46c9218cbb7697646a2bdf770c933827c76..5f9df7b8af3b271b63ec5158b92b3c25faddffd6 100644
GIT binary patch
literal 10420
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

delta 5609
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

-- 
2.39.3 (Apple Git-145)
botania/patches/linux.yml: FAILED in 15m9s

[Add livingrock slate, new textures for catalysts][0] from [Artemis System][1]

[0]: https://lists.sr.ht/~williewillus/violet-moon/patches/45715
[1]: mailto:theartemissystem@gmail.com

✗ #1075866 FAILED botania/patches/linux.yml https://builds.sr.ht/~williewillus/job/1075866
you can go ahead and commit textures directly, since I don't have
useful feedback to give usually :P