Skip to content

Commit

Permalink
Some changes
Browse files Browse the repository at this point in the history
- Removed Architectury dependency
- Added version to fabric.mod.json
- Removed some unused imports, variables and functions
- Bump version to 1.0.3

Need to test the mod on dedicated servers, seems it's not showing pokémon evolutions properly
  • Loading branch information
Rafacasari committed Jun 5, 2024
1 parent cd9f907 commit 401d576
Show file tree
Hide file tree
Showing 12 changed files with 51 additions and 152 deletions.
2 changes: 1 addition & 1 deletion common/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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")}")


}
30 changes: 4 additions & 26 deletions common/src/main/kotlin/rafacasari/cobbledex/Cobbledex.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,53 +4,32 @@ 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"

val LOGGER: Logger = LoggerFactory.getLogger("Cobbledex")
private lateinit var implementation: CobbledexImplementation

object CobbledexRegistries {
private val manager: Supplier<RegistrarManager> = Supplier<RegistrarManager> {
RegistrarManager.get(
MOD_ID
)
}

private val items: Registrar<Item> = 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)

Expand Down Expand Up @@ -112,5 +91,4 @@ object Cobbledex {

return ActionResult.SUCCESS
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ package rafacasari.cobbledex
interface CobbledexImplementation {
val modAPI: ModAPI
fun environment(): Environment

fun registerItems()
// fun getAllRegisteredBiomes() : List<Biome>
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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")

Expand All @@ -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)
}
}
Expand All @@ -81,7 +56,7 @@ class PokemonEvolutionDisplay(

class EvolveSlot(private val evolution: Pokemon) : Entry<EvolveSlot>() {
val client: MinecraftClient = MinecraftClient.getInstance()
val form: FormData = evolution.form

val selectButton: SummaryButton = SummaryButton(
buttonX = 0F,
buttonY = 0F,
Expand Down Expand Up @@ -204,70 +179,5 @@ class PokemonEvolutionDisplay(
}
return false
}

fun drawEvolutionPortrait(
species: Species,
aspects: Set<String>,
matrixStack: MatrixStack,
scale: Float = 13F,
reversed: Boolean = false,
state: PoseableEntityState<PokemonEntity>? = 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()
}

}
}
4 changes: 2 additions & 2 deletions fabric/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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")}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -24,6 +25,7 @@ class CobbledexFabric : ModInitializer, CobbledexImplementation {
}
}



override fun registerItems() {
Registry.register(Registries.ITEM, Identifier(Cobbledex.MOD_ID, "cobbledex_item"), CobbledexConstants.Cobbledex_Item)
}
}
12 changes: 5 additions & 7 deletions fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
@@ -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": [
Expand All @@ -18,7 +17,6 @@
"fabricloader": "*",
"fabric": "*",
"minecraft": "1.20.1",
"cobblemon": ">=1.5.0",
"architectury": ">=9.0.0"
"cobblemon": ">=1.5.0"
}
}
2 changes: 1 addition & 1 deletion forge/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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")}")

Expand Down
35 changes: 23 additions & 12 deletions forge/src/main/kotlin/rafacasari/cobbledex/forge/CobbledexForge.kt
Original file line number Diff line number Diff line change
@@ -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<RegisterEvent> { 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
}


}
4 changes: 2 additions & 2 deletions forge/src/main/resources/META-INF/forge_mod_versions.json
Original file line number Diff line number Diff line change
@@ -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"
}
}
4 changes: 2 additions & 2 deletions forge/src/main/resources/pack.mcmeta
Original file line number Diff line number Diff line change
@@ -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
}
}
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 401d576

Please sign in to comment.