Skip to content

Commit 5ed83ae

Browse files
Bring resource injection implementation in-house
1 parent 2b2c954 commit 5ed83ae

20 files changed

Lines changed: 285 additions & 631 deletions

File tree

build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ allprojects {
2222
content { includeGroup("curse.maven") }
2323
}
2424
maven("https://repo.spongepowered.org/repository/maven-public/")
25-
maven("https://raw.githubusercontent.com/SolidBlock-cn/mvn-repo/main") // for BRRP
2625
maven("https://maven.terraformersmc.com/releases") // for ModMenu
2726
}
2827
}

modules/testcore/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,4 @@ dependencies {
1313
transitiveShade("org.junit.jupiter:junit-jupiter-api:${project.property("junit_version")}")
1414
transitiveShade("org.junit.jupiter:junit-jupiter-engine:${project.property("junit_version")}")
1515
transitiveShade("org.junit.platform:junit-platform-launcher:${project.property("junit_platform_version")}")
16-
includeFabric("pers.solid:brrp-fabric:${project.property("brrp_version")}") { isTransitive = false }
1716
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.teamwizardry.librarianlib.testcore.mixin;
2+
3+
import com.teamwizardry.librarianlib.testcore.resources.RuntimeResources;
4+
import net.minecraft.resource.LifecycledResourceManagerImpl;
5+
import net.minecraft.resource.ResourcePack;
6+
import org.spongepowered.asm.mixin.Mixin;
7+
import org.spongepowered.asm.mixin.injection.At;
8+
import org.spongepowered.asm.mixin.injection.ModifyVariable;
9+
10+
import java.util.ArrayList;
11+
import java.util.List;
12+
13+
@Mixin({LifecycledResourceManagerImpl.class})
14+
public class LifecycledResourceManagerImplMixin {
15+
@ModifyVariable(method = {"<init>"}, at = @At("HEAD"), argsOnly = true)
16+
private static List<ResourcePack> registerRRPs(List<ResourcePack> packs) {
17+
var copy = new ArrayList<>(packs);
18+
copy.add(RuntimeResources.INSTANCE);
19+
return copy;
20+
}
21+
}

modules/testcore/common/src/main/java/com/teamwizardry/librarianlib/testcore/mixin/TranslationInjectionMixin.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.teamwizardry.librarianlib.testcore.mixin;
22

3-
import com.teamwizardry.librarianlib.testcore.bridge.InjectedTranslations;
3+
import com.teamwizardry.librarianlib.testcore.resources.RuntimeResources;
44
import net.minecraft.client.resource.language.TranslationStorage;
55
import org.spongepowered.asm.mixin.Mixin;
66
import org.spongepowered.asm.mixin.injection.At;
@@ -14,7 +14,7 @@ public class TranslationInjectionMixin {
1414
@Inject(method = "get", at = @At("RETURN"), cancellable = true)
1515
private void translateKeyPrivateHook(String key, String fallback, CallbackInfoReturnable<String> cir) {
1616
if (Objects.equals(fallback, cir.getReturnValue())) {
17-
String injectedName = InjectedTranslations.INSTANCE.getTranslations().get(key);
17+
String injectedName = RuntimeResources.INSTANCE.getTranslations().get(key);
1818
if (injectedName != null)
1919
cir.setReturnValue(injectedName);
2020
}
@@ -23,6 +23,6 @@ private void translateKeyPrivateHook(String key, String fallback, CallbackInfoRe
2323
@Inject(method = "hasTranslation", at = @At("RETURN"), cancellable = true)
2424
private void keyExistsHook(String key, CallbackInfoReturnable<Boolean> cir) {
2525
if (!cir.getReturnValueZ())
26-
cir.setReturnValue(InjectedTranslations.INSTANCE.getTranslations().containsKey(key));
26+
cir.setReturnValue(RuntimeResources.INSTANCE.getTranslations().containsKey(key));
2727
}
2828
}

modules/testcore/common/src/main/kotlin/com/teamwizardry/librarianlib/testcore/LibrarianLibTestBaseModule.kt

Lines changed: 0 additions & 98 deletions
This file was deleted.

modules/testcore/common/src/main/kotlin/com/teamwizardry/librarianlib/testcore/TestCoreClientInitializer.kt

Lines changed: 18 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@ package com.teamwizardry.librarianlib.testcore
22

33
import com.teamwizardry.librarianlib.testcore.content.impl.TestEntityRenderer
44
import com.teamwizardry.librarianlib.testcore.module.TestModuleClient
5-
import com.teamwizardry.librarianlib.testcore.module.TestModuleCommon
5+
import com.teamwizardry.librarianlib.testcore.resources.RuntimeResources
6+
import com.teamwizardry.librarianlib.testcore.resources.TestBlockModelGenerator
7+
import com.teamwizardry.librarianlib.testcore.resources.TestItemModelGenerator
68
import dev.architectury.registry.client.level.entity.EntityRendererRegistry
7-
import net.minecraft.data.client.BlockStateVariant
8-
import net.minecraft.data.client.BlockStateVariantMap
9-
import net.minecraft.data.client.VariantSettings
10-
import net.minecraft.data.client.VariantsBlockStateSupplier
11-
import net.minecraft.state.property.Properties
12-
import net.minecraft.util.Identifier
13-
import net.minecraft.util.math.Direction
9+
import dev.architectury.registry.client.rendering.RenderTypeRegistry
10+
import net.minecraft.client.render.RenderLayer
11+
import net.minecraft.client.render.RenderLayers
1412

1513
public object TestCoreClientInitializer {
14+
private val logger = TestCoreMod.logManager.makeLogger<TestCoreClientInitializer>()
15+
1616
public fun onInitialize() {
1717
for (moduleClient in TestModuleClient.instances) {
1818
moduleClient.initializeClient(TestModContentManager.getOrCreateModule(moduleClient.moduleId))
@@ -23,64 +23,18 @@ public object TestCoreClientInitializer {
2323
TestEntityRenderer(dispatcher)
2424
}
2525
}
26-
// logger.info("Performing client registration")
27-
// for(config in objects.values) {
28-
// logger.info("Registering ${config.id}")
29-
// config.registerClient(resources)
30-
// }
31-
// resources.writeLang()
32-
// RRPCallback.BEFORE_VANILLA.register {
33-
// it.add(resources.runtimeResourcePack)
34-
// }
35-
}
36-
37-
private fun registerItems() {
38-
// val testModel = TestItemModel(id)
39-
// resources.runtimeResourcePack.addModel(Identifier.of(id.namespace, "item/${id.path}"), testModel.model)
40-
// ColorProviderRegistry.ITEM.register(testModel.colorProvider, instance)
41-
}
4226

43-
private fun registerBlocks() {
44-
// val model = Identifier.of("liblib-testcore:block/test_block/${blockInstance.modelName}")
45-
//
46-
// val state = VariantsBlockStateSupplier.create(blockInstance, BlockStateVariant.create().put(VariantSettings.MODEL, model))
47-
// if(directional) {
48-
// state.coordinate(
49-
// BlockStateVariantMap.create(Properties.FACING)
50-
// .register(Direction.DOWN, BlockStateVariant.create().put(VariantSettings.X, VariantSettings.Rotation.R180))
51-
// .register(Direction.UP, BlockStateVariant.create())
52-
// .register(Direction.NORTH, BlockStateVariant.create().put(VariantSettings.X, VariantSettings.Rotation.R90))
53-
// .register(
54-
// Direction.SOUTH,
55-
// BlockStateVariant.create()
56-
// .put(VariantSettings.X, VariantSettings.Rotation.R90)
57-
// .put(VariantSettings.Y, VariantSettings.Rotation.R180)
58-
// )
59-
// .register(
60-
// Direction.WEST,
61-
// BlockStateVariant.create()
62-
// .put(VariantSettings.X, VariantSettings.Rotation.R90)
63-
// .put(VariantSettings.Y, VariantSettings.Rotation.R270)
64-
// )
65-
// .register(
66-
// Direction.EAST,
67-
// BlockStateVariant.create()
68-
// .put(VariantSettings.X, VariantSettings.Rotation.R90)
69-
// .put(VariantSettings.Y, VariantSettings.Rotation.R90)
70-
// )
71-
// )
72-
// }
73-
// resources.runtimeResourcePack.addBlockState(Identifier.of(id.namespace, "blockstates/${id.path}"), state)
74-
//
75-
// resources.runtimeResourcePack.addModel(
76-
// Identifier.of(id.namespace, "item/${id.path}"),
77-
// ModelJsonBuilder.create("$model")
78-
// )
79-
}
80-
81-
private fun registerEntities() {
27+
for(itemConfig in TestModContentManager.items.values) {
28+
RuntimeResources.addAsset(TestItemModelGenerator.generateModel(itemConfig.id))
29+
RuntimeResources.addAsset(TestItemModelGenerator.generateModelDef(itemConfig.id))
30+
}
8231

32+
for(blockConfig in TestModContentManager.blocks.values) {
33+
RuntimeResources.addAsset(TestBlockModelGenerator.generateBlockStates(blockConfig))
34+
RuntimeResources.addAsset(TestBlockModelGenerator.generateItemModel(blockConfig))
35+
RenderTypeRegistry.register(RenderLayer.getCutout(), blockConfig.blockInstance)
36+
}
8337

84-
// resources.lang.add(this.type, name)
38+
logger.info("Generated {} assets", RuntimeResources.resources.size)
8539
}
8640
}

0 commit comments

Comments
 (0)