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.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidResearchDataProvider import ru.dbotthepony.mc.otm.android.AndroidResearchDataProvider
import ru.dbotthepony.mc.otm.block.* 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.core.get
import ru.dbotthepony.mc.otm.datagen.blocks.BatteryBankProvider import ru.dbotthepony.mc.otm.datagen.blocks.BatteryBankProvider
import ru.dbotthepony.mc.otm.datagen.blocks.MatterBankProvider 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.MBlockEntities
import ru.dbotthepony.mc.otm.registry.MBlocks import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MNames import ru.dbotthepony.mc.otm.registry.MNames
import ru.dbotthepony.mc.otm.registry.WriteOnce import ru.dbotthepony.mc.otm.core.WriteOnce
@Suppress("ObjectPropertyName") @Suppress("ObjectPropertyName")
class AndroidStationBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : 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.menu.ChemicalGeneratorMenu
import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.registry.MNames 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 import java.lang.ref.WeakReference
class ChemicalGeneratorBlockEntity(pos: BlockPos, state: BlockState) : MatteryBlockEntity(MBlockEntities.CHEMICAL_GENERATOR, pos, state), IDroppableContainer { 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.core.*
import ru.dbotthepony.mc.otm.registry.MBlocks import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MNames 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) : class MatterBottlerBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) :
MatteryPoweredBlockEntity(MBlockEntities.MATTER_BOTTLER, p_155229_, p_155230_), IMatterGraphNode, IDroppableContainer { 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.MBlocks
import ru.dbotthepony.mc.otm.registry.MItems import ru.dbotthepony.mc.otm.registry.MItems
import ru.dbotthepony.mc.otm.registry.MNames 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 { fun moveMatterAsDustIntoContainer(_matterValue: ImpreciseFraction, container: MatteryContainer, OUTPUT_DUST_MAIN: Int, OUTPUT_DUST_STACKING: Int): ImpreciseFraction {
var matterValue = _matterValue 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.core.set
import ru.dbotthepony.mc.otm.registry.MBlocks import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MNames 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) class MatterRecyclerBlockEntity(blockPos: BlockPos, blockState: BlockState)
: MatteryWorkerBlockEntity<MatteryWorkerBlockEntity.Job>(MBlockEntities.MATTER_RECYCLER, blockPos, blockState, ::Job), IMatterGraphNode, IDroppableContainer { : 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.core.*
import ru.dbotthepony.mc.otm.registry.MBlocks import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MNames 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) : class MatterReplicatorBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) :
MatteryWorkerBlockEntity<MatterReplicatorBlockEntity.ReplicatorJob>(MBlockEntities.MATTER_REPLICATOR, p_155229_, p_155230_, { 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.MBlockEntities
import ru.dbotthepony.mc.otm.registry.MBlocks import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MNames 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 java.util.*
import kotlin.math.pow 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.minecraft
import ru.dbotthepony.mc.otm.client.onceClient import ru.dbotthepony.mc.otm.client.onceClient
import ru.dbotthepony.mc.otm.isClientThread 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 java.util.stream.Stream
import kotlin.properties.Delegates 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.ifPresentK
import ru.dbotthepony.mc.otm.core.orNull import ru.dbotthepony.mc.otm.core.orNull
import ru.dbotthepony.mc.otm.registry.EMPDamageSource 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] * This is called from [net.minecraft.world.item.enchantment.EnchantmentHelper.getSweepingDamageRatio]

View File

@ -1,7 +1,14 @@
package ru.dbotthepony.mc.otm.registry 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.minecraft.world.item.DyeColor
import net.minecraftforge.registries.DeferredRegister import net.minecraftforge.registries.DeferredRegister
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.core.SupplierMap 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>> { 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> { 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) }) 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 package ru.dbotthepony.mc.otm.registry
import com.mojang.serialization.Lifecycle
import net.minecraft.advancements.CriteriaTriggers import net.minecraft.advancements.CriteriaTriggers
import net.minecraft.client.renderer.item.ItemProperties import net.minecraft.client.renderer.item.ItemProperties
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.core.Holder
import net.minecraft.core.Registry import net.minecraft.core.Registry
import net.minecraft.core.WritableRegistry
import net.minecraft.resources.ResourceKey import net.minecraft.resources.ResourceKey
import net.minecraft.resources.ResourceLocation import net.minecraft.resources.ResourceLocation
import net.minecraft.world.damagesource.DamageSource import net.minecraft.world.damagesource.DamageSource
@ -59,14 +56,6 @@ import kotlin.properties.ReadOnlyProperty
import kotlin.properties.ReadWriteProperty import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty 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 class RegistryDelegate<T>(key: String) : ReadOnlyProperty<Any, ForgeRegistry<T>> {
private var value: Supplier<IForgeRegistry<T>?>? = null 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 { object MRegistry {
private val features = RegistryDelegate<AndroidFeatureType<*>>("android_features") private val features = RegistryDelegate<AndroidFeatureType<*>>("android_features")
val ANDROID_FEATURES by features val ANDROID_FEATURES by features

View File

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

View File

@ -10,7 +10,7 @@ import net.minecraft.world.level.saveddata.SavedData
import org.apache.logging.log4j.LogManager import org.apache.logging.log4j.LogManager
import ru.dbotthepony.mc.otm.core.ProxiedMap import ru.dbotthepony.mc.otm.core.ProxiedMap
import ru.dbotthepony.mc.otm.core.set 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) { class SavedMapDelegate<V>(val parent: SavedCountingMap<SavedMapDelegate<V>>?, val index: Int, value: V) {
constructor(value: V) : this(null, -1, value) 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.InSquarePlacement
import net.minecraft.world.level.levelgen.placement.PlacedFeature import net.minecraft.world.level.levelgen.placement.PlacedFeature
import ru.dbotthepony.mc.otm.registry.MBlocks 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 import ru.dbotthepony.mc.otm.registry.register
@Suppress("UNNECESSARY_NOT_NULL_ASSERTION") @Suppress("UNNECESSARY_NOT_NULL_ASSERTION")