init load

This commit is contained in:
2023-06-29 20:35:27 +08:00
parent 1c4cfb55b5
commit 32a3dff678
24 changed files with 736 additions and 0 deletions

12
common/build.gradle.kts Normal file
View File

@@ -0,0 +1,12 @@
architectury {
common("forge")
}
loom {
accessWidenerPath.set(file("src/main/resources/quaedam.accesswidener"))
}
dependencies {
modImplementation("net.fabricmc:fabric-loader:${rootProject.property("fabric_loader_version")}")
modApi("dev.architectury:architectury:${rootProject.property("architectury_version")}")
}

View File

@@ -0,0 +1,15 @@
package quaedam.mixin;
import net.minecraft.client.gui.screens.TitleScreen;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(TitleScreen.class)
public class MixinTitleScreen {
@Inject(at = @At("HEAD"), method = "init()V")
private void init(CallbackInfo info) {
System.out.println("Hello from example architectury common mixin!");
}
}

View File

@@ -0,0 +1,38 @@
package quaedam
import dev.architectury.registry.CreativeTabRegistry
import dev.architectury.registry.registries.DeferredRegister
import dev.architectury.registry.registries.RegistrySupplier
import quaedam.QuaedamExpectPlatform.getConfigDirectory
import net.minecraft.core.registries.Registries
import net.minecraft.network.chat.Component
import net.minecraft.world.item.CreativeModeTab
import net.minecraft.world.item.Item
import net.minecraft.world.item.ItemStack
object Quaedam {
const val MOD_ID = "quaedam"
private val createModeTabs = DeferredRegister.create(MOD_ID, Registries.CREATIVE_MODE_TAB)
val exampleTab: RegistrySupplier<CreativeModeTab> = createModeTabs.register("example_tab") {
CreativeTabRegistry.create(Component.translatable("category.quaedam")) {
ItemStack(exampleItem.get())
}
}
private val items = DeferredRegister.create(MOD_ID, Registries.ITEM)
val exampleItem: RegistrySupplier<Item> = items.register(
"example_item"
) {
Item(
Item.Properties().`arch$tab`(exampleTab) // DON'T CALL GET ON exampleTab HERE
)
}
fun init() {
createModeTabs.register()
items.register()
println("CONFIG DIR: ${getConfigDirectory().toAbsolutePath().normalize()}")
}
}

View File

@@ -0,0 +1,13 @@
package quaedam
import dev.architectury.injectables.annotations.ExpectPlatform
import java.nio.file.Path
object QuaedamExpectPlatform {
@JvmStatic // Make sure its Jvm Static
@ExpectPlatform
fun getConfigDirectory(): Path {
// Just throw an error, the content should get replaced at runtime.
throw AssertionError()
}
}

View File

@@ -0,0 +1,3 @@
{
"accessWidener": "quaedam.accesswidener"
}

View File

@@ -0,0 +1,3 @@
{
"item.quaedam.example_item": "Example Item"
}

View File

@@ -0,0 +1,13 @@
{
"required": true,
"package": "quaedam.mixin",
"compatibilityLevel": "JAVA_17",
"client": [
"MixinTitleScreen"
],
"mixins": [
],
"injectors": {
"defaultRequire": 1
}
}

View File

@@ -0,0 +1 @@
accessWidener v2 named