Skip to content

Commit 300029a

Browse files
committed
part 2
1 parent d49fe30 commit 300029a

File tree

148 files changed

+1327
-1163
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+1327
-1163
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ object GenerationsArchitecturyEvents {
5757

5858
if (player is ServerPlayer) {
5959
if (hand == InteractionHand.MAIN_HAND && player.level().getBlockState(pos)
60-
.`is`(GenerationsShrines.TAPU_SHRINE.get()) && player.getItemInHand(hand)
60+
.`is`(GenerationsShrines.TAPU_SHRINE) && player.getItemInHand(hand)
6161
.`is`(GenerationsItems.SPARKLING_STONE)
6262
) {
6363
val dialogue: Dialogue = Dialogues.dialogues[GenerationsCore.id("tapu_spawn")]
@@ -71,7 +71,7 @@ object GenerationsArchitecturyEvents {
7171
event.result = TriState.TRUE
7272
return@subscribe
7373
} else if (hand == InteractionHand.MAIN_HAND && player.level().getBlockState(pos)
74-
.`is`(GenerationsShrines.ABUNDANT_SHRINE.get()) && player.getItemInHand(hand)
74+
.`is`(GenerationsShrines.ABUNDANT_SHRINE) && player.getItemInHand(hand)
7575
.`is`(GenerationsItems.REVEAL_GLASS)
7676
) {
7777
val dialogue: Dialogue = Dialogues.dialogues[GenerationsCore.id("therian_spawn")]

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

Lines changed: 45 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.cobblemon.mod.common.api.data.DataProvider
1111
import com.cobblemon.mod.common.api.spawning.detail.SpawnDetail.Companion.registerSpawnType
1212
import com.cobblemon.mod.common.api.storage.player.PlayerDataExtensionRegistry.register
1313
import com.mojang.logging.LogUtils
14+
import com.mojang.serialization.MapCodec
1415
import dev.architectury.event.events.common.LootEvent
1516
import generations.gg.generations.core.generationscore.common.api.GenerationsMolangFunctions
1617
import generations.gg.generations.core.generationscore.common.api.data.GenerationsCoreEntityDataSerializers
@@ -38,13 +39,14 @@ import generations.gg.generations.core.generationscore.common.world.level.block.
3839
import generations.gg.generations.core.generationscore.common.world.level.block.entities.GenerationsBlockEntities
3940
import generations.gg.generations.core.generationscore.common.world.loot.LootItemConditionTypes
4041
import generations.gg.generations.core.generationscore.common.world.loot.LootPoolEntryTypes
41-
import generations.gg.generations.core.generationscore.common.world.recipe.GenerationsCoreRecipeSerializers
42-
import generations.gg.generations.core.generationscore.common.world.recipe.GenerationsCoreRecipeTypes
43-
import generations.gg.generations.core.generationscore.common.world.recipe.RksResultType
42+
import generations.gg.generations.core.generationscore.common.world.recipe.*
4443
import generations.gg.generations.core.generationscore.common.world.sound.GenerationsSounds
4544
import generations.gg.generations.core.generationscore.common.world.spawning.ZygardeCellDetail
4645
import net.minecraft.core.registries.Registries
46+
import net.minecraft.network.RegistryFriendlyByteBuf
4747
import net.minecraft.network.chat.MutableComponent
48+
import net.minecraft.network.codec.ByteBufCodecs
49+
import net.minecraft.network.codec.StreamCodec
4850
import net.minecraft.resources.ResourceKey
4951
import net.minecraft.resources.ResourceLocation
5052
import net.minecraft.server.level.ServerPlayer
@@ -65,6 +67,7 @@ import java.util.function.IntConsumer
6567
* @author Joseph T. McQuigg, WaterPicker
6668
*/
6769
object GenerationsCore {
70+
6871
/** The mod id of the Generations-Core mod. */
6972
const val MOD_ID: String = "generations_core"
7073

@@ -80,6 +83,8 @@ object GenerationsCore {
8083
@JvmField
8184
var dataProvider: DataProvider = GenerationsDataProvider.INSTANCE
8285

86+
lateinit var RKS_RESULT_TYPE: RegistryContainer<RksResultType<*>, RksResult<*>>
87+
8388
/**
8489
* Initializes the Generations-Core mod.
8590
*/
@@ -90,6 +95,7 @@ object GenerationsCore {
9095
)
9196
GenerationsCore.implementation = implementation
9297

98+
RKS_RESULT_TYPE = RegistryContainer( "rks_result", RksResult<*>::type, RksResultType<*>::codec, RksResultType<*>::streamCodec)
9399

94100
// GenerationsDataProvider.INSTANCE.register(ShopPresets.instance());
95101
// GenerationsDataProvider.INSTANCE.register(Shops.instance());
@@ -123,32 +129,10 @@ object GenerationsCore {
123129

124130
GenerationsCoreEntityDataSerializers.init()
125131
GenerationsStorage.init()
126-
GenerationsDataComponents.init()
127-
GenerationsSounds.init()
128-
GenerationsBlocks.init()
129-
GenerationsPokeDolls.init()
130-
GenerationsWood.init()
131-
GenerationsOres.init()
132-
GenerationsDecorationBlocks.init()
133-
LootPoolEntryTypes.init()
134-
LootItemConditionTypes.init()
135-
GenerationsUtilityBlocks.init()
136-
GenerationsShrines.init()
137-
GenerationsBlocks.initItems()
138-
GenerationsItems.init()
139-
GenerationsBlockEntities.init()
140-
GenerationsEntities.init()
141-
GenerationsArmorMaterials.init()
142-
GenerationsArmor.init()
143-
GenerationsTools.init()
144-
GenerationsCreativeTabs.init()
145-
GenerationsContainers.init()
146132
GenerationsResources.init()
147-
RksResultType.init()
148133
GenerationsIngredidents.init()
149-
GenerationsCoreRecipeTypes.init()
150-
GenerationsCoreRecipeSerializers.init()
151-
GenerationsCoreStats.init()
134+
135+
registerRegistires()
152136

153137
GenerationsDataProvider.INSTANCE.registerDefaults()
154138

@@ -175,7 +159,6 @@ object GenerationsCore {
175159
registerDefaultCustomInteractions()
176160

177161

178-
// BuiltInRegistries.BLOCK.stream().map(a -> a.arch$registryName() + ": " + a.getLootTable()).forEach(a -> System.out.println(a));
179162
}
180163

181164
fun initBuiltinPacks(consumer: TriConsumer<PackType?, ResourceLocation?, MutableComponent?>?) {
@@ -206,6 +189,40 @@ object GenerationsCore {
206189
fun id(path: String): ResourceLocation {
207190
return ResourceLocation.fromNamespaceAndPath(MOD_ID, path)
208191
}
192+
193+
fun registerRegistires() {
194+
implementation.register(GenerationsDataComponents)
195+
implementation.register(GenerationsSounds)
196+
GenerationsBlocks.init(implementation::register)
197+
implementation.register(GenerationsPokeDolls)
198+
GenerationsWood.init(implementation::register)
199+
implementation.register(GenerationsOres)
200+
implementation.register(GenerationsDecorationBlocks)
201+
implementation.register(LootPoolEntryTypes)
202+
implementation.register(LootItemConditionTypes)
203+
implementation.register(GenerationsUtilityBlocks)
204+
implementation.register(GenerationsShrines)
205+
GenerationsItems.init(implementation::register)
206+
GenerationsBlocks.initItems(implementation::register)
207+
implementation.register(GenerationsBlockEntities)
208+
implementation.register(GenerationsEntities)
209+
implementation.register(GenerationsArmorMaterials)
210+
implementation.register(GenerationsArmor)
211+
implementation.register(GenerationsTools)
212+
implementation.register(GenerationsCreativeTabs)
213+
implementation.register(GenerationsContainers)
214+
implementation.register(GenerationsCoreRecipeTypes)
215+
implementation.register(GenerationsCoreRecipeSerializers)
216+
implementation.register(GenerationsCoreStats)
217+
implementation.register(GenerationsRksTypes)
218+
}
219+
}
220+
221+
class RegistryContainer<T: Any, V: Any>(name: String, from: (V) -> T, mapCodec: (T) -> MapCodec<out V>, streamCodec: (T) -> StreamCodec<RegistryFriendlyByteBuf, out V>) {
222+
val key = ResourceKey.createRegistryKey<T>(name.generationsResource())
223+
val registry = GenerationsCore.implementation.createRegistry(key, true)
224+
val codec = registry.byNameCodec().dispatch(from::invoke, mapCodec::invoke)
225+
val streamCodec = ByteBufCodecs.registry(key).dispatch(from::invoke, streamCodec::invoke)
209226
}
210227

211228
fun <T> T?.orFalse(predicate: (T) -> Boolean): Boolean = this?.let(predicate) ?: false

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11
package generations.gg.generations.core.generationscore.common
22

33
import generations.gg.generations.core.generationscore.common.util.PlatformRegistry
4+
import generations.gg.generations.core.generationscore.common.world.container.ExtendedMenuProvider
5+
import net.minecraft.core.Registry
6+
import net.minecraft.network.FriendlyByteBuf
7+
import net.minecraft.network.RegistryFriendlyByteBuf
48
import net.minecraft.network.syncher.EntityDataSerializer
9+
import net.minecraft.resources.ResourceKey
510
import net.minecraft.resources.ResourceLocation
11+
import net.minecraft.server.level.ServerPlayer
612
import net.minecraft.server.packs.PackType
713
import net.minecraft.server.packs.resources.PreparableReloadListener
14+
import net.minecraft.world.MenuProvider
15+
import net.minecraft.world.entity.player.Inventory
16+
import net.minecraft.world.inventory.AbstractContainerMenu
17+
import net.minecraft.world.inventory.MenuType
818
import net.minecraft.world.item.CreativeModeTab
919
import net.minecraft.world.item.ItemStack
1020
import net.minecraft.world.level.ItemLike
1121
import net.minecraft.world.level.block.Block
22+
import java.util.*
23+
import java.util.function.Consumer
1224
import java.util.function.Supplier
1325

1426
interface GenerationsImplementation {
27+
1528
fun registerResourceReloader(
1629
identifier: ResourceLocation?,
1730
reloader: PreparableReloadListener?,
@@ -48,6 +61,11 @@ interface GenerationsImplementation {
4861
): CreativeModeTab
4962

5063
fun <T: Any> registerEntityDataSerializer(name: String, dataSerializer: EntityDataSerializer<T>)
64+
fun <T : AbstractContainerMenu> createExtendedMenu(constructor: (Int, Inventory, FriendlyByteBuf) -> T): MenuType<T>
65+
fun <T: Any> register(register: PlatformRegistry<T>)
66+
fun openExtendedMenu(serverPlayer: ServerPlayer, menuProvider: ExtendedMenuProvider)
67+
68+
fun <T: Any> createRegistry(key: ResourceKey<Registry<T>>, sync: Boolean): Registry<T>
5169

5270
enum class ModAPI {
5371
FABRIC,

common/src/main/java/generations/gg/generations/core/generationscore/common/api/data/GenerationsCoreEntityDataSerializers.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
11
package generations.gg.generations.core.generationscore.common.api.data
22

33
//import generations.gg.generations.core.generationscore.common.world.entity.StatueEntity.StatueInfo
4-
import dev.architectury.injectables.annotations.ExpectPlatform
54
import generations.gg.generations.core.generationscore.common.GenerationsCore
5+
import generations.gg.generations.core.generationscore.common.util.StreamCodecs.asRegistryFriendly
6+
import generations.gg.generations.core.generationscore.common.util.StreamCodecs.optional
67
import generations.gg.generations.core.generationscore.common.util.readNullableString
78
import generations.gg.generations.core.generationscore.common.util.readPokemonProperties
89
import generations.gg.generations.core.generationscore.common.util.writeNullableString
910
import generations.gg.generations.core.generationscore.common.util.writePokemonProperties
1011
import net.minecraft.network.FriendlyByteBuf
1112
import net.minecraft.network.RegistryFriendlyByteBuf
13+
import net.minecraft.network.codec.ByteBufCodecs
1214
import net.minecraft.network.codec.StreamCodec
1315
import net.minecraft.network.syncher.EntityDataSerializer
1416
import net.minecraft.network.syncher.EntityDataSerializers
1517

1618
object GenerationsCoreEntityDataSerializers {
17-
val NULLABLE_STRING = simple(FriendlyByteBuf::writeNullableString, FriendlyByteBuf::readNullableString)
18-
val PROPERTIES = simple(FriendlyByteBuf::writePokemonProperties, FriendlyByteBuf::readPokemonProperties)
19-
20-
@ExpectPlatform
21-
fun <T> simple(encoder: (RegistryFriendlyByteBuf, T) -> Unit, decoder: (RegistryFriendlyByteBuf) -> T): EntityDataSerializer<T> = EntityDataSerializer.forValueType(StreamCodec.of(encoder, decoder))
19+
val NULLABLE_STRING = EntityDataSerializer.forValueType(ByteBufCodecs.STRING_UTF8.optional().asRegistryFriendly())
20+
val PROPERTIES = EntityDataSerializer.forValueType(StreamCodec.of(FriendlyByteBuf::writePokemonProperties, FriendlyByteBuf::readPokemonProperties))
2221

2322
@JvmStatic fun init() {
2423
GenerationsCore.implementation.registerEntityDataSerializer("properties", PROPERTIES)

common/src/main/java/generations/gg/generations/core/generationscore/common/api/events/general/InteractionEvents.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package generations.gg.generations.core.generationscore.common.api.events.genera
22

33
import com.cobblemon.mod.common.api.events.Cancelable
44
import com.cobblemon.mod.common.api.reactive.CancelableObservable
5-
import dev.architectury.event.EventResult
65
import generations.gg.generations.core.generationscore.common.api.events.TriState
76
import net.minecraft.core.BlockPos
87
import net.minecraft.core.Direction

0 commit comments

Comments
 (0)