Skip to content

Commit

Permalink
1.0.30 (Are we ready?)
Browse files Browse the repository at this point in the history
Some random fixes
Refactor some codes
  • Loading branch information
Rafacasari committed Jun 29, 2024
1 parent cd53033 commit 504979f
Show file tree
Hide file tree
Showing 37 changed files with 199 additions and 216 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import static com.rafacasari.mod.cobbledex.utils.MiscUtilsKt.cobbledexResource;
import com.rafacasari.mod.cobbledex.utils.MiscUtils;


@Mixin(ItemRenderer.class)
Expand All @@ -34,7 +34,7 @@ public abstract class ItemRendererMixin {
private void cobbledex$determineCobbledexModel(ItemStack stack, ModelTransformationMode renderMode, boolean leftHanded, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, BakedModel model, CallbackInfo ci) {
boolean shouldBe2d = renderMode == ModelTransformationMode.GUI || renderMode == ModelTransformationMode.FIXED;
if (shouldBe2d && stack.getItem() instanceof CobbledexItem) {
BakedModel replacementModel = this.models.getModelManager().getModel(new ModelIdentifier(cobbledexResource("cobbledex_icon"), "inventory"));
BakedModel replacementModel = this.models.getModelManager().getModel(new ModelIdentifier(MiscUtils.INSTANCE.cobbledexResource("cobbledex_icon"), "inventory"));
if (!model.equals(replacementModel)) {
ci.cancel();
renderItem(stack, renderMode, leftHanded, matrices, vertexConsumers, light, overlay, replacementModel);
Expand Down
26 changes: 13 additions & 13 deletions common/src/main/kotlin/com/rafacasari/mod/cobbledex/Cobbledex.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ import org.slf4j.LoggerFactory
import com.rafacasari.mod.cobbledex.network.client.packets.OpenCobbledexPacket
import com.rafacasari.mod.cobbledex.network.client.packets.AddToCollectionPacket
import com.rafacasari.mod.cobbledex.network.client.packets.ReceiveCollectionDataPacket
import com.rafacasari.mod.cobbledex.utils.cobbledexTextTranslation
import com.rafacasari.mod.cobbledex.utils.MiscUtils.cobbledexTextTranslation
import com.rafacasari.mod.cobbledex.utils.MiscUtils.logInfo
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.util.Formatting
import java.io.File
Expand All @@ -41,45 +42,45 @@ object Cobbledex {

private var eventsCreated: Boolean = false
fun preInitialize(implementation: CobbledexImplementation) {
LOGGER.info("Initializing Cobbledex $VERSION...")
logInfo("Initializing Cobbledex $VERSION...")
Cobbledex.implementation = implementation

implementation.registerItems()
loadConfig()

// 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)
logInfo("Server initialized...")

PlayerDataExtensionRegistry.register(CobbledexDiscovery.NAME_KEY, CobbledexDiscovery::class.java)

if (!eventsCreated) {
CobblemonEvents.STARTER_CHOSEN.subscribe(Priority.LOW) {
registerPlayerDiscovery(it.player, it.pokemon.form, it.pokemon.shiny, DiscoveryRegister.RegisterType.CAUGHT)

val itemStack = ItemStack(CobbledexConstants.Cobbledex_Item, 1)
it.player.giveItemStack(itemStack)
if (getConfig().GiveCobbledexItemOnStarterChosen) {
val itemStack = ItemStack(CobbledexConstants.COBBLEDEX_ITEM, 1)
it.player.giveItemStack(itemStack)
}
}

CobblemonEvents.POKEMON_CAPTURED.subscribe(Priority.LOW) {
CobblemonEvents.POKEMON_CAPTURED.subscribe(Priority.LOWEST) {
registerPlayerDiscovery(it.player, it.pokemon.form, it.pokemon.shiny, DiscoveryRegister.RegisterType.CAUGHT)
}

CobblemonEvents.EVOLUTION_COMPLETE.subscribe(Priority.LOW) {
val player = it.pokemon.getOwnerPlayer()
if (player != null) {

if (player != null)
registerPlayerDiscovery(player, it.pokemon.form, it.pokemon.shiny, DiscoveryRegister.RegisterType.CAUGHT)
}
}


// This should prevent events from being added more than once
eventsCreated = true
}
}

PlatformEvents.CLIENT_PLAYER_LOGOUT.subscribe {
CobbledexCollectionGUI.discoveredList.clear()
CobbledexConstants.Client.discoveredList.clear()
}

PlatformEvents.CLIENT_PLAYER_LOGIN.subscribe {
Expand Down Expand Up @@ -155,5 +156,4 @@ object Cobbledex {
exception.printStackTrace()
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import net.minecraft.server.network.ServerPlayerEntity

class CobbledexConfig : IEncodable {

var GiveCobbledexItemOnStarterChosen = true

var HowToFind_IsEnabled = true
var HowToFind_NeedSeen = false
var HowToFind_NeedCatch = false
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
package com.rafacasari.mod.cobbledex

import com.rafacasari.mod.cobbledex.api.classes.DiscoveryRegister
import net.minecraft.item.Item
import net.minecraft.util.Rarity
import com.rafacasari.mod.cobbledex.items.CobbledexItem

object CobbledexConstants {

@Suppress("SameParameterValue")
private fun buildErrorMessage(name: String): String {
return "${Cobbledex.MOD_ID}.errors.$name"
object Client {
var discoveredList: MutableMap<String, MutableMap<String, DiscoveryRegister>> = mutableMapOf()
}

val invalid_entity by lazy { buildErrorMessage("NotAPokemon") }

val Cobbledex_Item = CobbledexItem(Item.Settings().maxCount(1).rarity(Rarity.COMMON))
val COBBLEDEX_ITEM = CobbledexItem(Item.Settings().maxCount(1).rarity(Rarity.COMMON))
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import com.google.gson.JsonObject
import com.rafacasari.mod.cobbledex.Cobbledex
import com.rafacasari.mod.cobbledex.api.classes.DiscoveryRegister
import com.rafacasari.mod.cobbledex.network.client.packets.ReceiveCollectionDataPacket
import com.rafacasari.mod.cobbledex.utils.logInfo
import com.rafacasari.mod.cobbledex.utils.MiscUtils.logInfo
import net.minecraft.server.network.ServerPlayerEntity

class CobbledexDiscovery(val registers: MutableMap<String, MutableMap<String, DiscoveryRegister>> = mutableMapOf()): PlayerDataExtension {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import com.cobblemon.mod.common.pokemon.FormData
import com.cobblemon.mod.common.pokemon.RenderablePokemon
import com.cobblemon.mod.common.pokemon.Species
import com.cobblemon.mod.common.util.math.fromEulerXYZDegrees
import com.rafacasari.mod.cobbledex.CobbledexConstants.Client.discoveredList
import com.rafacasari.mod.cobbledex.api.classes.DiscoveryRegister
import com.rafacasari.mod.cobbledex.client.gui.CobbledexGUI.Companion.SCALE
import com.rafacasari.mod.cobbledex.client.gui.CobbledexGUI.Companion.TYPE_SPACER
Expand All @@ -23,9 +24,9 @@ import com.rafacasari.mod.cobbledex.client.widget.SearchWidget
import com.rafacasari.mod.cobbledex.client.widget.SilhouetteModelWidget
import com.rafacasari.mod.cobbledex.network.client.handlers.SyncServerSettingsHandler
import com.rafacasari.mod.cobbledex.utils.CobblemonUtils.drawBlackSilhouettePokemon
import com.rafacasari.mod.cobbledex.utils.cobbledexResource
import com.rafacasari.mod.cobbledex.utils.cobbledexTextTranslation
import com.rafacasari.mod.cobbledex.utils.cobbledexTranslation
import com.rafacasari.mod.cobbledex.utils.MiscUtils.cobbledexResource
import com.rafacasari.mod.cobbledex.utils.MiscUtils.cobbledexTextTranslation
import com.rafacasari.mod.cobbledex.utils.MiscUtils.cobbledexTranslation
import net.minecraft.client.MinecraftClient
import net.minecraft.client.gui.DrawContext
import net.minecraft.client.gui.screen.Screen
Expand All @@ -39,8 +40,6 @@ import org.joml.Vector3f

class CobbledexCollectionGUI : Screen(cobbledexTextTranslation("cobbledex")) {
companion object {
var discoveredList: MutableMap<String, MutableMap<String, DiscoveryRegister>> = mutableMapOf()

const val BASE_WIDTH: Int = 349
const val BASE_HEIGHT: Int = 205
const val PORTRAIT_SIZE = 58F
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import com.cobblemon.mod.common.CobblemonSounds
import com.cobblemon.mod.common.api.gui.blitk
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
import com.cobblemon.mod.common.api.text.*
import com.cobblemon.mod.common.api.types.ElementalTypes
import com.cobblemon.mod.common.client.CobblemonResources
import com.cobblemon.mod.common.client.gui.ExitButton
import com.cobblemon.mod.common.client.gui.TypeIcon
import com.cobblemon.mod.common.client.gui.summary.widgets.ModelWidget
import com.cobblemon.mod.common.client.render.drawScaledText
import com.cobblemon.mod.common.pokemon.FormData
Expand All @@ -17,23 +17,21 @@ import net.minecraft.client.gui.DrawContext
import net.minecraft.client.gui.screen.Screen
import net.minecraft.client.sound.PositionedSoundInstance
import net.minecraft.sound.SoundEvent
import net.minecraft.text.Style
import net.minecraft.util.Identifier
import com.rafacasari.mod.cobbledex.client.gui.menus.BattleMenu
import com.rafacasari.mod.cobbledex.client.gui.menus.EvolutionMenu
import com.rafacasari.mod.cobbledex.client.gui.menus.InfoMenu
import com.rafacasari.mod.cobbledex.client.widget.ArrowButton
import com.rafacasari.mod.cobbledex.client.widget.CobbledexTab
import com.rafacasari.mod.cobbledex.client.widget.LongTextDisplay
import com.rafacasari.mod.cobbledex.client.widget.PokemonEvolutionDisplay
import com.rafacasari.mod.cobbledex.client.widget.*
import com.rafacasari.mod.cobbledex.network.server.packets.RequestCobbledexPacket
import com.rafacasari.mod.cobbledex.network.template.SerializableItemDrop
import com.rafacasari.mod.cobbledex.network.template.SerializablePokemonEvolution
import com.rafacasari.mod.cobbledex.network.template.SerializablePokemonSpawnDetail
import com.rafacasari.mod.cobbledex.utils.*
import net.minecraft.text.Text
import com.rafacasari.mod.cobbledex.utils.CobblemonUtils
import com.rafacasari.mod.cobbledex.utils.MiscUtils.cobbledexResource
import com.rafacasari.mod.cobbledex.utils.MiscUtils.cobbledexTextTranslation
import com.rafacasari.mod.cobbledex.utils.MiscUtils.format

class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<String>? = null, val cameFromCollection: Boolean = false) : Screen(
class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<String>? = null) : Screen(
cobbledexTextTranslation("cobbledex")
) {

Expand Down Expand Up @@ -65,7 +63,7 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri
fun openCobbledexScreen(pokemon: FormData? = null, aspects: Set<String>? = null, skipSound: Boolean = false, cameFromCollection: Boolean = false) {
if (!skipSound) playSound(CobblemonSounds.PC_ON)

Instance = CobbledexGUI(pokemon, aspects, cameFromCollection)
Instance = CobbledexGUI(pokemon, aspects)
MinecraftClient.getInstance().setScreen(Instance)
}

Expand All @@ -87,7 +85,6 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri

var lastLoadedEvolutions: List<SerializablePokemonEvolution>? = null
var lastLoadedPreEvolutions: List<Pair<Species, Set<String>>>? = null
//var lastLoadedForms: List<Pair<Species, Set<String>>>? = null

internal fun onServerJoin() {
previewPokemon = null
Expand All @@ -97,7 +94,7 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri

private var modelWidget: ModelWidget? = null
private var evolutionDisplay: PokemonEvolutionDisplay? = null
private var typeWidget: TypeIcon? = null
private lateinit var typeWidget: TypeIconTooltip
private var longTextDisplay: LongTextDisplay? = null

private lateinit var infoTabButton: CobbledexTab
Expand All @@ -110,10 +107,8 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri
val y = (height - BASE_HEIGHT) / 2

this.addDrawableChild(ExitButton(pX = x + 315, pY = y + 172) {
if (cameFromCollection)
CobbledexCollectionGUI.show(true)
else
this.close()
CobbledexCollectionGUI.show(true)
previewPokemon = null
})

evolutionDisplay = PokemonEvolutionDisplay(x + 260, y + 37)
Expand All @@ -123,6 +118,16 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri
longTextDisplay = LongTextDisplay(x + 79, y + 18, 179, 158, 2)
addDrawableChild(longTextDisplay)

typeWidget = TypeIconTooltip(
x = x + 42, y = y + 111,
primaryType = ElementalTypes.GRASS, secondaryType = null,
doubleCenteredOffset = 15f / 2,
secondaryOffset = 15f,
small = false,
centeredX = true
)
addDrawableChild(typeWidget)

super.init()

// setPreview to the target or cached Pokémon
Expand Down Expand Up @@ -251,7 +256,7 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri

drawScaledText(
context = context,
text = cobbledexTranslation("cobbledex.texts.pokedex_number").bold(),
text = cobbledexTextTranslation("pokedex_number").bold(),
x = x + 12F,
y = y + 134.5f,
centered = false,
Expand All @@ -261,7 +266,7 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri

drawScaledText(
context = context,
text = cobbledexTranslation("cobbledex.texts.height").bold(),
text = cobbledexTextTranslation("height").bold(),
x = x + 12F,
y = y + 156.5f,
centered = false,
Expand All @@ -270,17 +275,17 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri

drawScaledText(
context = context,
text = cobbledexTranslation("cobbledex.texts.weight").bold(),
text = cobbledexTextTranslation("weight").bold(),
x = x + 12F,
y = y + 178.5f,
centered = false,
scale = 0.65F
)

val selectedRelatedMenuText = when (selectedRelatedTab) {
CobbledexRelatedMenu.Evolutions -> cobbledexTranslation("cobbledex.texts.evolutions")
CobbledexRelatedMenu.PreEvolutions -> cobbledexTranslation("cobbledex.texts.preevolutions")
CobbledexRelatedMenu.Forms -> cobbledexTranslation("cobbledex.texts.forms")
CobbledexRelatedMenu.Evolutions -> cobbledexTextTranslation("evolutions")
CobbledexRelatedMenu.PreEvolutions -> cobbledexTextTranslation("preevolutions")
CobbledexRelatedMenu.Forms -> cobbledexTextTranslation("forms")
}

drawScaledText(
Expand All @@ -294,7 +299,7 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri
drawScaledText(
context = context,
font = CobblemonResources.DEFAULT_LARGE,
text = cobbledexTranslation("cobbledex.texts.cobbledex").bold(),
text = cobbledexTextTranslation("cobbledex").bold(),
x = x + 169.5F,
y = y + 7.35F,
shadow = true,
Expand Down Expand Up @@ -323,9 +328,6 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri
scale = SCALE
)


typeWidget?.render(context)

drawScaledText(
context = context,
text = pokemon.species.nationalPokedexNumber.toString().text(),
Expand Down Expand Up @@ -353,33 +355,10 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri
centered = false,
scale = 0.65F
)

}

super.render(context, mouseX, mouseY, delta)

// Move to a special widget with tooltip :P
previewPokemon?.let { pokemon ->
if (typeWidget != null) {
val typeX: Float? = typeWidget?.x?.toFloat()
val typeY: Float? = typeWidget?.y?.toFloat()
val space: Float = if (previewPokemon?.secondaryType != null) 16f else 8f
if (typeX != null && typeY != null) {
val itemHovered =
mouseX.toFloat() in typeX - space..(typeX + space) && mouseY.toFloat() in typeY..(typeY + 16)
if (itemHovered) {
val typeText = pokemon.primaryType.displayName.setStyle(Style.EMPTY.withBold(true).withColor(pokemon.primaryType.hue))

pokemon.secondaryType?.let { secondType ->
typeText.append(Text.of(" & ").bold())
typeText.append(secondType.displayName.setStyle(Style.EMPTY.withBold(true).withColor(secondType.hue)))
}

context.drawTooltip(MinecraftClient.getInstance().textRenderer, typeText, mouseX, mouseY)
}
}
}
}
typeWidget.drawTooltip(context, mouseX, mouseY)
}

override fun shouldPause(): Boolean = false
Expand Down Expand Up @@ -439,21 +418,16 @@ class CobbledexGUI(var selectedPokemon: FormData?, var selectedAspects: Set<Stri
)

val typeOffset = 14f
typeWidget = TypeIcon(
x = x + 39 + 3,
y = y + 97 + 14,
type = pokemon.primaryType,
secondaryType = pokemon.secondaryType,
doubleCenteredOffset = typeOffset / 2,
secondaryOffset = typeOffset,
small = false,
centeredX = true
)


typeWidget.primaryType = pokemon.primaryType
typeWidget.secondaryType = pokemon.secondaryType


} else {
previewPokemon = null
modelWidget = null
typeWidget = null

}
}

Expand Down
Loading

0 comments on commit 504979f

Please sign in to comment.