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