From 401d576ab8063f943fe2cf66728ec457268eeed8 Mon Sep 17 00:00:00 2001 From: Rafa <32463720+Rafacasari@users.noreply.github.com> Date: Wed, 5 Jun 2024 20:05:15 -0300 Subject: [PATCH] Some changes - Removed Architectury dependency - Added version to fabric.mod.json - Removed some unused imports, variables and functions - Bump version to 1.0.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Need to test the mod on dedicated servers, seems it's not showing pokémon evolutions properly --- common/build.gradle.kts | 2 +- .../kotlin/rafacasari/cobbledex/Cobbledex.kt | 30 +----- .../cobbledex/CobbledexImplementation.kt | 2 +- .../client/widget/PokemonEvolutionDisplay.kt | 94 +------------------ fabric/build.gradle.kts | 4 +- .../cobbledex/fabric/CobbledexFabric.kt | 12 ++- fabric/src/main/resources/fabric.mod.json | 12 +-- forge/build.gradle.kts | 2 +- .../cobbledex/forge/CobbledexForge.kt | 35 ++++--- .../META-INF/forge_mod_versions.json | 4 +- forge/src/main/resources/pack.mcmeta | 4 +- gradle.properties | 2 +- 12 files changed, 51 insertions(+), 152 deletions(-) diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 5b58182..d0902cf 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -17,7 +17,7 @@ dependencies { // alL fabric dependencies: modCompileOnly("net.fabricmc:fabric-loader:${property("fabric_loader_version")}") modCompileOnly("net.fabricmc.fabric-api:fabric-api:${property("fabric_version")}") - modCompileOnly("dev.architectury:architectury-fabric:${property("architectury_version")}") + //modCompileOnly("dev.architectury:architectury-fabric:${property("architectury_version")}") } diff --git a/common/src/main/kotlin/rafacasari/cobbledex/Cobbledex.kt b/common/src/main/kotlin/rafacasari/cobbledex/Cobbledex.kt index 4ce9b9d..650db3f 100644 --- a/common/src/main/kotlin/rafacasari/cobbledex/Cobbledex.kt +++ b/common/src/main/kotlin/rafacasari/cobbledex/Cobbledex.kt @@ -4,21 +4,15 @@ import com.cobblemon.mod.common.Cobblemon import com.cobblemon.mod.common.api.Priority import com.cobblemon.mod.common.api.events.CobblemonEvents import com.cobblemon.mod.common.api.storage.player.PlayerDataExtensionRegistry +import com.cobblemon.mod.common.platform.events.PlatformEvents import com.cobblemon.mod.common.pokemon.Species -import dev.architectury.event.events.common.LifecycleEvent -import dev.architectury.registry.registries.Registrar -import dev.architectury.registry.registries.RegistrarManager import net.minecraft.entity.player.PlayerEntity -import net.minecraft.item.Item import net.minecraft.item.ItemStack -import net.minecraft.registry.Registries import net.minecraft.text.Text import net.minecraft.util.ActionResult -import net.minecraft.util.Identifier import org.slf4j.Logger import org.slf4j.LoggerFactory import rafacasari.cobbledex.cobblemon.extensions.PlayerDiscovery -import java.util.function.Supplier object Cobbledex { const val MOD_ID : String = "cobbledex" @@ -26,31 +20,16 @@ object Cobbledex { val LOGGER: Logger = LoggerFactory.getLogger("Cobbledex") private lateinit var implementation: CobbledexImplementation - object CobbledexRegistries { - private val manager: Supplier = Supplier { - RegistrarManager.get( - MOD_ID - ) - } - - private val items: Registrar = manager.get().get(Registries.ITEM) - - fun registerItems() { - LOGGER.info("Cobbledex: Registering items...") - items.register(Identifier(MOD_ID, "cobbledex_item")) { - CobbledexConstants.Cobbledex_Item - } - } - } private var eventsCreated: Boolean = false fun init(implementation: CobbledexImplementation) { LOGGER.info("Initializing Cobbledex...") this.implementation = implementation - CobbledexRegistries.registerItems() + implementation.registerItems() - LifecycleEvent.SERVER_STARTED.register { _ -> + // TODO: Make our own event so we don't need to depend on Cobblemon PlatformEvents + PlatformEvents.SERVER_STARTED.subscribe { _ -> LOGGER.info("Cobbledex: Server initialized...") PlayerDataExtensionRegistry.register(PlayerDiscovery.NAME_KEY, PlayerDiscovery::class.java) @@ -112,5 +91,4 @@ object Cobbledex { return ActionResult.SUCCESS } - } \ No newline at end of file diff --git a/common/src/main/kotlin/rafacasari/cobbledex/CobbledexImplementation.kt b/common/src/main/kotlin/rafacasari/cobbledex/CobbledexImplementation.kt index e5695d7..48eb807 100644 --- a/common/src/main/kotlin/rafacasari/cobbledex/CobbledexImplementation.kt +++ b/common/src/main/kotlin/rafacasari/cobbledex/CobbledexImplementation.kt @@ -5,7 +5,7 @@ package rafacasari.cobbledex interface CobbledexImplementation { val modAPI: ModAPI fun environment(): Environment - + fun registerItems() // fun getAllRegisteredBiomes() : List } diff --git a/common/src/main/kotlin/rafacasari/cobbledex/client/widget/PokemonEvolutionDisplay.kt b/common/src/main/kotlin/rafacasari/cobbledex/client/widget/PokemonEvolutionDisplay.kt index 3a5ce1a..4fe1b2d 100644 --- a/common/src/main/kotlin/rafacasari/cobbledex/client/widget/PokemonEvolutionDisplay.kt +++ b/common/src/main/kotlin/rafacasari/cobbledex/client/widget/PokemonEvolutionDisplay.kt @@ -5,36 +5,13 @@ import com.cobblemon.mod.common.api.gui.drawPortraitPokemon import com.cobblemon.mod.common.api.text.bold import com.cobblemon.mod.common.api.text.text import com.cobblemon.mod.common.client.CobblemonResources -import com.cobblemon.mod.common.client.gui.drawProfilePokemon import com.cobblemon.mod.common.client.gui.summary.SummaryButton import com.cobblemon.mod.common.client.render.drawScaledText -import com.cobblemon.mod.common.pokemon.FormData import com.cobblemon.mod.common.pokemon.Pokemon -import com.cobblemon.mod.common.pokemon.Species -import com.cobblemon.mod.common.util.math.fromEulerXYZDegrees import net.minecraft.client.MinecraftClient import net.minecraft.client.gui.DrawContext -import net.minecraft.client.util.math.MatrixStack import rafacasari.cobbledex.client.gui.CobbledexGUI import rafacasari.cobbledex.utils.cobbledexResource -import org.joml.Quaternionf -import org.joml.Vector3f - - -import com.cobblemon.mod.common.client.render.models.blockbench.PoseableEntityState -import com.cobblemon.mod.common.client.render.models.blockbench.repository.PokemonModelRepository -import com.cobblemon.mod.common.client.render.models.blockbench.repository.RenderContext -import com.cobblemon.mod.common.entity.PoseType -import com.cobblemon.mod.common.entity.pokemon.PokemonEntity - -import com.mojang.blaze3d.systems.RenderSystem - -import net.minecraft.client.render.DiffuseLighting - -import net.minecraft.client.render.LightmapTextureManager -import net.minecraft.client.render.OverlayTexture -import net.minecraft.util.math.RotationAxis - class PokemonEvolutionDisplay( x: Int, @@ -52,8 +29,6 @@ class PokemonEvolutionDisplay( const val PORTRAIT_OFFSET_X = 53 const val PORTRAIT_OFFSET_Y = 0 - private val slotResource = cobbledexResource("textures/gui/evolution_slot.png") - private val portraitBackground = cobbledexResource("textures/gui/evolution_slot_background.png") private val slotOverlay = cobbledexResource("textures/gui/evolution_slot_overlay.png") @@ -72,7 +47,7 @@ class PokemonEvolutionDisplay( if (!entriesCreated) { entriesCreated = true - pokemon.form.evolutions.map { EvolveSlot(it.result.create()) }.forEach { entry -> + pokemon.evolutions.map { EvolveSlot(it.result.create()) }.forEach { entry -> this.addEntry(entry) } } @@ -81,7 +56,7 @@ class PokemonEvolutionDisplay( class EvolveSlot(private val evolution: Pokemon) : Entry() { val client: MinecraftClient = MinecraftClient.getInstance() - val form: FormData = evolution.form + val selectButton: SummaryButton = SummaryButton( buttonX = 0F, buttonY = 0F, @@ -204,70 +179,5 @@ class PokemonEvolutionDisplay( } return false } - - fun drawEvolutionPortrait( - species: Species, - aspects: Set, - matrixStack: MatrixStack, - scale: Float = 13F, - reversed: Boolean = false, - state: PoseableEntityState? = null, - partialTicks: Float - ) { - val model = PokemonModelRepository.getPoser(species.resourceIdentifier, aspects) - val texture = PokemonModelRepository.getTexture(species.resourceIdentifier, aspects, state?.animationSeconds ?: 0F) - - val context = RenderContext() - PokemonModelRepository.getTextureNoSubstitute(species.resourceIdentifier, aspects, 0f).let { it -> context.put(RenderContext.TEXTURE, it) } - context.put(RenderContext.SCALE, species.getForm(aspects).baseScale) - context.put(RenderContext.SPECIES, species.resourceIdentifier) - context.put(RenderContext.ASPECTS, aspects) - - val renderType = model.getLayer(texture) - - RenderSystem.applyModelViewMatrix() - val quaternion1 = RotationAxis.POSITIVE_Y.rotationDegrees(-32F * if (reversed) -1F else 1F) - val quaternion2 = RotationAxis.POSITIVE_X.rotationDegrees(5F) - - if (state == null) { - model.setupAnimStateless(setOf(PoseType.PORTRAIT, PoseType.PROFILE)) - } else { - val originalPose = state.currentPose - model.getPose(PoseType.PORTRAIT)?.let { state.setPose(it.poseName) } - state.timeEnteredPose = 0F - state.updatePartialTicks(partialTicks) - model.setupAnimStateful(null, state, 0F, 0F, 0F, 0F, 0F) - originalPose?.let { state.setPose(it) } - } - - matrixStack.push() - matrixStack.translate(0.0, PORTRAIT_DIAMETER.toDouble() + 2.0, 0.0) - matrixStack.scale(scale, scale, -scale) - matrixStack.translate(0.0, -PORTRAIT_DIAMETER / 18.0, 0.0) - matrixStack.translate(model.portraitTranslation.x * if (reversed) -1F else 1F, model.portraitTranslation.y, model.portraitTranslation.z - 4) - matrixStack.scale(model.portraitScale, model.portraitScale, 1 / model.portraitScale) - matrixStack.multiply(quaternion1) - matrixStack.multiply(quaternion2) - - val light1 = Vector3f(0.2F, 1.0F, -1.0F) - val light2 = Vector3f(0.1F, 0.0F, 8.0F) - RenderSystem.setShaderLights(light1, light2) - quaternion1.conjugate() - - val immediate = MinecraftClient.getInstance().bufferBuilders.entityVertexConsumers - val buffer = immediate.getBuffer(renderType) - val packedLight = LightmapTextureManager.pack(11, 7) - - model.withLayerContext(immediate, state, PokemonModelRepository.getLayers(species.resourceIdentifier, aspects)) { - model.render(context, matrixStack, buffer, packedLight, OverlayTexture.DEFAULT_UV, 1F, 1F, 1F, 1F) - immediate.draw() - } - - matrixStack.pop() - model.setDefault() - - DiffuseLighting.enableGuiDepthLighting() - } - } } \ No newline at end of file diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts index 7ff9a9c..3c950a0 100644 --- a/fabric/build.gradle.kts +++ b/fabric/build.gradle.kts @@ -27,8 +27,8 @@ loom { dependencies { minecraft("net.minecraft:minecraft:${property("minecraft_version")}") mappings("net.fabricmc:yarn:${property("yarn_mappings")}:v2") - modApi("dev.architectury:architectury-fabric:${property("architectury_version")}") - modApi("teamreborn:energy:3.0.0") + //modApi("dev.architectury:architectury-fabric:${property("architectury_version")}") + //modApi("teamreborn:energy:3.0.0") modImplementation("com.cobblemon:fabric:${property("cobblemon_version")}") modImplementation("net.fabricmc:fabric-loader:${property("fabric_loader_version")}") diff --git a/fabric/src/main/kotlin/rafacasari/cobbledex/fabric/CobbledexFabric.kt b/fabric/src/main/kotlin/rafacasari/cobbledex/fabric/CobbledexFabric.kt index 769fbce..947caa5 100644 --- a/fabric/src/main/kotlin/rafacasari/cobbledex/fabric/CobbledexFabric.kt +++ b/fabric/src/main/kotlin/rafacasari/cobbledex/fabric/CobbledexFabric.kt @@ -3,10 +3,11 @@ package rafacasari.cobbledex.fabric import net.fabricmc.api.EnvType import net.fabricmc.api.ModInitializer import net.fabricmc.loader.api.FabricLoader +import net.minecraft.registry.Registries +import net.minecraft.registry.Registry +import net.minecraft.util.Identifier +import rafacasari.cobbledex.* import rafacasari.cobbledex.Cobbledex.init -import rafacasari.cobbledex.CobbledexImplementation -import rafacasari.cobbledex.Environment -import rafacasari.cobbledex.ModAPI class CobbledexFabric : ModInitializer, CobbledexImplementation { @@ -24,6 +25,7 @@ class CobbledexFabric : ModInitializer, CobbledexImplementation { } } - - + override fun registerItems() { + Registry.register(Registries.ITEM, Identifier(Cobbledex.MOD_ID, "cobbledex_item"), CobbledexConstants.Cobbledex_Item) + } } \ No newline at end of file diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 5015139..36960d0 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -1,13 +1,12 @@ { "schemaVersion": 1, - "name": "Cobbledex", - "id": "cobbledex", - "version": "1.0.0", - "description": "A cool mod!", + "name": "${mod_name}", + "id": "${mod_id}", + "version": "${mod_version}", + "description": "${mod_description}", "authors": ["Rafa"], "contact": {"repo": "https://github.com/rafacasari/cobbledex"}, "license": "", - "icon": "", "environment": "*", "entrypoints": { "main": [ @@ -18,7 +17,6 @@ "fabricloader": "*", "fabric": "*", "minecraft": "1.20.1", - "cobblemon": ">=1.5.0", - "architectury": ">=9.0.0" + "cobblemon": ">=1.5.0" } } diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 63abf4f..ad2c94d 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -28,7 +28,7 @@ loom { dependencies { minecraft("net.minecraft:minecraft:${property("minecraft_version")}") mappings("net.fabricmc:yarn:${property("yarn_mappings")}:v2") - modApi("dev.architectury:architectury-forge:${property("architectury_version")}") + //modApi("dev.architectury:architectury-forge:${property("architectury_version")}") forge("net.minecraftforge:forge:${property("forge_version")}") diff --git a/forge/src/main/kotlin/rafacasari/cobbledex/forge/CobbledexForge.kt b/forge/src/main/kotlin/rafacasari/cobbledex/forge/CobbledexForge.kt index 3b85446..44d14d9 100644 --- a/forge/src/main/kotlin/rafacasari/cobbledex/forge/CobbledexForge.kt +++ b/forge/src/main/kotlin/rafacasari/cobbledex/forge/CobbledexForge.kt @@ -1,30 +1,41 @@ package rafacasari.cobbledex.forge -import dev.architectury.platform.forge.EventBuses +import net.minecraft.util.Identifier +import net.minecraftforge.common.MinecraftForge +import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.fml.common.Mod -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext import net.minecraftforge.fml.loading.FMLEnvironment -import rafacasari.cobbledex.CobbledexImplementation -import rafacasari.cobbledex.Cobbledex -import rafacasari.cobbledex.Cobbledex.init -import rafacasari.cobbledex.Environment -import rafacasari.cobbledex.ModAPI +import net.minecraftforge.registries.ForgeRegistries +import net.minecraftforge.registries.RegisterEvent +import rafacasari.cobbledex.* +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext @Mod(Cobbledex.MOD_ID) class CobbledexForge : CobbledexImplementation { + private val modBus: IEventBus = FMLJavaModLoadingContext.get().modEventBus + init { - EventBuses.registerModEventBus(Cobbledex.MOD_ID, FMLJavaModLoadingContext.get().modEventBus) - init(this) + //EventBuses.registerModEventBus(Cobbledex.MOD_ID, FMLJavaModLoadingContext.get().modEventBus) + + Cobbledex.init(this@CobbledexForge) + MinecraftForge.EVENT_BUS.register(this) } - override val modAPI: ModAPI = ModAPI.FORGE + override fun registerItems() { + with(modBus) { + addListener { event -> + event.register(ForgeRegistries.Keys.ITEMS) { + it.register(Identifier(Cobbledex.MOD_ID, "cobbledex_item"), CobbledexConstants.Cobbledex_Item) + } + } + } + } + override val modAPI: ModAPI = ModAPI.FORGE override fun environment(): Environment { return if (FMLEnvironment.dist.isClient) Environment.CLIENT else Environment.SERVER } - - } \ No newline at end of file diff --git a/forge/src/main/resources/META-INF/forge_mod_versions.json b/forge/src/main/resources/META-INF/forge_mod_versions.json index c1d14fa..b09d8af 100644 --- a/forge/src/main/resources/META-INF/forge_mod_versions.json +++ b/forge/src/main/resources/META-INF/forge_mod_versions.json @@ -1,7 +1,7 @@ { "homepage": "https://modrinth.com/mod/cobbledex", "promos": { - "1.20.1-latest": "1.0.0", - "1.20.1-recommended": "1.0.0" + "1.20.1-latest": "1.0.3", + "1.20.1-recommended": "1.0.3" } } \ No newline at end of file diff --git a/forge/src/main/resources/pack.mcmeta b/forge/src/main/resources/pack.mcmeta index 675f0ed..6987b01 100644 --- a/forge/src/main/resources/pack.mcmeta +++ b/forge/src/main/resources/pack.mcmeta @@ -1,6 +1,6 @@ { "pack": { - "description": "Cobbledex resources", - "pack_format": 10, "forge:resource_pack_format": 9, "forge:data_pack_format": 10 + "description": "Cobbledex Resources", + "pack_format": 10 } } diff --git a/gradle.properties b/gradle.properties index 161669a..17362c3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ mod_id=cobbledex generated_file_name_addon=-1.20.1 archives_base_name=cobbledex-1.20.1 -mod_version=1.0.2 +mod_version=1.0.3 mod_description=A mod to track your progress on Cobblemon. Fabric and Forge compatible. mod_icon=assets/cobbledex/icon.png repository=https://github.com/rafacasari/cobbledex