parent
de28a6648d
commit
f2de2e7505
39
src/main/kotlin/ru/dbotthepony/mc/otm/block/Helpers.kt
Normal file
39
src/main/kotlin/ru/dbotthepony/mc/otm/block/Helpers.kt
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package ru.dbotthepony.mc.otm.block
|
||||||
|
|
||||||
|
import net.minecraft.world.level.Level
|
||||||
|
import net.minecraft.world.level.block.entity.BlockEntity
|
||||||
|
import net.minecraft.world.level.block.entity.BlockEntityTicker
|
||||||
|
import net.minecraft.world.level.block.entity.BlockEntityType
|
||||||
|
import kotlin.reflect.KFunction1
|
||||||
|
|
||||||
|
inline fun <reified R, T : BlockEntity> KFunction1<R, Unit>.blockServerTicker(
|
||||||
|
level: Level,
|
||||||
|
expected: BlockEntityType<*>,
|
||||||
|
provided: BlockEntityType<*>
|
||||||
|
): BlockEntityTicker<T>? {
|
||||||
|
if (expected !== provided) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
if (level.isClientSide) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
return BlockEntityTicker<T> { _, _, _, tile -> if (tile is R) this.invoke(tile) }
|
||||||
|
}
|
||||||
|
|
||||||
|
inline fun <reified R, T : BlockEntity> KFunction1<R, Unit>.blockClientTicker(
|
||||||
|
level: Level,
|
||||||
|
expected: BlockEntityType<*>,
|
||||||
|
provided: BlockEntityType<*>
|
||||||
|
): BlockEntityTicker<T>? {
|
||||||
|
if (expected !== provided) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!level.isClientSide) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
return BlockEntityTicker<T> { _, _, _, tile -> if (tile is R) this.invoke(tile) }
|
||||||
|
}
|
@ -1,6 +1,5 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.entity
|
package ru.dbotthepony.mc.otm.block.entity
|
||||||
|
|
||||||
import net.minecraft.MethodsReturnNonnullByDefault
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
@ -29,11 +28,11 @@ import ru.dbotthepony.mc.otm.container.MatteryContainerFilter
|
|||||||
import ru.dbotthepony.mc.otm.core.*
|
import ru.dbotthepony.mc.otm.core.*
|
||||||
import ru.dbotthepony.mc.otm.menu.BatteryBankMenu
|
import ru.dbotthepony.mc.otm.menu.BatteryBankMenu
|
||||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import javax.annotation.ParametersAreNonnullByDefault
|
|
||||||
|
|
||||||
@MethodsReturnNonnullByDefault
|
|
||||||
@ParametersAreNonnullByDefault
|
|
||||||
class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : MatteryBlockEntity(MBlockEntities.BATTERY_BANK, p_155229_, p_155230_), IDroppableContainer {
|
class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : MatteryBlockEntity(MBlockEntities.BATTERY_BANK, p_155229_, p_155230_), IDroppableContainer {
|
||||||
|
var gaugeLevel by synchronizer.float()
|
||||||
|
private set
|
||||||
|
|
||||||
// 6 на 2
|
// 6 на 2
|
||||||
val container: MatteryContainer = object : MatteryContainer(this::setChanged, CAPACITY) {
|
val container: MatteryContainer = object : MatteryContainer(this::setChanged, CAPACITY) {
|
||||||
override fun setChanged(slot: Int, new: ItemStack, old: ItemStack) {
|
override fun setChanged(slot: Int, new: ItemStack, old: ItemStack) {
|
||||||
@ -51,6 +50,8 @@ class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matte
|
|||||||
level.setBlock(blockPos, state, Block.UPDATE_CLIENTS)
|
level.setBlock(blockPos, state, Block.UPDATE_CLIENTS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gaugeLevel = (energy.batteryLevel / energy.maxBatteryLevel).toFloat()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,6 +116,9 @@ class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matte
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun distributeEnergy(isReceiving: Boolean, howMuch: ImpreciseFraction, simulate: Boolean): ImpreciseFraction {
|
private fun distributeEnergy(isReceiving: Boolean, howMuch: ImpreciseFraction, simulate: Boolean): ImpreciseFraction {
|
||||||
|
if (!howMuch.isPositive)
|
||||||
|
return ImpreciseFraction.ZERO
|
||||||
|
|
||||||
val distribution = getDistribution(isReceiving)
|
val distribution = getDistribution(isReceiving)
|
||||||
|
|
||||||
if (distribution.maxThroughput.isZero)
|
if (distribution.maxThroughput.isZero)
|
||||||
@ -145,6 +149,7 @@ class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matte
|
|||||||
|
|
||||||
if (!simulate && !summ.isZero) {
|
if (!simulate && !summ.isZero) {
|
||||||
setChangedLight()
|
setChangedLight()
|
||||||
|
gaugeLevel = (batteryLevel / maxBatteryLevel).toFloat()
|
||||||
}
|
}
|
||||||
|
|
||||||
return summ
|
return summ
|
||||||
@ -296,6 +301,8 @@ class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matte
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun tick() {
|
fun tick() {
|
||||||
|
synchronizeToPlayers()
|
||||||
|
|
||||||
if (isBlockedByRedstone)
|
if (isBlockedByRedstone)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -35,8 +35,9 @@ import ru.dbotthepony.mc.otm.core.map
|
|||||||
import ru.dbotthepony.mc.otm.core.set
|
import ru.dbotthepony.mc.otm.core.set
|
||||||
import javax.annotation.ParametersAreNonnullByDefault
|
import javax.annotation.ParametersAreNonnullByDefault
|
||||||
|
|
||||||
class MatterCapacitorBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) :
|
class MatterCapacitorBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : MatteryBlockEntity(MBlockEntities.MATTER_CAPACITOR_BANK, p_155229_, p_155230_), IMatterGraphNode, IMatterHandler, IDroppableContainer {
|
||||||
MatteryBlockEntity(MBlockEntities.MATTER_CAPACITOR_BANK, p_155229_, p_155230_), IMatterGraphNode, IMatterHandler, IDroppableContainer {
|
var gaugeLevel by synchronizer.float()
|
||||||
|
private set
|
||||||
|
|
||||||
override val matterNode = Graph6Node<IMatterGraphNode>(this)
|
override val matterNode = Graph6Node<IMatterGraphNode>(this)
|
||||||
private val resolverNode = LazyOptional.of { this }
|
private val resolverNode = LazyOptional.of { this }
|
||||||
@ -70,6 +71,9 @@ class MatterCapacitorBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState)
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun receiveMatterInner(howMuch: ImpreciseFraction, simulate: Boolean): ImpreciseFraction {
|
override fun receiveMatterInner(howMuch: ImpreciseFraction, simulate: Boolean): ImpreciseFraction {
|
||||||
|
if (!howMuch.isPositive)
|
||||||
|
return ImpreciseFraction.ZERO
|
||||||
|
|
||||||
@Suppress("NAME_SHADOWING")
|
@Suppress("NAME_SHADOWING")
|
||||||
var howMuch = howMuch
|
var howMuch = howMuch
|
||||||
var summ = ImpreciseFraction.ZERO
|
var summ = ImpreciseFraction.ZERO
|
||||||
@ -88,6 +92,10 @@ class MatterCapacitorBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (summ.isPositive && !simulate) {
|
||||||
|
gaugeLevel = (storedMatter / maxStoredMatter).toFloat()
|
||||||
|
}
|
||||||
|
|
||||||
return summ
|
return summ
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,6 +104,9 @@ class MatterCapacitorBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState)
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun extractMatterInner(howMuch: ImpreciseFraction, simulate: Boolean): ImpreciseFraction {
|
override fun extractMatterInner(howMuch: ImpreciseFraction, simulate: Boolean): ImpreciseFraction {
|
||||||
|
if (!howMuch.isPositive)
|
||||||
|
return ImpreciseFraction.ZERO
|
||||||
|
|
||||||
@Suppress("NAME_SHADOWING")
|
@Suppress("NAME_SHADOWING")
|
||||||
var howMuch = howMuch
|
var howMuch = howMuch
|
||||||
var summ = ImpreciseFraction.ZERO
|
var summ = ImpreciseFraction.ZERO
|
||||||
@ -113,6 +124,11 @@ class MatterCapacitorBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (summ.isPositive && !simulate) {
|
||||||
|
gaugeLevel = (storedMatter / maxStoredMatter).toFloat()
|
||||||
|
}
|
||||||
|
|
||||||
return summ
|
return summ
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,6 +157,8 @@ class MatterCapacitorBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState)
|
|||||||
level.setBlock(blockPos, state, Block.UPDATE_CLIENTS)
|
level.setBlock(blockPos, state, Block.UPDATE_CLIENTS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gaugeLevel = (storedMatter / maxStoredMatter).toFloat()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,16 +4,22 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext
|
import net.minecraft.world.item.context.BlockPlaceContext
|
||||||
import net.minecraft.world.level.BlockGetter
|
import net.minecraft.world.level.BlockGetter
|
||||||
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import net.minecraft.world.level.block.EntityBlock
|
import net.minecraft.world.level.block.EntityBlock
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity
|
import net.minecraft.world.level.block.entity.BlockEntity
|
||||||
|
import net.minecraft.world.level.block.entity.BlockEntityTicker
|
||||||
|
import net.minecraft.world.level.block.entity.BlockEntityType
|
||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraft.world.level.block.state.StateDefinition
|
import net.minecraft.world.level.block.state.StateDefinition
|
||||||
import net.minecraft.world.phys.shapes.CollisionContext
|
import net.minecraft.world.phys.shapes.CollisionContext
|
||||||
import net.minecraft.world.phys.shapes.VoxelShape
|
import net.minecraft.world.phys.shapes.VoxelShape
|
||||||
import ru.dbotthepony.mc.otm.block.BatteryBankBlock
|
import ru.dbotthepony.mc.otm.block.BatteryBankBlock
|
||||||
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
||||||
|
import ru.dbotthepony.mc.otm.block.entity.SynchronizedBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.matter.MatterCapacitorBankBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.matter.MatterCapacitorBankBlockEntity
|
||||||
|
import ru.dbotthepony.mc.otm.block.blockServerTicker
|
||||||
|
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||||
|
|
||||||
class MatterCapacitorBankBlock : RotatableMatteryBlock(), EntityBlock {
|
class MatterCapacitorBankBlock : RotatableMatteryBlock(), EntityBlock {
|
||||||
@ -21,6 +27,14 @@ class MatterCapacitorBankBlock : RotatableMatteryBlock(), EntityBlock {
|
|||||||
return MatterCapacitorBankBlockEntity(blockPos, blockState)
|
return MatterCapacitorBankBlockEntity(blockPos, blockState)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <T : BlockEntity> getTicker(
|
||||||
|
p_153212_: Level,
|
||||||
|
p_153213_: BlockState,
|
||||||
|
p_153214_: BlockEntityType<T>
|
||||||
|
): BlockEntityTicker<T>? {
|
||||||
|
return SynchronizedBlockEntity::synchronizeToPlayers.blockServerTicker(p_153212_, MBlockEntities.MATTER_CAPACITOR_BANK, p_153214_)
|
||||||
|
}
|
||||||
|
|
||||||
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
||||||
var state = super.getStateForPlacement(context) ?: return null
|
var state = super.getStateForPlacement(context) ?: return null
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ private val identity = Matrix4f().also { it.setIdentity() }
|
|||||||
|
|
||||||
var zLevel = 0f
|
var zLevel = 0f
|
||||||
var drawColor = RGBAColor(255, 255, 255, 255)
|
var drawColor = RGBAColor(255, 255, 255, 255)
|
||||||
|
var is3DContext = false
|
||||||
|
|
||||||
@JvmName("setDrawColor\$JVM")
|
@JvmName("setDrawColor\$JVM")
|
||||||
fun setDrawColor(color: RGBAColor) {
|
fun setDrawColor(color: RGBAColor) {
|
||||||
@ -44,7 +45,9 @@ fun drawTexturedRect(
|
|||||||
RenderSystem.enableTexture()
|
RenderSystem.enableTexture()
|
||||||
RenderSystem.enableBlend()
|
RenderSystem.enableBlend()
|
||||||
RenderSystem.defaultBlendFunc()
|
RenderSystem.defaultBlendFunc()
|
||||||
RenderSystem.depthFunc(GL11.GL_ALWAYS)
|
|
||||||
|
if (!is3DContext)
|
||||||
|
RenderSystem.depthFunc(GL_ALWAYS)
|
||||||
|
|
||||||
val builder = tesselator.builder
|
val builder = tesselator.builder
|
||||||
|
|
||||||
@ -303,7 +306,9 @@ fun drawRect(
|
|||||||
RenderSystem.enableBlend()
|
RenderSystem.enableBlend()
|
||||||
RenderSystem.defaultBlendFunc()
|
RenderSystem.defaultBlendFunc()
|
||||||
RenderSystem.setShader(GameRenderer::getPositionColorShader)
|
RenderSystem.setShader(GameRenderer::getPositionColorShader)
|
||||||
RenderSystem.depthFunc(GL11.GL_ALWAYS)
|
|
||||||
|
if (!is3DContext)
|
||||||
|
RenderSystem.depthFunc(GL_ALWAYS)
|
||||||
|
|
||||||
val tess = tesselator
|
val tess = tesselator
|
||||||
val builder = tess.builder
|
val builder = tess.builder
|
||||||
@ -346,7 +351,9 @@ fun drawLine(
|
|||||||
RenderSystem.enableBlend()
|
RenderSystem.enableBlend()
|
||||||
RenderSystem.defaultBlendFunc()
|
RenderSystem.defaultBlendFunc()
|
||||||
RenderSystem.setShader(GameRenderer::getPositionColorShader)
|
RenderSystem.setShader(GameRenderer::getPositionColorShader)
|
||||||
RenderSystem.depthFunc(GL11.GL_ALWAYS)
|
|
||||||
|
if (!is3DContext)
|
||||||
|
RenderSystem.depthFunc(GL_ALWAYS)
|
||||||
|
|
||||||
val tess = Tesselator.getInstance()
|
val tess = Tesselator.getInstance()
|
||||||
val builder = tess.builder
|
val builder = tess.builder
|
||||||
|
@ -0,0 +1,85 @@
|
|||||||
|
package ru.dbotthepony.mc.otm.client.render.blockentity
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.systems.RenderSystem
|
||||||
|
import com.mojang.blaze3d.vertex.PoseStack
|
||||||
|
import com.mojang.math.Vector3f
|
||||||
|
import net.minecraft.client.renderer.MultiBufferSource
|
||||||
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer
|
||||||
|
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
|
||||||
|
import org.lwjgl.opengl.GL30.*
|
||||||
|
import ru.dbotthepony.mc.otm.block.entity.BatteryBankBlockEntity
|
||||||
|
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
|
||||||
|
import ru.dbotthepony.mc.otm.block.entity.matter.MatterCapacitorBankBlockEntity
|
||||||
|
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
||||||
|
import ru.dbotthepony.mc.otm.client.render.is3DContext
|
||||||
|
import ru.dbotthepony.mc.otm.client.screen.widget.MatterGaugePanel
|
||||||
|
import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel
|
||||||
|
import kotlin.math.PI
|
||||||
|
|
||||||
|
abstract class BankRenderer<T : MatteryBlockEntity>(private val context: BlockEntityRendererProvider.Context) : BlockEntityRenderer<T> {
|
||||||
|
protected abstract fun gaugeLevel(entity: T): Float
|
||||||
|
protected abstract val texture: SkinElement
|
||||||
|
|
||||||
|
override fun render(
|
||||||
|
blockEntity: T,
|
||||||
|
p_112308_: Float,
|
||||||
|
stack: PoseStack,
|
||||||
|
p_112310_: MultiBufferSource,
|
||||||
|
p_112311_: Int,
|
||||||
|
p_112312_: Int
|
||||||
|
) {
|
||||||
|
is3DContext = true
|
||||||
|
|
||||||
|
try {
|
||||||
|
RenderSystem.enableDepthTest()
|
||||||
|
RenderSystem.depthFunc(GL_LEQUAL)
|
||||||
|
|
||||||
|
stack.pushPose()
|
||||||
|
stack.scale(0.02f, 0.01f, 0.01f)
|
||||||
|
stack.translate(0.0, 0.0, -0.5)
|
||||||
|
|
||||||
|
// ~50x100 canvas
|
||||||
|
|
||||||
|
val width = 9f
|
||||||
|
val heightMax = 39.36f
|
||||||
|
|
||||||
|
texture.renderPartial(stack,
|
||||||
|
x = 25f - width / 2f,
|
||||||
|
y = 30f,
|
||||||
|
width = width,
|
||||||
|
height = heightMax * gaugeLevel(blockEntity))
|
||||||
|
|
||||||
|
stack.mulPose(Vector3f.YP.rotation(PI.toFloat()))
|
||||||
|
stack.translate(-50.0, 0.0, -101.0)
|
||||||
|
|
||||||
|
texture.renderPartial(stack,
|
||||||
|
x = 25f - width / 2f,
|
||||||
|
y = 30f,
|
||||||
|
width = width,
|
||||||
|
height = heightMax * gaugeLevel(blockEntity))
|
||||||
|
|
||||||
|
stack.popPose()
|
||||||
|
} finally {
|
||||||
|
is3DContext = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class BatteryBankRenderer(context: BlockEntityRendererProvider.Context) : BankRenderer<BatteryBankBlockEntity>(context) {
|
||||||
|
override fun gaugeLevel(entity: BatteryBankBlockEntity): Float {
|
||||||
|
return entity.gaugeLevel
|
||||||
|
}
|
||||||
|
|
||||||
|
override val texture: SkinElement
|
||||||
|
get() = PowerGaugePanel.GAUGE_FOREGROUND
|
||||||
|
}
|
||||||
|
|
||||||
|
class MatterBatteryBankRenderer(context: BlockEntityRendererProvider.Context) : BankRenderer<MatterCapacitorBankBlockEntity>(context) {
|
||||||
|
override fun gaugeLevel(entity: MatterCapacitorBankBlockEntity): Float {
|
||||||
|
return entity.gaugeLevel
|
||||||
|
}
|
||||||
|
|
||||||
|
override val texture: SkinElement
|
||||||
|
get() = MatterGaugePanel.GAUGE_FOREGROUND
|
||||||
|
}
|
||||||
|
|
@ -13,9 +13,11 @@ import ru.dbotthepony.mc.otm.block.entity.blackhole.BlockEntityExplosionDebugger
|
|||||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlockEntitySphereDebugger
|
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlockEntitySphereDebugger
|
||||||
import ru.dbotthepony.mc.otm.block.entity.matter.*
|
import ru.dbotthepony.mc.otm.block.entity.matter.*
|
||||||
import ru.dbotthepony.mc.otm.block.entity.storage.*
|
import ru.dbotthepony.mc.otm.block.entity.storage.*
|
||||||
|
import ru.dbotthepony.mc.otm.client.render.blockentity.BatteryBankRenderer
|
||||||
import ru.dbotthepony.mc.otm.client.render.blockentity.BlackHoleRenderer
|
import ru.dbotthepony.mc.otm.client.render.blockentity.BlackHoleRenderer
|
||||||
import ru.dbotthepony.mc.otm.client.render.blockentity.EnergyCounterRenderer
|
import ru.dbotthepony.mc.otm.client.render.blockentity.EnergyCounterRenderer
|
||||||
import ru.dbotthepony.mc.otm.client.render.blockentity.GravitationStabilizerRenderer
|
import ru.dbotthepony.mc.otm.client.render.blockentity.GravitationStabilizerRenderer
|
||||||
|
import ru.dbotthepony.mc.otm.client.render.blockentity.MatterBatteryBankRenderer
|
||||||
|
|
||||||
object MBlockEntities {
|
object MBlockEntities {
|
||||||
private val registry = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, OverdriveThatMatters.MOD_ID)
|
private val registry = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, OverdriveThatMatters.MOD_ID)
|
||||||
@ -65,6 +67,8 @@ object MBlockEntities {
|
|||||||
BlockEntityRenderers.register(BLACK_HOLE as BlockEntityType<BlackHoleBlockEntity>, ::BlackHoleRenderer)
|
BlockEntityRenderers.register(BLACK_HOLE as BlockEntityType<BlackHoleBlockEntity>, ::BlackHoleRenderer)
|
||||||
BlockEntityRenderers.register(GRAVITATION_STABILIZER as BlockEntityType<GravitationStabilizerBlockEntity>, ::GravitationStabilizerRenderer)
|
BlockEntityRenderers.register(GRAVITATION_STABILIZER as BlockEntityType<GravitationStabilizerBlockEntity>, ::GravitationStabilizerRenderer)
|
||||||
BlockEntityRenderers.register(ENERGY_COUNTER as BlockEntityType<EnergyCounterBlockEntity>, ::EnergyCounterRenderer)
|
BlockEntityRenderers.register(ENERGY_COUNTER as BlockEntityType<EnergyCounterBlockEntity>, ::EnergyCounterRenderer)
|
||||||
|
BlockEntityRenderers.register(BATTERY_BANK as BlockEntityType<BatteryBankBlockEntity>, ::BatteryBankRenderer)
|
||||||
|
BlockEntityRenderers.register(MATTER_CAPACITOR_BANK as BlockEntityType<MatterCapacitorBankBlockEntity>, ::MatterBatteryBankRenderer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user