Skip to content

Commit 5ae0ea6

Browse files
committed
Remove CTM dependency by implementing connected textures separately. Thanks XFactHD.
1 parent bbd9e2a commit 5ae0ea6

File tree

11 files changed

+576
-117
lines changed

11 files changed

+576
-117
lines changed

build.gradle

+3-6
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,6 @@ minecraft {
7777
sourceSets.main.resources { srcDir 'src/generated/resources' }
7878

7979
repositories {
80-
maven { // CTM
81-
url "https://maven.tterrag.com/"
82-
}
8380
maven { // TOP
8481
url "https://www.cursemaven.com/"
8582
content {
@@ -89,10 +86,10 @@ repositories {
8986
}
9087

9188
dependencies {
92-
minecraft 'net.minecraftforge:forge:1.18.2-40.1.30'
93-
94-
implementation fg.deobf("team.chisel.ctm:CTM:${ctm_version}")
89+
minecraft 'net.minecraftforge:forge:1.18.2-40.1.51'
9590

91+
// compileOnly fg.deobf("curse.maven:top-245211:3671753:api")
92+
// runtimeOnly fg.deobf("curse.maven:top-245211:3671753")
9693
implementation fg.deobf("curse.maven:top-245211:3671753")
9794
}
9895

src/generated/resources/.cache/cache

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ e6ed7024cf7c1b5b2f7c6471f33e70f3ce193e35 assets/rgbblocks/blockstates/wool.json
3030
d40ba91a88e517775fc5165a5c2c6d333fe94fa6 assets/rgbblocks/blockstates/wool_slab.json
3131
b5e9859ddfeb05e81ebab545be5b761bae63a41e assets/rgbblocks/blockstates/wool_stairs.json
3232
ba027282455cdb86afbb41395cb4011131656a2b assets/rgbblocks/lang/en_us.json
33-
5533dd9da61b4f1d229b5f381392e0a67c66b906 assets/rgbblocks/models/block/antiblock.json
33+
cb2fe277c64a775f23d1ffc429b0dbc2ce2647e6 assets/rgbblocks/models/block/antiblock.json
3434
3a4fb210195963f9ba8bf29325dd95678af6d5fc assets/rgbblocks/models/block/carpet.json
3535
8df58d7e1c24159201fa50db6feb7d9eebc3759f assets/rgbblocks/models/block/concrete.json
3636
139c59ea138f500550221e630b809af65a64b536 assets/rgbblocks/models/block/concrete_powder.json
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
{
2-
"parent": "rgbblocks:block/no_shade_2_layer",
3-
"textures": {
4-
"bot": "rgbblocks:block/white",
5-
"top": "rgbblocks:block/antiblock"
2+
"parent": "forge:block/default",
3+
"loader": "rgbblocks:antiblock_model",
4+
"base_model": {
5+
"parent": "rgbblocks:block/no_shade_2_layer",
6+
"textures": {
7+
"bot": "rgbblocks:block/white",
8+
"top": "rgbblocks:block/antiblock"
9+
}
610
}
711
}

src/main/java/platinpython/rgbblocks/client/model/AntiblockBakedModel.java

+517
Large diffs are not rendered by default.

src/main/java/platinpython/rgbblocks/data/ModBlockStateProvider.java

+37-9
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
package platinpython.rgbblocks.data;
22

3+
import com.google.gson.JsonObject;
34
import net.minecraft.data.DataGenerator;
5+
import net.minecraft.resources.ResourceLocation;
46
import net.minecraft.world.level.block.Block;
57
import net.minecraft.world.level.block.RedstoneLampBlock;
68
import net.minecraft.world.level.block.SlabBlock;
79
import net.minecraft.world.level.block.StairBlock;
8-
import net.minecraftforge.client.model.generators.BlockStateProvider;
9-
import net.minecraftforge.client.model.generators.ConfiguredModel;
10-
import net.minecraftforge.client.model.generators.ModelFile;
11-
import net.minecraftforge.client.model.generators.ModelProvider;
10+
import net.minecraftforge.client.model.generators.*;
1211
import net.minecraftforge.common.data.ExistingFileHelper;
1312
import platinpython.rgbblocks.RGBBlocks;
1413
import platinpython.rgbblocks.util.RegistryHandler;
@@ -45,12 +44,41 @@ protected void registerStatesAndModels() {
4544
models().withExistingParent(BlockRegistry.RGB_GLASS_PANE.getId().toString() + "_noside_alt",
4645
modLoc(ModelProvider.BLOCK_FOLDER + "/template_glass_pane_noside_alt"))
4746
.texture("pane", modLoc(ModelProvider.BLOCK_FOLDER + "/glass")));
47+
class AntiblockLoaderBuilder extends CustomLoaderBuilder<BlockModelBuilder> {
48+
private JsonObject baseModel;
49+
50+
protected AntiblockLoaderBuilder(BlockModelBuilder parent,
51+
ExistingFileHelper existingFileHelper) {
52+
super(new ResourceLocation(RGBBlocks.MOD_ID, "antiblock_model"), parent, existingFileHelper);
53+
}
54+
55+
public AntiblockLoaderBuilder baseModel(JsonObject baseModel) {
56+
this.baseModel = baseModel;
57+
models().generatedModels.remove(modLoc("block/" + BlockRegistry.RGB_ANTIBLOCK.getId().getPath() + "_base"));
58+
return this;
59+
}
60+
61+
@Override
62+
public JsonObject toJson(JsonObject json) {
63+
json = super.toJson(json);
64+
if (baseModel != null)
65+
json.add("base_model", baseModel);
66+
return json;
67+
}
68+
}
4869
simpleBlock(BlockRegistry.RGB_ANTIBLOCK.get(),
49-
models().singleTexture(BlockRegistry.RGB_ANTIBLOCK.getId().getPath(),
50-
modLoc(ModelProvider.BLOCK_FOLDER + "/no_shade_2_layer"),
51-
"bot",
52-
modLoc(ModelProvider.BLOCK_FOLDER + "/white"))
53-
.texture("top", modLoc(ModelProvider.BLOCK_FOLDER + "/antiblock")));
70+
models().withExistingParent(BlockRegistry.RGB_ANTIBLOCK.getId().getPath(),
71+
new ResourceLocation("forge:block/default")
72+
)
73+
.customLoader(AntiblockLoaderBuilder::new)
74+
.baseModel(models().singleTexture(BlockRegistry.RGB_ANTIBLOCK.getId().getPath() + "_base",
75+
modLoc(ModelProvider.BLOCK_FOLDER + "/no_shade_2_layer"),
76+
"bot",
77+
modLoc(ModelProvider.BLOCK_FOLDER + "/white")
78+
)
79+
.texture("top", modLoc(ModelProvider.BLOCK_FOLDER + "/antiblock")).toJson())
80+
.end()
81+
);
5482
getVariantBuilder(BlockRegistry.RGB_REDSTONE_LAMP.get()).forAllStates(state -> {
5583
return state.getValue(RedstoneLampBlock.LIT)
5684
? ConfiguredModel.builder()

src/main/java/platinpython/rgbblocks/util/ClientUtils.java

+9
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import net.minecraft.client.renderer.ItemBlockRenderTypes;
66
import net.minecraft.client.renderer.RenderType;
77
import net.minecraft.network.chat.TranslatableComponent;
8+
import net.minecraft.resources.ResourceLocation;
89
import net.minecraft.server.packs.repository.Pack;
910
import net.minecraft.server.packs.repository.PackCompatibility;
1011
import net.minecraft.server.packs.repository.PackSource;
@@ -13,6 +14,8 @@
1314
import net.minecraftforge.api.distmarker.Dist;
1415
import net.minecraftforge.client.event.ColorHandlerEvent;
1516
import net.minecraftforge.client.event.EntityRenderersEvent;
17+
import net.minecraftforge.client.event.ModelRegistryEvent;
18+
import net.minecraftforge.client.model.ModelLoaderRegistry;
1619
import net.minecraftforge.eventbus.api.SubscribeEvent;
1720
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
1821
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus;
@@ -24,6 +27,7 @@
2427
import platinpython.rgbblocks.client.colorhandlers.RGBBlockColor;
2528
import platinpython.rgbblocks.client.colorhandlers.RGBBlockItemColor;
2629
import platinpython.rgbblocks.client.gui.screen.ColorSelectScreen;
30+
import platinpython.rgbblocks.client.model.AntiblockBakedModel;
2731
import platinpython.rgbblocks.client.renderer.entity.RGBFallingBlockRenderer;
2832
import platinpython.rgbblocks.util.pack.RGBBlocksPack;
2933
import platinpython.rgbblocks.util.registries.BlockRegistry;
@@ -88,6 +92,11 @@ public static void registerColorHandlers(ColorHandlerEvent.Item event) {
8892
event.getItemColors().register(new PaintBucketItemColor(), ItemRegistry.PAINT_BUCKET.get());
8993
}
9094

95+
@SubscribeEvent
96+
public static void registerModelStuff(ModelRegistryEvent event) {
97+
ModelLoaderRegistry.registerLoader(new ResourceLocation(RGBBlocks.MOD_ID, "antiblock_model"), new AntiblockBakedModel.ModelLoader());
98+
}
99+
91100
public static void openColorSelectScreen(int color, boolean isRGBSelected) {
92101
Minecraft.getInstance().setScreen(new ColorSelectScreen(color, isRGBSelected));
93102
}

src/main/java/platinpython/rgbblocks/util/ctm/TextureColored.java

-10
This file was deleted.

src/main/java/platinpython/rgbblocks/util/ctm/TextureTypeColored.java

-61
This file was deleted.

src/main/resources/META-INF/mods.toml

+1-8
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ issueTrackerURL="https://github.com/PlatinPython/RGBBlocks/issues"
1010
description="Blocks in almost all colors you can imagine."
1111
logoFile="logo.png"
1212
logoBlur=true
13-
credits="Thanks TobiBenzi for the logo and some textures"
13+
credits="Thanks TobiBenzi for the logo and some textures, Thanks XFactHD for implementing the CTM Model"
1414
authors="PlatinPython"
1515
displayURL="https://www.curseforge.com/minecraft/mc-mods/rgb-blocks-forge"
1616

@@ -27,10 +27,3 @@ issueTrackerURL="https://github.com/PlatinPython/RGBBlocks/issues"
2727
versionRange="[1.18.2,)"
2828
ordering="NONE"
2929
side="BOTH"
30-
31-
[[dependencies.rgbblocks]]
32-
modId="ctm"
33-
mandatory=true
34-
versionRange="[MC1.18.2-1,)"
35-
ordering="NONE"
36-
side="CLIENT"

src/main/resources/assets/rgbblocks/textures/block/antiblock.png.mcmeta

-10
This file was deleted.

src/main/resources/assets/rgbblocks/textures/block/white.png.mcmeta

-8
This file was deleted.

0 commit comments

Comments
 (0)