Move stuff to appropriate place

This commit is contained in:
DBotThePony 2022-10-10 22:08:56 +07:00
parent 897260e9c4
commit a63750ac1f
Signed by: DBot
GPG Key ID: DCC23B5715498507
16 changed files with 45 additions and 36 deletions

View File

@ -21,6 +21,7 @@ import net.minecraftforge.data.event.GatherDataEvent
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidResearchDataProvider
import ru.dbotthepony.mc.otm.block.*
import ru.dbotthepony.mc.otm.core.WriteOnce
import ru.dbotthepony.mc.otm.core.get
import ru.dbotthepony.mc.otm.datagen.blocks.BatteryBankProvider
import ru.dbotthepony.mc.otm.datagen.blocks.MatterBankProvider

View File

@ -22,7 +22,7 @@ import ru.dbotthepony.mc.otm.menu.AndroidStationMenu
import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MNames
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
@Suppress("ObjectPropertyName")
class AndroidStationBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) :

View File

@ -28,7 +28,7 @@ import ru.dbotthepony.mc.otm.core.*
import ru.dbotthepony.mc.otm.menu.ChemicalGeneratorMenu
import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.registry.MNames
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
import java.lang.ref.WeakReference
class ChemicalGeneratorBlockEntity(pos: BlockPos, state: BlockState) : MatteryBlockEntity(MBlockEntities.CHEMICAL_GENERATOR, pos, state), IDroppableContainer {

View File

@ -38,7 +38,7 @@ import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.core.*
import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MNames
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
class MatterBottlerBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) :
MatteryPoweredBlockEntity(MBlockEntities.MATTER_BOTTLER, p_155229_, p_155230_), IMatterGraphNode, IDroppableContainer {

View File

@ -41,7 +41,7 @@ import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MItems
import ru.dbotthepony.mc.otm.registry.MNames
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
fun moveMatterAsDustIntoContainer(_matterValue: ImpreciseFraction, container: MatteryContainer, OUTPUT_DUST_MAIN: Int, OUTPUT_DUST_STACKING: Int): ImpreciseFraction {
var matterValue = _matterValue

View File

@ -40,7 +40,7 @@ import ru.dbotthepony.mc.otm.core.defineImpreciseFraction
import ru.dbotthepony.mc.otm.core.set
import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MNames
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
class MatterRecyclerBlockEntity(blockPos: BlockPos, blockState: BlockState)
: MatteryWorkerBlockEntity<MatteryWorkerBlockEntity.Job>(MBlockEntities.MATTER_RECYCLER, blockPos, blockState, ::Job), IMatterGraphNode, IDroppableContainer {

View File

@ -35,7 +35,7 @@ import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.core.*
import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MNames
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
class MatterReplicatorBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) :
MatteryWorkerBlockEntity<MatterReplicatorBlockEntity.ReplicatorJob>(MBlockEntities.MATTER_REPLICATOR, p_155229_, p_155230_, {

View File

@ -38,7 +38,7 @@ import ru.dbotthepony.mc.otm.menu.MatterScannerMenu
import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MNames
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
import java.util.*
import kotlin.math.pow

View File

@ -13,7 +13,7 @@ import ru.dbotthepony.mc.otm.client.LOGGED_IN
import ru.dbotthepony.mc.otm.client.minecraft
import ru.dbotthepony.mc.otm.client.onceClient
import ru.dbotthepony.mc.otm.isClientThread
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
import java.util.stream.Stream
import kotlin.properties.Delegates

View File

@ -0,0 +1,17 @@
package ru.dbotthepony.mc.otm.core
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
class WriteOnce<V> : ReadWriteProperty<Any?, V> {
private var value: V? = null
override fun getValue(thisRef: Any?, property: KProperty<*>): V {
return checkNotNull(value) { "Property ${property.name} is not initialized" }
}
override fun setValue(thisRef: Any?, property: KProperty<*>, value: V) {
check(this.value == null) { "Property ${property.name} is already initialized" }
this.value = value
}
}

View File

@ -43,7 +43,7 @@ import ru.dbotthepony.mc.otm.core.formatPower
import ru.dbotthepony.mc.otm.core.ifPresentK
import ru.dbotthepony.mc.otm.core.orNull
import ru.dbotthepony.mc.otm.registry.EMPDamageSource
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
/**
* This is called from [net.minecraft.world.item.enchantment.EnchantmentHelper.getSweepingDamageRatio]

View File

@ -1,7 +1,14 @@
package ru.dbotthepony.mc.otm.registry
import com.mojang.serialization.Lifecycle
import net.minecraft.core.Holder
import net.minecraft.core.Registry
import net.minecraft.core.WritableRegistry
import net.minecraft.resources.ResourceKey
import net.minecraft.resources.ResourceLocation
import net.minecraft.world.item.DyeColor
import net.minecraftforge.registries.DeferredRegister
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.core.SupplierMap
private fun <T> DeferredRegister<T>.doColored(prefix: String, factory: (color: DyeColor, name: String) -> T): MutableCollection<Pair<DyeColor, () -> T>> {
@ -33,3 +40,11 @@ fun <T> DeferredRegister<T>.colored(prefix: String, factory: (color: DyeColor, n
fun <T> DeferredRegister<T>.allColored(prefix: String, factory: (color: DyeColor?, name: String) -> T): Map<DyeColor?, T> {
return SupplierMap(doColored(prefix, factory).also { (it as MutableCollection<Pair<DyeColor?, () -> T>>).add((null as DyeColor?) to register(prefix) { factory.invoke(null, prefix) }::get) })
}
fun <T> Registry<T>.register(key: String, value: T): Holder<T> {
return this.register(ResourceLocation(OverdriveThatMatters.MOD_ID, key), value)
}
fun <T> Registry<T>.register(key: ResourceLocation, value: T): Holder<T> {
return (this as WritableRegistry<T>).register(ResourceKey.create(key(), key), value, Lifecycle.stable())
}

View File

@ -1,12 +1,9 @@
package ru.dbotthepony.mc.otm.registry
import com.mojang.serialization.Lifecycle
import net.minecraft.advancements.CriteriaTriggers
import net.minecraft.client.renderer.item.ItemProperties
import net.minecraft.core.BlockPos
import net.minecraft.core.Holder
import net.minecraft.core.Registry
import net.minecraft.core.WritableRegistry
import net.minecraft.resources.ResourceKey
import net.minecraft.resources.ResourceLocation
import net.minecraft.world.damagesource.DamageSource
@ -59,14 +56,6 @@ import kotlin.properties.ReadOnlyProperty
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
fun <T> Registry<T>.register(key: String, value: T): Holder<T> {
return this.register(ResourceLocation(OverdriveThatMatters.MOD_ID, key), value)
}
fun <T> Registry<T>.register(key: ResourceLocation, value: T): Holder<T> {
return (this as WritableRegistry<T>).register(ResourceKey.create(key(), key), value, Lifecycle.stable())
}
private class RegistryDelegate<T>(key: String) : ReadOnlyProperty<Any, ForgeRegistry<T>> {
private var value: Supplier<IForgeRegistry<T>?>? = null
@ -95,19 +84,6 @@ private class RegistryDelegate<T>(key: String) : ReadOnlyProperty<Any, ForgeRegi
}
}
class WriteOnce<V> : ReadWriteProperty<Any?, V> {
private var value: V? = null
override fun getValue(thisRef: Any?, property: KProperty<*>): V {
return checkNotNull(value) { "Property ${property.name} is not initialized" }
}
override fun setValue(thisRef: Any?, property: KProperty<*>, value: V) {
check(this.value == null) { "Property ${property.name} is already initialized" }
this.value = value
}
}
object MRegistry {
private val features = RegistryDelegate<AndroidFeatureType<*>>("android_features")
val ANDROID_FEATURES by features

View File

@ -10,7 +10,7 @@ import net.minecraftforge.registries.DeferredRegister
import net.minecraftforge.registries.RegistryObject
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.core.SupplierMap
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
/**
* Base + Colored

View File

@ -10,7 +10,7 @@ import net.minecraft.world.level.saveddata.SavedData
import org.apache.logging.log4j.LogManager
import ru.dbotthepony.mc.otm.core.ProxiedMap
import ru.dbotthepony.mc.otm.core.set
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
class SavedMapDelegate<V>(val parent: SavedCountingMap<SavedMapDelegate<V>>?, val index: Int, value: V) {
constructor(value: V) : this(null, -1, value)

View File

@ -13,7 +13,7 @@ import net.minecraft.world.level.levelgen.placement.HeightRangePlacement
import net.minecraft.world.level.levelgen.placement.InSquarePlacement
import net.minecraft.world.level.levelgen.placement.PlacedFeature
import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.WriteOnce
import ru.dbotthepony.mc.otm.core.WriteOnce
import ru.dbotthepony.mc.otm.registry.register
@Suppress("UNNECESSARY_NOT_NULL_ASSERTION")