deduplicate stuff
This commit is contained in:
parent
2db9e45291
commit
5b12be2ac4
@ -210,9 +210,9 @@ abstract class MatteryDeviceBlockEntity(blockEntityType: BlockEntityType<*>, blo
|
||||
}
|
||||
|
||||
inner class ConfigurableItemHandler(
|
||||
input: IItemHandler? = null,
|
||||
output: IItemHandler? = null,
|
||||
battery: IItemHandler? = null,
|
||||
val input: IItemHandler? = null,
|
||||
val output: IItemHandler? = null,
|
||||
val battery: IItemHandler? = null,
|
||||
val frontDefault: ItemHandlerMode = determineDefaultMode(input, output, battery, RelativeSide.FRONT),
|
||||
val backDefault: ItemHandlerMode = determineDefaultMode(input, output, battery, RelativeSide.BACK),
|
||||
val leftDefault: ItemHandlerMode = determineDefaultMode(input, output, battery, RelativeSide.LEFT),
|
||||
@ -233,12 +233,12 @@ abstract class MatteryDeviceBlockEntity(blockEntityType: BlockEntityType<*>, blo
|
||||
exposeSideless(ForgeCapabilities.ITEM_HANDLER, sideless)
|
||||
}
|
||||
|
||||
val front = Piece(RelativeSide.FRONT, input, output, battery).also { it.mode = frontDefault }
|
||||
val back = Piece(RelativeSide.BACK, input, output, battery).also { it.mode = backDefault }
|
||||
val left = Piece(RelativeSide.LEFT, input, output, battery).also { it.mode = leftDefault }
|
||||
val right = Piece(RelativeSide.RIGHT, input, output, battery).also { it.mode = rightDefault }
|
||||
val top = Piece(RelativeSide.TOP, input, output, battery).also { it.mode = topDefault }
|
||||
val bottom = Piece(RelativeSide.BOTTOM, input, output, battery).also { it.mode = bottomDefault }
|
||||
val front = Piece(RelativeSide.FRONT).also { it.mode = frontDefault }
|
||||
val back = Piece(RelativeSide.BACK).also { it.mode = backDefault }
|
||||
val left = Piece(RelativeSide.LEFT).also { it.mode = leftDefault }
|
||||
val right = Piece(RelativeSide.RIGHT).also { it.mode = rightDefault }
|
||||
val top = Piece(RelativeSide.TOP).also { it.mode = topDefault }
|
||||
val bottom = Piece(RelativeSide.BOTTOM).also { it.mode = bottomDefault }
|
||||
|
||||
val pieces = immutableMap {
|
||||
put(RelativeSide.FRONT, front)
|
||||
@ -258,22 +258,10 @@ abstract class MatteryDeviceBlockEntity(blockEntityType: BlockEntityType<*>, blo
|
||||
put(RelativeSide.BOTTOM, bottomDefault)
|
||||
}
|
||||
|
||||
inner class Piece(
|
||||
val side: RelativeSide,
|
||||
val input: IItemHandler? = null,
|
||||
val output: IItemHandler? = null,
|
||||
val battery: IItemHandler? = null,
|
||||
) : IItemHandler, ITickable {
|
||||
private var currentHandler: IItemHandler = EmptyItemHandler
|
||||
private val capController = sides[side]!!.Cap(ForgeCapabilities.ITEM_HANDLER, this)
|
||||
private val neighbour by sides[side]!!.track(ForgeCapabilities.ITEM_HANDLER)
|
||||
|
||||
val possibleViews: ImmutableSet<ItemHandlerMode>
|
||||
val inputOutput: IItemHandler?
|
||||
|
||||
init {
|
||||
tickList.always(this)
|
||||
|
||||
val builder = ImmutableSet.Builder<ItemHandlerMode>()
|
||||
|
||||
builder.add(ItemHandlerMode.DISABLED)
|
||||
@ -285,8 +273,6 @@ abstract class MatteryDeviceBlockEntity(blockEntityType: BlockEntityType<*>, blo
|
||||
|
||||
possibleViews = builder.build()
|
||||
|
||||
capController.close()
|
||||
|
||||
if (input != null && output != null) {
|
||||
inputOutput = CombinedItemHandler(input, output)
|
||||
} else {
|
||||
@ -294,6 +280,18 @@ abstract class MatteryDeviceBlockEntity(blockEntityType: BlockEntityType<*>, blo
|
||||
}
|
||||
}
|
||||
|
||||
inner class Piece(
|
||||
val side: RelativeSide,
|
||||
) : IItemHandler, ITickable {
|
||||
private var currentHandler: IItemHandler = EmptyItemHandler
|
||||
private val capController = sides[side]!!.Cap(ForgeCapabilities.ITEM_HANDLER, this)
|
||||
private val neighbour by sides[side]!!.track(ForgeCapabilities.ITEM_HANDLER)
|
||||
|
||||
init {
|
||||
tickList.always(this)
|
||||
capController.close()
|
||||
}
|
||||
|
||||
var mode by synchronizer.enum(ItemHandlerMode.DISABLED, setter = { value, access, setByRemote ->
|
||||
require(value in possibleViews) { "View type $value is not allowed (allowed views: $possibleViews)" }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user