fixes and made solar power also nodes

This commit is contained in:
2026-04-14 00:40:41 +02:00
parent 8d146fbd17
commit ab9d1baa36
4 changed files with 40 additions and 56 deletions

View File

@@ -16,7 +16,7 @@ class CombustionGeneratorBlockEntity(blockPos: BlockPos, blockState: BlockState)
val energyPerTick: Long = 50
var energy: Long = 0
val maxEnergy: Long = 50000
val maxEnergy: Long = 100000
var burningTimeRemaining: Int = 0
override val node = object : Networking.Node() {
@@ -48,7 +48,8 @@ class CombustionGeneratorBlockEntity(blockPos: BlockPos, blockState: BlockState)
return !this.isRemoved
}
fun burnFuelForEnergy() {
override fun tickNode() {
super.tickNode()
// TODO: give us a block state tag for active
// keep combusting and shi

View File

@@ -1,20 +1,38 @@
package org.neoflock.neocomputers.entity
import net.minecraft.core.BlockPos
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.entity.BlockEntityType
import net.minecraft.world.level.block.state.BlockState
import org.neoflock.neocomputers.block.NodeBlockEntity
import org.neoflock.neocomputers.network.Networking
import org.neoflock.neocomputers.network.PowerRole
import kotlin.math.min
class SolarGeneratorBlockEntity(blockPos: BlockPos, blockState: BlockState) : BlockEntity(BlockEntities.SOLARGEN_ENTITY.get(), blockPos, blockState) {
class SolarGeneratorBlockEntity(blockPos: BlockPos, blockState: BlockState) : NodeBlockEntity(BlockEntities.SOLARGEN_ENTITY.get(), blockPos, blockState) {
val energyPerTick: Long = 50
var energyStored: Long = 0
val capacity: Long = 50000
fun giveSolarPower() {
if(level?.isDay == true) {
val below = level?.getBlockEntity(blockPos.below())
if(below is NodeBlockEntity) {
below.node.giveEnergy(energyPerTick)
}
override val node = object : Networking.Node() {
override fun getPowerRole(): PowerRole = PowerRole.GENERATOR
override fun getEnergy(): Long = energyStored
override fun getEnergyCapacity(): Long = capacity
override fun giveEnergy(amount: Long): Long {
val taken = min(amount, capacity - energyStored)
energyStored += taken
return taken
}
override fun withdrawEnergy(amount: Long): Long {
val taken = min(amount, energyStored)
energyStored -= taken
return taken
}
}
override fun tickNode() {
super.tickNode()
val l = level ?: return
if(l.isDay) {
node.giveEnergy(energyPerTick)
}
}
}