forked from NeoFlock/NeoComputers
fixes and made solar power also nodes
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user