Skip to content

Commit

Permalink
move to holderLookup & fix compile errors
Browse files Browse the repository at this point in the history
  • Loading branch information
PssbleTrngle committed Dec 15, 2023
1 parent b8aef3c commit e7b7b1b
Show file tree
Hide file tree
Showing 60 changed files with 362 additions and 430 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/sonar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
- name: Build and upload
uses: gradle/gradle-build-action@v2
with:
arguments: build sonar
arguments: build test sonar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ jobs:
- name: Build
uses: gradle/gradle-build-action@v2
with:
arguments: build
arguments: build test
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
package com.possible_triangle.skygrid.api

import com.possible_triangle.skygrid.api.SkygridConstants.MOD_ID
import net.minecraft.core.Registry
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.registries.Registries
import net.minecraft.resources.ResourceLocation
import net.minecraft.tags.TagKey
import net.minecraft.world.level.block.Block

object SkygridTags {

val AMETHYST_CLUSTERS = TagKey.create(BuiltInRegistries.BLOCK.key(), ResourceLocation(MOD_ID, "amethyst_clusters"))
val LOOT_CONTAINERS = TagKey.create(BuiltInRegistries.BLOCK.key(), ResourceLocation(MOD_ID, "loot_containers"))
val BARRELS = TagKey.create(BuiltInRegistries.BLOCK.key(), ResourceLocation(MOD_ID, "barrels"))
val CHESTS = TagKey.create(BuiltInRegistries.BLOCK.key(), ResourceLocation(MOD_ID, "chests"))
val GLASS_SILICA = TagKey.create(BuiltInRegistries.BLOCK.key(), ResourceLocation(MOD_ID, "silica_glass"))
val FOREIGN_ORES = TagKey.create(BuiltInRegistries.BLOCK.key(), ResourceLocation(MOD_ID, "foreign_ores"))
val AMETHYST_CLUSTERS = TagKey.create(Registries.BLOCK, ResourceLocation(MOD_ID, "amethyst_clusters"))
val LOOT_CONTAINERS = TagKey.create(Registries.BLOCK, ResourceLocation(MOD_ID, "loot_containers"))
val BARRELS = TagKey.create(Registries.BLOCK, ResourceLocation(MOD_ID, "barrels"))
val CHESTS = TagKey.create(Registries.BLOCK, ResourceLocation(MOD_ID, "chests"))
val GLASS_SILICA = TagKey.create(Registries.BLOCK, ResourceLocation(MOD_ID, "silica_glass"))
val FOREIGN_ORES = TagKey.create(Registries.BLOCK, ResourceLocation(MOD_ID, "foreign_ores"))

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ package com.possible_triangle.skygrid.api.xml
import com.possible_triangle.skygrid.api.SkygridConstants
import com.possible_triangle.skygrid.api.xml.elements.FilterOperator
import com.possible_triangle.skygrid.platform.Services
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.world.level.block.Block

interface Validating {

fun validate(
blocks: Registry<Block>,
blocks: HolderLookup.RegistryLookup<Block>,
references: IReferenceContext,
additionalFilters: List<FilterOperator> = emptyList(),
): Boolean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import com.possible_triangle.skygrid.api.xml.Validating
import com.possible_triangle.skygrid.api.xml.warnInvalid
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.state.BlockState
Expand Down Expand Up @@ -41,7 +41,7 @@ abstract class BlockProvider : WeightedEntry(), Generator<IBlockAccess>, Validat
override fun flat(): List<Pair<Block, Double>> = parent.flat()

override fun internalValidate(
blocks: Registry<Block>,
blocks: HolderLookup.RegistryLookup<Block>,
references: IReferenceContext,
filters: List<FilterOperator>,
): Boolean = parent.internalValidate(blocks, references, filters)
Expand All @@ -59,13 +59,13 @@ abstract class BlockProvider : WeightedEntry(), Generator<IBlockAccess>, Validat
abstract fun flat(): List<Pair<Block, Double>>

protected abstract fun internalValidate(
blocks: Registry<Block>,
blocks: HolderLookup.RegistryLookup<Block>,
references: IReferenceContext,
filters: List<FilterOperator>,
): Boolean

final override fun validate(
blocks: Registry<Block>,
blocks: HolderLookup.RegistryLookup<Block>,
references: IReferenceContext,
additionalFilters: List<FilterOperator>,
): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import com.possible_triangle.skygrid.api.xml.warnInvalid
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import net.minecraft.core.BlockPos
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.state.BlockState
Expand All @@ -25,12 +25,12 @@ abstract class Extra : Generator<IBlockAccess>, Validating {
@Transient
lateinit var validProviders: WeightedList<BlockProvider>

abstract fun internalValidate(blocks: Registry<Block>): Boolean
abstract fun internalValidate(blocks: HolderLookup.RegistryLookup<Block>): Boolean

abstract fun offset(pos: BlockPos, random: RandomSource): BlockPos

override fun validate(
blocks: Registry<Block>,
blocks: HolderLookup.RegistryLookup<Block>,
references: IReferenceContext,
additionalFilters: List<FilterOperator>,
): Boolean {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.possible_triangle.skygrid.api.xml.elements

import kotlinx.serialization.Serializable
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.world.level.block.Block

@Serializable
abstract class Filter {

abstract fun test(block: Block, blocks: Registry<Block>): Boolean
abstract fun test(block: Block, blocks: HolderLookup.RegistryLookup<Block>): Boolean

}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.possible_triangle.skygrid.api.xml.elements

import kotlinx.serialization.Serializable
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.world.level.block.Block

@Serializable
abstract class FilterOperator {

abstract fun test(block: Block, blocks: Registry<Block>): Boolean
abstract fun test(block: Block, blocks: HolderLookup.RegistryLookup<Block>): Boolean

}
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ import com.possible_triangle.skygrid.platform.Services
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import net.minecraft.core.Registry
import net.minecraft.core.RegistryAccess
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.HolderLookup
import net.minecraft.core.registries.Registries
import net.minecraft.nbt.CompoundTag
import net.minecraft.resources.ResourceKey
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.EntityBlock
import net.minecraft.world.level.block.entity.BlockEntityType
Expand Down Expand Up @@ -81,12 +81,12 @@ data class GridConfig(
else Services.CONFIGS.server.modifierStrategy.filterAndMerge(modifiers)
}

fun validate(registries: RegistryAccess, references: IReferenceContext): Boolean {
val blockRegistry = registries.registryOrThrow(BuiltInRegistries.BLOCK.key())
val entityRegistry = registries.registryOrThrow(BuiltInRegistries.ENTITY_TYPE.key())
fun validate(registries: HolderLookup.Provider, references: IReferenceContext): Boolean {
val blockRegistry = registries.lookupOrThrow(Registries.BLOCK)
val entityRegistry = registries.lookupOrThrow(Registries.ENTITY_TYPE)

loot.validate { true }
mobs.validate { entityRegistry.containsKey(it.key) }
mobs.validate { entityRegistry.get(ResourceKey.create(Registries.ENTITY_TYPE, it.key)).isPresent }
gap = Optional.ofNullable(unsafeGap).filter { it.validate(blockRegistry, references) }

modifier = buildModifier()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import kotlinx.serialization.Serializable
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.core.Direction.*
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.Rotation
Expand All @@ -32,7 +32,7 @@ data class Cardinal(
return DIRECTIONS.random(random)
}

override fun internalValidate(blocks: Registry<Block>): Boolean {
override fun internalValidate(blocks: HolderLookup.RegistryLookup<Block>): Boolean {
return offset > 0
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ package com.possible_triangle.skygrid.api.xml.elements.extras
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import net.minecraft.core.BlockPos
import net.minecraft.core.Registry
import net.minecraft.world.level.block.Block
import com.possible_triangle.skygrid.api.xml.elements.BlockProvider
import com.possible_triangle.skygrid.api.xml.elements.Extra
import net.minecraft.core.HolderLookup
import net.minecraft.util.RandomSource

@Serializable
Expand All @@ -20,7 +20,7 @@ data class Offset(
override val shared: Boolean = false,
) : Extra() {

override fun internalValidate(blocks: Registry<Block>): Boolean {
override fun internalValidate(blocks: HolderLookup.RegistryLookup<Block>): Boolean {
return true
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.Block

Expand All @@ -20,7 +20,7 @@ data class Side(
override val shared: Boolean = false,
) : Extra() {

override fun internalValidate(blocks: Registry<Block>): Boolean {
override fun internalValidate(blocks: HolderLookup.RegistryLookup<Block>): Boolean {
return Direction.byName(on) != null && offset > 0
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import com.possible_triangle.skygrid.api.xml.elements.Filter
import com.possible_triangle.skygrid.api.xml.elements.FilterOperator
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.world.level.block.Block

@Serializable
@SerialName("except")
data class ExceptFilter(val filters: List<Filter>) : FilterOperator() {

override fun test(block: Block, blocks: Registry<Block>): Boolean {
override fun test(block: Block, blocks: HolderLookup.RegistryLookup<Block>): Boolean {
return filters.none { it.test(block, blocks) }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import com.possible_triangle.skygrid.api.xml.elements.Filter
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import net.minecraft.core.Registry
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.HolderLookup
import net.minecraft.core.registries.Registries
import net.minecraft.tags.TagKey
import net.minecraft.world.level.block.Block

Expand All @@ -17,8 +17,8 @@ data class NameFilter(val pattern: String) : Filter() {
@Transient
private val regex = pattern.toRegex()

override fun test(block: Block, blocks: Registry<Block>): Boolean {
val key = blocks.getKey(block) ?: return false
override fun test(block: Block, blocks: HolderLookup.RegistryLookup<Block>): Boolean {
val key = block.builtInRegistryHolder().key().location()
return regex.containsMatchIn(key.toString())
}

Expand All @@ -28,8 +28,8 @@ data class NameFilter(val pattern: String) : Filter() {
@SerialName("mod")
data class ModFilter(val id: String) : Filter() {

override fun test(block: Block, blocks: Registry<Block>): Boolean {
val key = blocks.getKey(block) ?: return false
override fun test(block: Block, blocks: HolderLookup.RegistryLookup<Block>): Boolean {
val key = block.builtInRegistryHolder().key().location()
return key.namespace == id
}

Expand All @@ -43,10 +43,12 @@ data class TagFilter(val id: String, val mod: String = "minecraft") : Filter() {
private val location = keyFrom(id, mod)

@Transient
private val key = TagKey.create(BuiltInRegistries.BLOCK.key(), location)
private val key = TagKey.create(Registries.BLOCK, location)

override fun test(block: Block, blocks: Registry<Block>): Boolean {
return blocks.getTagOrEmpty(key).map { it.value() }.contains(block)
override fun test(block: Block, blocks: HolderLookup.RegistryLookup<Block>): Boolean {
return blocks.get(key)
.map { list -> list.map { it.value() } }
.filter { it.contains(block) }.isPresent
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import com.possible_triangle.skygrid.api.xml.elements.*
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.Block

Expand All @@ -28,7 +28,7 @@ data class BlockList(
override fun flat(): List<Pair<Block, Double>> = validChildren.flat()

override fun internalValidate(
blocks: Registry<Block>,
blocks: HolderLookup.RegistryLookup<Block>,
references: IReferenceContext,
filters: List<FilterOperator>,
): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import com.possible_triangle.skygrid.api.xml.elements.*
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.Block

Expand All @@ -26,7 +26,7 @@ data class Fallback(
override fun flat(): List<Pair<Block, Double>> = this.provider.flat()

override fun internalValidate(
blocks: Registry<Block>,
blocks: HolderLookup.RegistryLookup<Block>,
references: IReferenceContext,
filters: List<FilterOperator>,
): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import com.possible_triangle.skygrid.api.xml.elements.*
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.Block

Expand All @@ -29,7 +29,7 @@ class Reference(
override fun flat(): List<Pair<Block, Double>> = this.provider.flat()

override fun internalValidate(
blocks: Registry<Block>,
blocks: HolderLookup.RegistryLookup<Block>,
references: IReferenceContext,
filters: List<FilterOperator>
): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ import com.possible_triangle.skygrid.api.xml.elements.Transformer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import net.minecraft.core.Registry
import net.minecraft.core.HolderLookup
import net.minecraft.core.registries.Registries
import net.minecraft.resources.ResourceKey
import net.minecraft.util.RandomSource
import net.minecraft.world.level.block.Block

Expand Down Expand Up @@ -42,12 +44,12 @@ data class SingleBlock(
}

override fun internalValidate(
blocks: Registry<Block>,
blocks: HolderLookup.RegistryLookup<Block>,
references: IReferenceContext,
filters: List<FilterOperator>,
): Boolean {
return blocks.getOptional(key).map {
block = it
return blocks.get(ResourceKey.create(Registries.BLOCK, key)).map {
block = it.value()
}.isPresent
}
}
Loading

0 comments on commit e7b7b1b

Please sign in to comment.