add fabric data generation we are SO back
This commit is contained in:
@@ -66,7 +66,8 @@ dependencies {
|
|||||||
//some features (like automatic resource loading from non vanilla namespaces) work only with fabric API installed
|
//some features (like automatic resource loading from non vanilla namespaces) work only with fabric API installed
|
||||||
//for example translations from assets/modid/lang/en_us.json won't be working, same stuff with textures
|
//for example translations from assets/modid/lang/en_us.json won't be working, same stuff with textures
|
||||||
//but we keep runtime only to not accidentally depend on fabric's api, because it doesn't exist in neo/forge
|
//but we keep runtime only to not accidentally depend on fabric's api, because it doesn't exist in neo/forge
|
||||||
modRuntimeOnly("net.fabricmc.fabric-api:fabric-api:${mod.dep("fabric_version")}")
|
//modRuntimeOnly("net.fabricmc.fabric-api:fabric-api:${mod.dep("fabric_version")}")
|
||||||
|
modImplementation("net.fabricmc.fabric-api:fabric-api:${mod.dep("fabric_version")}")
|
||||||
modImplementation("net.fabricmc:fabric-language-kotlin:1.13.10+kotlin.2.3.20")
|
modImplementation("net.fabricmc:fabric-language-kotlin:1.13.10+kotlin.2.3.20")
|
||||||
modApi("dev.architectury:architectury-fabric:${archversion}")
|
modApi("dev.architectury:architectury-fabric:${archversion}")
|
||||||
fun getTeamRebornEnergy(): String {
|
fun getTeamRebornEnergy(): String {
|
||||||
@@ -257,3 +258,14 @@ tasks.build {
|
|||||||
group = "versioned"
|
group = "versioned"
|
||||||
description = "Must run through 'chiseledBuild'"
|
description = "Must run through 'chiseledBuild'"
|
||||||
}
|
}
|
||||||
|
if (loader == "fabric") {
|
||||||
|
fabricApi {
|
||||||
|
if (minecraftVersionToNum(minecraft) > minecraftVersionToNum("1.21.4")) {
|
||||||
|
configureDataGeneration() {
|
||||||
|
client = true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
configureDataGeneration()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package org.neoflock.neocomputers
|
|||||||
import dev.architectury.event.events.client.ClientLifecycleEvent
|
import dev.architectury.event.events.client.ClientLifecycleEvent
|
||||||
import dev.architectury.event.events.common.PlayerEvent
|
import dev.architectury.event.events.common.PlayerEvent
|
||||||
import dev.architectury.event.events.common.TickEvent
|
import dev.architectury.event.events.common.TickEvent
|
||||||
|
import dev.architectury.impl.NetworkAggregator
|
||||||
import dev.architectury.networking.NetworkManager
|
import dev.architectury.networking.NetworkManager
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import org.neoflock.neocomputers.block.Blocks
|
import org.neoflock.neocomputers.block.Blocks
|
||||||
@@ -11,8 +12,11 @@ import org.neoflock.neocomputers.gui.buffer.BufferRenderer
|
|||||||
import org.neoflock.neocomputers.gui.menu.Menus
|
import org.neoflock.neocomputers.gui.menu.Menus
|
||||||
import org.neoflock.neocomputers.gui.screen.ScreenScreen
|
import org.neoflock.neocomputers.gui.screen.ScreenScreen
|
||||||
import dev.architectury.registry.menu.MenuRegistry
|
import dev.architectury.registry.menu.MenuRegistry
|
||||||
|
import dev.architectury.utils.Env
|
||||||
|
import dev.architectury.utils.EnvExecutor
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import net.minecraft.client.player.LocalPlayer
|
import net.minecraft.client.player.LocalPlayer
|
||||||
|
import net.minecraft.network.protocol.common.custom.CustomPacketPayload
|
||||||
import net.minecraft.server.level.ServerPlayer
|
import net.minecraft.server.level.ServerPlayer
|
||||||
import org.neoflock.neocomputers.block.NodeBlock
|
import org.neoflock.neocomputers.block.NodeBlock
|
||||||
import org.neoflock.neocomputers.block.NodeBlockEntity
|
import org.neoflock.neocomputers.block.NodeBlockEntity
|
||||||
@@ -42,7 +46,8 @@ object NeoComputers {
|
|||||||
BlockEntities.registerPowerBlocks()
|
BlockEntities.registerPowerBlocks()
|
||||||
Menus.MENUS.register()
|
Menus.MENUS.register()
|
||||||
Tabs.TABS.register()
|
Tabs.TABS.register()
|
||||||
|
// i dont know why architectury wants two lambdas but whatever
|
||||||
|
EnvExecutor.runInEnv(Env.CLIENT) {{
|
||||||
ClientLifecycleEvent.CLIENT_SETUP.register {
|
ClientLifecycleEvent.CLIENT_SETUP.register {
|
||||||
Menus.registerScreens()
|
Menus.registerScreens()
|
||||||
}
|
}
|
||||||
@@ -54,6 +59,7 @@ object NeoComputers {
|
|||||||
ClientLifecycleEvent.CLIENT_STOPPING.register {
|
ClientLifecycleEvent.CLIENT_STOPPING.register {
|
||||||
ScreenRenderer.cleanUnboundTex()
|
ScreenRenderer.cleanUnboundTex()
|
||||||
}
|
}
|
||||||
|
}}
|
||||||
|
|
||||||
TickEvent.SERVER_POST.register {
|
TickEvent.SERVER_POST.register {
|
||||||
Networking.tickAllNodes()
|
Networking.tickAllNodes()
|
||||||
@@ -69,7 +75,8 @@ object NeoComputers {
|
|||||||
player ->
|
player ->
|
||||||
NodeSynchronizer.playerScreenClosed(player)
|
NodeSynchronizer.playerScreenClosed(player)
|
||||||
}
|
}
|
||||||
|
// we have to do this because the datagen task runs in the physical server
|
||||||
|
EnvExecutor.runInEnv(Env.CLIENT) {{
|
||||||
NetworkManager.registerReceiver(NetworkManager.s2c(),NodeSynchronizer.StatePayload.TYPE, NodeSynchronizer.StatePayload.CODEC, {
|
NetworkManager.registerReceiver(NetworkManager.s2c(),NodeSynchronizer.StatePayload.TYPE, NodeSynchronizer.StatePayload.CODEC, {
|
||||||
packet, ctx ->
|
packet, ctx ->
|
||||||
val level = ctx.player.level()
|
val level = ctx.player.level()
|
||||||
@@ -86,6 +93,14 @@ object NeoComputers {
|
|||||||
scr.processScreenStatePacket(packet.buffer)
|
scr.processScreenStatePacket(packet.buffer)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
}}
|
||||||
|
EnvExecutor.runInEnv(Env.SERVER) {{
|
||||||
|
// https://github.com/architectury/architectury-api/issues/518
|
||||||
|
NetworkManager.registerS2CPayloadType(NodeSynchronizer.StatePayload.TYPE, NodeSynchronizer.StatePayload.CODEC)
|
||||||
|
NetworkManager.registerS2CPayloadType(NodeSynchronizer.ScreenPayload.TYPE, NodeSynchronizer.ScreenPayload.CODEC)
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
|
||||||
LOGGER.info("Registered!")
|
LOGGER.info("Registered!")
|
||||||
//LOGGER.info("Started mod in %s loader".formatted(NeoComputersInit.PLATFORM.getModloader()))
|
//LOGGER.info("Started mod in %s loader".formatted(NeoComputersInit.PLATFORM.getModloader()))
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package org.neoflock.neocomputers.datagen
|
||||||
|
|
||||||
|
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput
|
||||||
|
import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider
|
||||||
|
import net.minecraft.data.models.BlockModelGenerators
|
||||||
|
import net.minecraft.data.models.ItemModelGenerators
|
||||||
|
import org.neoflock.neocomputers.block.Blocks
|
||||||
|
|
||||||
|
class ModelGenerator(output: FabricDataOutput) : FabricModelProvider(output) {
|
||||||
|
override fun generateBlockStateModels(blockStateModelGenerator: BlockModelGenerators) {
|
||||||
|
blockStateModelGenerator.createGenericCube(Blocks.CASE_BLOCK.get())
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun generateItemModels(itemModelGenerator: ItemModelGenerators) {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package org.neoflock.neocomputers.datagen
|
||||||
|
|
||||||
|
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint
|
||||||
|
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator
|
||||||
|
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput
|
||||||
|
import org.neoflock.neocomputers.NeoComputers
|
||||||
|
|
||||||
|
class NeoComputersDataGenerator : DataGeneratorEntrypoint {
|
||||||
|
override fun onInitializeDataGenerator(generator: FabricDataGenerator) {
|
||||||
|
val pack: FabricDataGenerator.Pack = generator.createPack()
|
||||||
|
pack.addProvider { o -> ModelGenerator(o as FabricDataOutput) }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,11 +13,14 @@
|
|||||||
"icon": "assets/${id}/icon.png",
|
"icon": "assets/${id}/icon.png",
|
||||||
"environment": "*",
|
"environment": "*",
|
||||||
"entrypoints": {
|
"entrypoints": {
|
||||||
"main": [
|
"fabric-datagen": [
|
||||||
"org.neoflock.neocomputers.platforms.fabric.NeoComputersFabric"
|
"org.neoflock.neocomputers.datagen.NeoComputersDataGenerator"
|
||||||
],
|
],
|
||||||
"modmenu": [
|
"modmenu": [
|
||||||
"org.neoflock.neocomputers.platforms.fabric.ModMenuIntegration"
|
"org.neoflock.neocomputers.platforms.fabric.ModMenuIntegration"
|
||||||
|
],
|
||||||
|
"main": [
|
||||||
|
"org.neoflock.neocomputers.platforms.fabric.NeoComputersFabric"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"mixins": [
|
"mixins": [
|
||||||
|
|||||||
Reference in New Issue
Block a user