Skip to content

Commit e22cd62

Browse files
committed
Part 3
1 parent ecf5c34 commit e22cd62

20 files changed

Lines changed: 134 additions & 175 deletions

File tree

common/src/main/java/generations/gg/generations/core/generationscore/common/GenerationsCore.kt

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import com.cobblemon.mod.common.api.spawning.detail.SpawnDetail.Companion.regist
1212
import com.cobblemon.mod.common.api.storage.player.PlayerDataExtensionRegistry.register
1313
import com.mojang.logging.LogUtils
1414
import com.mojang.serialization.MapCodec
15-
import dev.architectury.event.events.common.LootEvent
1615
import generations.gg.generations.core.generationscore.common.api.GenerationsMolangFunctions
1716
import generations.gg.generations.core.generationscore.common.api.data.GenerationsCoreEntityDataSerializers
1817
import generations.gg.generations.core.generationscore.common.api.player.AccountInfo
@@ -54,7 +53,6 @@ import net.minecraft.server.packs.PackType
5453
import net.minecraft.world.entity.player.Player
5554
import net.minecraft.world.item.ItemStack
5655
import net.minecraft.world.level.storage.loot.LootPool
57-
import net.minecraft.world.level.storage.loot.LootTable
5856
import net.minecraft.world.level.storage.loot.entries.NestedLootTable
5957
import org.apache.logging.log4j.util.TriConsumer
6058
import org.slf4j.Logger
@@ -99,28 +97,6 @@ object GenerationsCore {
9997

10098
// GenerationsDataProvider.INSTANCE.register(ShopPresets.instance());
10199
// GenerationsDataProvider.INSTANCE.register(Shops.instance());
102-
LootEvent.MODIFY_LOOT_TABLE.register(LootEvent.ModifyLootTable { lootId: ResourceKey<LootTable?>, context: LootEvent.LootTableModificationContext, builtin: Boolean ->
103-
val id = lootId.location()
104-
if (id.namespace == "minecraft" && id.path.contains("chests") && !id.path.contains("inject")) {
105-
val inject =
106-
ResourceLocation.fromNamespaceAndPath(id.namespace, id.path.replace("chests", "chests/inject"))
107-
context.addPool(
108-
LootPool.lootPool()
109-
.add(NestedLootTable.lootTableReference(ResourceKey.create(Registries.LOOT_TABLE, inject)))
110-
)
111-
} else if (id.toString() == "minecraft:blocks/carrots") {
112-
context.addPool(
113-
LootPool.lootPool().add(
114-
NestedLootTable.lootTableReference(
115-
ResourceKey.create(
116-
Registries.LOOT_TABLE,
117-
id("blocks/calyrex_roots")
118-
)
119-
)
120-
)
121-
)
122-
}
123-
})
124100

125101
registerSpawnType(
126102
ZygardeCellDetail.TYPE,
@@ -216,6 +192,28 @@ object GenerationsCore {
216192
implementation.register(GenerationsCoreStats)
217193
implementation.register(GenerationsRksTypes)
218194
}
195+
196+
fun processLootTable(lootId: ResourceLocation, lootTable: (LootPool.Builder) -> Unit) {
197+
if (lootId.namespace == "minecraft" && lootId.path.contains("chests") && !lootId.path.contains("inject")) {
198+
val inject =
199+
ResourceLocation.fromNamespaceAndPath(lootId.namespace, lootId.path.replace("chests", "chests/inject"))
200+
lootTable.invoke(
201+
LootPool.lootPool()
202+
.add(NestedLootTable.lootTableReference(ResourceKey.create(Registries.LOOT_TABLE, inject)))
203+
)
204+
} else if (lootId.toString() == "minecraft:blocks/carrots") {
205+
lootTable.invoke(
206+
LootPool.lootPool().add(
207+
NestedLootTable.lootTableReference(
208+
ResourceKey.create(
209+
Registries.LOOT_TABLE,
210+
id("blocks/calyrex_roots")
211+
)
212+
)
213+
)
214+
)
215+
}
216+
}
219217
}
220218

221219
class RegistryContainer<T: Any, V: Any>(name: String, from: (V) -> T, mapCodec: (T) -> MapCodec<out V>, streamCodec: (T) -> StreamCodec<RegistryFriendlyByteBuf, out V>) {

common/src/main/java/generations/gg/generations/core/generationscore/common/GenerationsImplementation.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package generations.gg.generations.core.generationscore.common
22

33
import generations.gg.generations.core.generationscore.common.util.PlatformRegistry
44
import generations.gg.generations.core.generationscore.common.world.container.ExtendedMenuProvider
5-
import net.minecraft.client.renderer.item.ClampedItemPropertyFunction
65
import net.minecraft.core.Registry
76
import net.minecraft.network.FriendlyByteBuf
87
import net.minecraft.network.syncher.EntityDataSerializer
@@ -72,8 +71,6 @@ interface GenerationsImplementation {
7271

7372
val server: MinecraftServer?
7473

75-
fun registerGeneric(propertyId: ResourceLocation, function: ClampedItemPropertyFunction)
76-
7774
enum class Environment {
7875
CLIENT,
7976
SERVER

common/src/main/java/generations/gg/generations/core/generationscore/common/client/GenerationsCoreClient.kt

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,10 @@ import com.mojang.blaze3d.systems.RenderSystem
1616
import com.mojang.blaze3d.vertex.BufferUploader
1717
import com.mojang.blaze3d.vertex.PoseStack
1818
import com.mojang.blaze3d.vertex.VertexConsumer
19-
import dev.architectury.registry.menu.MenuRegistry
2019
import generations.gg.generations.core.generationscore.common.GenerationsCore
2120
import generations.gg.generations.core.generationscore.common.GenerationsCore.LOGGER
2221
import generations.gg.generations.core.generationscore.common.client.model.GenerationsClientMolangFunctions
2322
import generations.gg.generations.core.generationscore.common.client.model.RareCandyBone
24-
import generations.gg.generations.core.generationscore.common.client.model.RunnableKeybind
2523
import generations.gg.generations.core.generationscore.common.client.model.inventory.GenericChestItemStackRenderer
2624
import generations.gg.generations.core.generationscore.common.client.render.block.entity.*
2725
import generations.gg.generations.core.generationscore.common.client.render.entity.*
@@ -48,6 +46,7 @@ import gg.generations.rarecandy.renderer.rendering.RareCandy
4846
import gg.generations.rarecandy.renderer.rendering.RenderStage
4947
import net.minecraft.client.Camera
5048
import net.minecraft.client.Minecraft
49+
import net.minecraft.client.gui.screens.MenuScreens
5150
import net.minecraft.client.model.BoatModel
5251
import net.minecraft.client.model.ChestBoatModel
5352
import net.minecraft.client.model.geom.ModelLayerLocation
@@ -85,7 +84,6 @@ import net.minecraft.world.phys.shapes.CollisionContext
8584
import net.minecraft.world.phys.shapes.VoxelShape
8685
import org.joml.Matrix4f
8786
import org.joml.Vector4f
88-
import org.lwjgl.glfw.GLFW
8987
import java.io.File
9088
import java.util.function.Function
9189

@@ -161,7 +159,6 @@ object GenerationsCoreClient {
161159

162160

163161
private fun setupClient(event: Minecraft) {
164-
RunnableKeybind.create("toggleShaderRendering", GLFW.GLFW_KEY_P, "rendering", Pipelines::toggleRendering)
165162

166163
event.tell({
167164
addWoodType(GenerationsWoodTypes.ULTRA_JUNGLE)
@@ -174,7 +171,7 @@ object GenerationsCoreClient {
174171
registerScreens()
175172
})
176173

177-
GenerationsCore.implementation.registerGeneric(GenerationsCore.id("type")) { itemStack, clientLevel, livingEntity, i ->
174+
ItemProperties.registerGeneric(GenerationsCore.id("type")) { itemStack, clientLevel, livingEntity, i ->
178175
val type =
179176
itemStack.item.instanceOrNull<MoveTeachingItem>()?.getType(itemStack) ?: return@registerGeneric 0.0f
180177
return@registerGeneric when (type) {
@@ -290,15 +287,15 @@ object GenerationsCoreClient {
290287
Sheets.HANGING_SIGN_MATERIALS.put(woodType, createHangingSignMaterial(woodType))
291288
}
292289

293-
private fun registerScreens() {
294-
MenuRegistry.registerScreenFactory(GenerationsContainers.COOKING_POT, ::CookingPotScreen)
295-
MenuRegistry.registerScreenFactory(GenerationsContainers.GENERIC, ::GenericChestScreen)
290+
fun registerScreens() {
291+
MenuScreens.register(GenerationsContainers.COOKING_POT, ::CookingPotScreen)
292+
MenuScreens.register(GenerationsContainers.GENERIC, ::GenericChestScreen)
296293
// MenuRegistry.registerScreenFactory(GenerationsContainers.WALKMON, GenericChestScreen::new);
297294
// MenuRegistry.registerScreenFactory(GenerationsContainers.CALYREX_STEED, GenericChestScreen::new);
298295
// MenuRegistry.registerScreenFactory(GenerationsContainers.MACHINE_BLOCK, ::MachineBlockScreen)
299-
MenuRegistry.registerScreenFactory(GenerationsContainers.MELODY_FLUTE, ::MelodyFluteScreen)
300-
MenuRegistry.registerScreenFactory(GenerationsContainers.TRASHCAN, ::TrashCanScreen)
301-
MenuRegistry.registerScreenFactory(GenerationsContainers.RKS_MACHINE, ::RksMachineScreen)
296+
MenuScreens.register(GenerationsContainers.MELODY_FLUTE, ::MelodyFluteScreen)
297+
MenuScreens.register(GenerationsContainers.TRASHCAN, ::TrashCanScreen)
298+
MenuScreens.register(GenerationsContainers.RKS_MACHINE, ::RksMachineScreen)
302299
}
303300

304301
/**

common/src/main/java/generations/gg/generations/core/generationscore/common/client/model/RareCandyBone.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,18 @@ import com.cobblemon.mod.common.client.render.models.blockbench.PosableModel
66
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Bone
77
import com.cobblemon.mod.common.client.render.models.blockbench.repository.PokemonModelRepository
88
import com.cobblemon.mod.common.client.render.models.blockbench.repository.RenderContext
9-
import com.cobblemon.mod.common.client.render.models.blockbench.repository.RenderContext.RenderState
10-
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
119
import com.cobblemon.mod.common.pokemon.FormData
1210
import com.cobblemon.mod.common.pokemon.Species
13-
import com.cobblemon.mod.common.util.asResource
14-
import com.mojang.blaze3d.systems.RenderSystem
1511
import com.mojang.blaze3d.vertex.PoseStack
1612
import com.mojang.blaze3d.vertex.VertexConsumer
1713
import com.mojang.math.Axis
1814
import generations.gg.generations.core.generationscore.common.client.IVariant
19-
import generations.gg.generations.core.generationscore.common.client.model.SpriteRegistry.getPokemonSprite
2015
import generations.gg.generations.core.generationscore.common.client.render.CobblemonInstanceProvider
2116
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.CompiledModel
2217
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.ModelRegistry
23-
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.Pipelines
2418
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.instanceOrNull
2519
import net.minecraft.client.Minecraft
2620
import net.minecraft.client.model.geom.ModelPart
27-
import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite
2821
import net.minecraft.core.Direction
2922
import net.minecraft.resources.ResourceLocation
3023
import org.joml.Vector3f
Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,32 @@
11
package generations.gg.generations.core.generationscore.common.client.model
22

3-
import dev.architectury.event.EventResult
4-
import dev.architectury.event.events.client.ClientRawInputEvent
5-
import dev.architectury.registry.client.keymappings.KeyMappingRegistry
3+
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.Pipelines
64
import net.minecraft.client.KeyMapping
7-
import net.minecraft.client.Minecraft
85
import org.lwjgl.glfw.GLFW
96

10-
class RunnableKeybind(name: String, keyId: Int, category: String, private val runnable: Runnable) :
11-
KeyMapping(name, keyId, category) {
12-
init {
13-
ClientRawInputEvent.KEY_PRESSED.register(ClientRawInputEvent.KeyPressed { client: Minecraft, keyCode: Int, scanCode: Int, action: Int, modifiers: Int ->
14-
this.onKeyPress(
15-
client,
16-
keyCode,
17-
scanCode,
18-
action,
19-
modifiers
20-
)
21-
})
22-
}
7+
object Keybinds {
8+
val keybindings = mutableListOf<RunnableKeybind>()
9+
10+
val TOGGLE_RENDERING = register("toggleShaderRendering", GLFW.GLFW_KEY_P, "rendering", Pipelines::toggleRendering)
2311

24-
fun onKeyPress(client: Minecraft, keyCode: Int, scanCode: Int, action: Int, modifiers: Int): EventResult {
25-
if (action == GLFW.GLFW_RELEASE && keyCode == defaultKey.value) {
26-
if (this.consumeClick()) runnable.run()
27-
return EventResult.interruptFalse()
12+
private fun register(name: String, keyId: Int, category: String, runnable: Runnable) = RunnableKeybind(name, keyId, category, runnable).also(keybindings::add)
13+
14+
fun pressDown(keyCode: Int, scanCode: Int, action: Int, modifiers: Int): Boolean {
15+
for(keybinding in keybindings) {
16+
if(keybinding.onKeyPress(keyCode, scanCode, action, modifiers)) return true
2817
}
2918

30-
return EventResult.pass()
19+
return false
3120
}
3221

33-
companion object {
34-
@JvmStatic
35-
fun create(name: String, glfwKey: Int, category: String, action: Runnable) {
36-
val keybind = RunnableKeybind(name, glfwKey, category, action)
37-
KeyMappingRegistry.register(keybind)
22+
class RunnableKeybind(name: String, keyId: Int, category: String, private val runnable: Runnable) : KeyMapping(name, keyId, category) {
23+
fun onKeyPress(keyCode: Int, scanCode: Int, action: Int, modifiers: Int): Boolean {
24+
if (action == GLFW.GLFW_RELEASE && keyCode == defaultKey.value) {
25+
if (this.consumeClick()) runnable.run()
26+
return true
27+
}
28+
29+
return false
3830
}
3931
}
4032
}

common/src/main/java/generations/gg/generations/core/generationscore/common/network/packets/statue/S2COpenStatueEditorScreenHandler.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package generations.gg.generations.core.generationscore.common.network.packets.statue
22

33
import com.cobblemon.mod.common.api.net.ClientNetworkPacketHandler
4-
import dev.architectury.utils.Env
5-
import dev.architectury.utils.EnvExecutor
64
import generations.gg.generations.core.generationscore.common.client.screen.statue.StatueEditorScreen
75
import generations.gg.generations.core.generationscore.common.world.entity.statue.StatueEntity
86
import net.minecraft.client.Minecraft

common/src/main/java/generations/gg/generations/core/generationscore/common/world/container/GenerationsContainers.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package generations.gg.generations.core.generationscore.common.world.container
22

3-
import dev.architectury.event.events.common.PlayerEvent
43
import generations.gg.generations.core.generationscore.common.GenerationsCore
54
import generations.gg.generations.core.generationscore.common.generationsResource
65
import generations.gg.generations.core.generationscore.common.util.PlatformRegistry
@@ -34,11 +33,11 @@ object GenerationsContainers: PlatformRegistry<MenuType<*>>() {
3433
override fun init(consumer: (ResourceLocation, MenuType<*>) -> Unit) {
3534
super.init(consumer)
3635

37-
PlayerEvent.CLOSE_MENU.register(PlayerEvent.CloseMenu { player: Player, container: AbstractContainerMenu ->
38-
onContainerClose(
39-
player, container
40-
)
41-
})
36+
// PlayerEvent.CLOSE_MENU.register(PlayerEvent.CloseMenu { player: Player, container: AbstractContainerMenu ->
37+
// onContainerClose(
38+
// player, container
39+
// )
40+
// })
4241
}
4342

4443
private fun onContainerClose(player: Player, container: AbstractContainerMenu) {
@@ -49,7 +48,7 @@ object GenerationsContainers: PlatformRegistry<MenuType<*>>() {
4948
// if (container instanceof WalkmonContainer genericChestContainer) genericChestContainer.save(player);
5049
// if (container instanceof CalyrexSteedContainer genericChestContainer) genericChestContainer.save(player);
5150

52-
if (container is RksMachineContainer) container.close()
51+
// if (container is RksMachineContainer) container.close()
5352
}
5453

5554
fun <T: AbstractContainerMenu> register(name: String, constructor: (Int, Inventory) -> T): MenuType<T> = create(name.generationsResource(), MenuType(constructor::invoke, FeatureFlags.VANILLA_SET))

common/src/main/java/generations/gg/generations/core/generationscore/common/world/container/RksMachineContainer.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,16 @@ class RksMachineContainer @JvmOverloads constructor(
108108
val isPokemonPresent: Boolean
109109
get() = data[3] == 1
110110

111-
fun close() {
111+
112+
override fun removed(player: Player) {
113+
super.removed(player)
114+
112115
rksMachine.instanceOrNull<RksMachineBlockEntity>()?.removeMenu(this)
113116
}
114117

118+
fun close() {
119+
}
120+
115121
class ResultSlot(private val player: Player, rksMachineBlockEntity: Container, slot: Int, x: Int, y: Int) :
116122
Slot(rksMachineBlockEntity, slot, x, y) {
117123
private var removeCount = 0

common/src/main/java/generations/gg/generations/core/generationscore/common/world/entity/block/SittableEntity.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
package generations.gg.generations.core.generationscore.common.world.entity.block
22

3-
import dev.architectury.networking.SpawnEntityPacket
43
import generations.gg.generations.core.generationscore.common.world.entity.GenerationsEntities
54
import generations.gg.generations.core.generationscore.common.world.entity.block.SittableEntity
65
import net.minecraft.core.BlockPos
76
import net.minecraft.nbt.CompoundTag
8-
import net.minecraft.network.protocol.Packet
9-
import net.minecraft.network.protocol.game.ClientGamePacketListener
107
import net.minecraft.network.syncher.SynchedEntityData
11-
import net.minecraft.server.level.ServerEntity
128
import net.minecraft.server.level.ServerLevel
139
import net.minecraft.util.Mth
1410
import net.minecraft.world.entity.Entity
@@ -84,9 +80,11 @@ class SittableEntity(type: EntityType<out Entity?>, level: Level) :
8480
return true
8581
}
8682

87-
override fun getAddEntityPacket(entity: ServerEntity): Packet<ClientGamePacketListener> {
88-
return SpawnEntityPacket.create(this, entity)
89-
}
83+
// override fun getAddEntityPacket(entity: ServerEntity): Packet<ClientGamePacketListener> {
84+
// return ClientboundCustomPayloadPacket(SpawnStatuePacket(
85+
// "", ""
86+
// )) as Packet<ClientGamePacketListener>
87+
// }
9088

9189
// Tick the key and check if the block is removed or if there are no more passengers
9290
override fun getDismountLocationForPassenger(entity: LivingEntity): Vec3 {

common/src/main/java/generations/gg/generations/core/generationscore/common/world/item/TimeCapsule.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ package generations.gg.generations.core.generationscore.common.world.item
22

33
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
44
import com.cobblemon.mod.common.pokemon.Species
5-
import dev.architectury.registry.item.ItemPropertiesRegistry
65
import generations.gg.generations.core.generationscore.common.GenerationsCore
76
import generations.gg.generations.core.generationscore.common.util.*
87
import net.minecraft.client.multiplayer.ClientLevel
8+
import net.minecraft.client.renderer.item.ItemProperties
99
import net.minecraft.core.component.DataComponents
1010
import net.minecraft.network.chat.Component
1111
import net.minecraft.server.level.ServerPlayer
@@ -46,7 +46,7 @@ class TimeCapsule(properties: Properties) : PokemonStoringItem(properties), Poke
4646
companion object {
4747

4848
fun registerItemProperty() {
49-
ItemPropertiesRegistry.register(
49+
ItemProperties.register(
5050
GenerationsItems.TIME_CAPSULE, GenerationsCore.id("has_pokemon")
5151
) { itemStack: ItemStack, clientLevel: ClientLevel?, livingEntity: LivingEntity?, i: Int ->
5252
if (itemStack.getRenderablePokemon() == null) 0f else 1f

0 commit comments

Comments
 (0)