mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-02-09 07:30:04 +00:00
Some printer gametests
These are a little ugly, but do catch some issues we've seen in the past. Fixes #1682 (for now), and on its birthday too!
This commit is contained in:
parent
8204944b5f
commit
a2b9490d5c
@ -166,8 +166,7 @@ public final class PrinterBlockEntity extends AbstractContainerBlockEntity imple
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean canInputPage() {
|
private boolean canInputPage() {
|
||||||
var inkStack = inventory.get(0);
|
return getInkLevel() > 0 && getPaperLevel() > 0;
|
||||||
return !inkStack.isEmpty() && isInk(inkStack) && getPaperLevel() > 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean inputPage() {
|
private boolean inputPage() {
|
||||||
|
@ -4,12 +4,13 @@
|
|||||||
|
|
||||||
package dan200.computercraft.gametest
|
package dan200.computercraft.gametest
|
||||||
|
|
||||||
import dan200.computercraft.gametest.api.assertBlockHas
|
import dan200.computercraft.api.lua.Coerced
|
||||||
import dan200.computercraft.gametest.api.assertExactlyItems
|
import dan200.computercraft.api.lua.LuaException
|
||||||
import dan200.computercraft.gametest.api.getBlockEntity
|
import dan200.computercraft.gametest.api.*
|
||||||
import dan200.computercraft.gametest.api.sequence
|
|
||||||
import dan200.computercraft.shared.ModRegistry
|
import dan200.computercraft.shared.ModRegistry
|
||||||
|
import dan200.computercraft.shared.media.items.PrintoutItem
|
||||||
import dan200.computercraft.shared.peripheral.printer.PrinterBlock
|
import dan200.computercraft.shared.peripheral.printer.PrinterBlock
|
||||||
|
import dan200.computercraft.shared.peripheral.printer.PrinterPeripheral
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.gametest.framework.GameTest
|
import net.minecraft.gametest.framework.GameTest
|
||||||
import net.minecraft.gametest.framework.GameTestHelper
|
import net.minecraft.gametest.framework.GameTestHelper
|
||||||
@ -17,10 +18,12 @@ import net.minecraft.network.chat.Component
|
|||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.Items
|
import net.minecraft.world.item.Items
|
||||||
import net.minecraft.world.level.block.RedStoneWireBlock
|
import net.minecraft.world.level.block.RedStoneWireBlock
|
||||||
|
import org.junit.jupiter.api.Assertions.*
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class Printer_Test {
|
class Printer_Test {
|
||||||
/**
|
/**
|
||||||
* Check comparators can read the contents of the disk drive
|
* Check comparators can read the contents of the printer
|
||||||
*/
|
*/
|
||||||
@GameTest
|
@GameTest
|
||||||
fun Comparator(helper: GameTestHelper) = helper.sequence {
|
fun Comparator(helper: GameTestHelper) = helper.sequence {
|
||||||
@ -29,19 +32,19 @@ class Printer_Test {
|
|||||||
|
|
||||||
// Adding items should provide power
|
// Adding items should provide power
|
||||||
thenExecute {
|
thenExecute {
|
||||||
val drive = helper.getBlockEntity(printerPos, ModRegistry.BlockEntities.PRINTER.get())
|
val printer = helper.getBlockEntity(printerPos, ModRegistry.BlockEntities.PRINTER.get())
|
||||||
drive.setItem(0, ItemStack(Items.BLACK_DYE))
|
printer.setItem(0, ItemStack(Items.BLACK_DYE))
|
||||||
drive.setItem(1, ItemStack(Items.PAPER))
|
printer.setItem(1, ItemStack(Items.PAPER))
|
||||||
drive.setChanged()
|
printer.setChanged()
|
||||||
}
|
}
|
||||||
thenIdle(2)
|
thenIdle(2)
|
||||||
thenExecute { helper.assertBlockHas(dustPos, RedStoneWireBlock.POWER, 1) }
|
thenExecute { helper.assertBlockHas(dustPos, RedStoneWireBlock.POWER, 1) }
|
||||||
|
|
||||||
// And removing them should reset power.
|
// And removing them should reset power.
|
||||||
thenExecute {
|
thenExecute {
|
||||||
val drive = helper.getBlockEntity(printerPos, ModRegistry.BlockEntities.PRINTER.get())
|
val printer = helper.getBlockEntity(printerPos, ModRegistry.BlockEntities.PRINTER.get())
|
||||||
drive.clearContent()
|
printer.clearContent()
|
||||||
drive.setChanged()
|
printer.setChanged()
|
||||||
}
|
}
|
||||||
thenIdle(2)
|
thenIdle(2)
|
||||||
thenExecute { helper.assertBlockHas(dustPos, RedStoneWireBlock.POWER, 0) }
|
thenExecute { helper.assertBlockHas(dustPos, RedStoneWireBlock.POWER, 0) }
|
||||||
@ -50,35 +53,125 @@ class Printer_Test {
|
|||||||
/**
|
/**
|
||||||
* Changing the inventory contents updates the block state
|
* Changing the inventory contents updates the block state
|
||||||
*/
|
*/
|
||||||
@GameTest
|
@GameTest(template = "printer_test.empty")
|
||||||
fun Contents_updates_state(helper: GameTestHelper) = helper.sequence {
|
fun Contents_updates_state(helper: GameTestHelper) = helper.sequence {
|
||||||
val pos = BlockPos(2, 2, 2)
|
val pos = BlockPos(2, 2, 2)
|
||||||
|
|
||||||
thenExecute {
|
thenExecute {
|
||||||
val drive = helper.getBlockEntity(pos, ModRegistry.BlockEntities.PRINTER.get())
|
val printer = helper.getBlockEntity(pos, ModRegistry.BlockEntities.PRINTER.get())
|
||||||
|
|
||||||
drive.setItem(1, ItemStack(Items.PAPER))
|
printer.setItem(1, ItemStack(Items.PAPER))
|
||||||
drive.setChanged()
|
printer.setChanged()
|
||||||
helper.assertBlockHas(pos, PrinterBlock.TOP, true, message = "One item in the top row")
|
helper.assertBlockHas(pos, PrinterBlock.TOP, true, message = "One item in the top row")
|
||||||
helper.assertBlockHas(pos, PrinterBlock.BOTTOM, false, message = "One item in the top row")
|
helper.assertBlockHas(pos, PrinterBlock.BOTTOM, false, message = "One item in the top row")
|
||||||
|
|
||||||
drive.setItem(7, ItemStack(Items.PAPER))
|
printer.setItem(7, ItemStack(Items.PAPER))
|
||||||
drive.setChanged()
|
printer.setChanged()
|
||||||
helper.assertBlockHas(pos, PrinterBlock.TOP, true, message = "One item in each row")
|
helper.assertBlockHas(pos, PrinterBlock.TOP, true, message = "One item in each row")
|
||||||
helper.assertBlockHas(pos, PrinterBlock.BOTTOM, true, message = "One item in each row")
|
helper.assertBlockHas(pos, PrinterBlock.BOTTOM, true, message = "One item in each row")
|
||||||
|
|
||||||
drive.setItem(1, ItemStack.EMPTY)
|
printer.setItem(1, ItemStack.EMPTY)
|
||||||
drive.setChanged()
|
printer.setChanged()
|
||||||
helper.assertBlockHas(pos, PrinterBlock.TOP, false, message = "One item in the bottom")
|
helper.assertBlockHas(pos, PrinterBlock.TOP, false, message = "One item in the bottom")
|
||||||
helper.assertBlockHas(pos, PrinterBlock.BOTTOM, true, message = "One item in the bottom row")
|
helper.assertBlockHas(pos, PrinterBlock.BOTTOM, true, message = "One item in the bottom row")
|
||||||
|
|
||||||
drive.setItem(7, ItemStack.EMPTY)
|
printer.setItem(7, ItemStack.EMPTY)
|
||||||
drive.setChanged()
|
printer.setChanged()
|
||||||
helper.assertBlockHas(pos, PrinterBlock.TOP, false, message = "Empty")
|
helper.assertBlockHas(pos, PrinterBlock.TOP, false, message = "Empty")
|
||||||
helper.assertBlockHas(pos, PrinterBlock.BOTTOM, false, message = "Empty")
|
helper.assertBlockHas(pos, PrinterBlock.BOTTOM, false, message = "Empty")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Printing a page
|
||||||
|
*/
|
||||||
|
@GameTest(template = "printer_test.empty")
|
||||||
|
fun Print_page(helper: GameTestHelper) = helper.sequence {
|
||||||
|
val pos = BlockPos(2, 2, 2)
|
||||||
|
|
||||||
|
thenExecute {
|
||||||
|
val printer = helper.getBlockEntity(pos, ModRegistry.BlockEntities.PRINTER.get())
|
||||||
|
val peripheral = printer.peripheral() as PrinterPeripheral
|
||||||
|
|
||||||
|
// Try to print with no pages
|
||||||
|
assertFalse(peripheral.newPage(), "newPage fails with no items")
|
||||||
|
|
||||||
|
// Try to print with just ink
|
||||||
|
printer.setItem(0, ItemStack(Items.BLUE_DYE))
|
||||||
|
printer.setChanged()
|
||||||
|
assertFalse(peripheral.newPage(), "newPage fails with no paper")
|
||||||
|
|
||||||
|
printer.clearContent()
|
||||||
|
|
||||||
|
// Try to print with just paper
|
||||||
|
printer.setItem(1, ItemStack(Items.PAPER))
|
||||||
|
printer.setChanged()
|
||||||
|
assertFalse(peripheral.newPage(), "newPage fails with no ink")
|
||||||
|
|
||||||
|
printer.clearContent()
|
||||||
|
|
||||||
|
// Try to print with both items
|
||||||
|
printer.setItem(0, ItemStack(Items.BLUE_DYE))
|
||||||
|
printer.setItem(1, ItemStack(Items.PAPER))
|
||||||
|
printer.setChanged()
|
||||||
|
assertTrue(peripheral.newPage(), "newPage succeeds")
|
||||||
|
|
||||||
|
// newPage() should consume both items and update the block state
|
||||||
|
helper.assertContainerEmpty(pos)
|
||||||
|
helper.assertBlockHas(pos, PrinterBlock.TOP, false, message = "Empty")
|
||||||
|
helper.assertBlockHas(pos, PrinterBlock.BOTTOM, false, message = "Empty")
|
||||||
|
|
||||||
|
assertFalse(peripheral.newPage(), "Cannot start a page when already printing")
|
||||||
|
|
||||||
|
peripheral.setPageTitle(Optional.of("New Page"))
|
||||||
|
peripheral.write(Coerced("Hello, world!"))
|
||||||
|
peripheral.setCursorPos(5, 2)
|
||||||
|
peripheral.write(Coerced("Second line"))
|
||||||
|
|
||||||
|
// Try to finish the page
|
||||||
|
assertTrue(peripheral.endPage(), "endPage prints item")
|
||||||
|
|
||||||
|
// endPage() should
|
||||||
|
helper.assertBlockHas(pos, PrinterBlock.TOP, false, message = "Empty")
|
||||||
|
helper.assertBlockHas(pos, PrinterBlock.BOTTOM, true, message = "Has pages")
|
||||||
|
|
||||||
|
// And check the inventory matches
|
||||||
|
val lines = createPageOf(' ')
|
||||||
|
lines[0] = "Hello, world! "
|
||||||
|
lines[1] = " Second line "
|
||||||
|
helper.assertContainerExactly(
|
||||||
|
pos,
|
||||||
|
listOf(
|
||||||
|
// Ink
|
||||||
|
ItemStack.EMPTY,
|
||||||
|
// Paper
|
||||||
|
ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
|
// Pages
|
||||||
|
PrintoutItem.createSingleFromTitleAndText("New Page", lines, createPageOf('b')),
|
||||||
|
ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
val error = assertThrows(LuaException::class.java) { peripheral.endPage() }
|
||||||
|
assertEquals("Page not started", error.message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Can't print when full.
|
||||||
|
*/
|
||||||
|
@GameTest
|
||||||
|
fun No_print_when_full(helper: GameTestHelper) = helper.sequence {
|
||||||
|
val pos = BlockPos(2, 2, 2)
|
||||||
|
|
||||||
|
thenExecute {
|
||||||
|
val printer = helper.getBlockEntity(pos, ModRegistry.BlockEntities.PRINTER.get())
|
||||||
|
val peripheral = printer.peripheral() as PrinterPeripheral
|
||||||
|
assertTrue(peripheral.newPage())
|
||||||
|
assertFalse(peripheral.endPage(), "Cannot print when full")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When the block is broken, we drop the contents and an optionally named stack.
|
* When the block is broken, we drop the contents and an optionally named stack.
|
||||||
*/
|
*/
|
||||||
@ -94,4 +187,9 @@ class Printer_Test {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun createPageOf(c: Char): Array<String> {
|
||||||
|
val line = c.toString().repeat(PrintoutItem.LINE_MAX_LENGTH)
|
||||||
|
return Array(PrintoutItem.LINES_PER_PAGE) { line }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,6 @@ import dan200.computercraft.shared.util.WaterloggableHelpers
|
|||||||
import dan200.computercraft.test.core.assertArrayEquals
|
import dan200.computercraft.test.core.assertArrayEquals
|
||||||
import dan200.computercraft.test.core.computer.LuaTaskContext
|
import dan200.computercraft.test.core.computer.LuaTaskContext
|
||||||
import dan200.computercraft.test.core.computer.getApi
|
import dan200.computercraft.test.core.computer.getApi
|
||||||
import dan200.computercraft.test.shared.ItemStackMatcher.isStack
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.gametest.framework.GameTest
|
import net.minecraft.gametest.framework.GameTest
|
||||||
import net.minecraft.gametest.framework.GameTestHelper
|
import net.minecraft.gametest.framework.GameTestHelper
|
||||||
@ -46,7 +45,8 @@ import net.minecraft.world.level.block.FenceBlock
|
|||||||
import net.minecraft.world.level.block.entity.BlockEntityType
|
import net.minecraft.world.level.block.entity.BlockEntityType
|
||||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties
|
import net.minecraft.world.level.block.state.properties.BlockStateProperties
|
||||||
import org.hamcrest.MatcherAssert.assertThat
|
import org.hamcrest.MatcherAssert.assertThat
|
||||||
import org.hamcrest.Matchers.*
|
import org.hamcrest.Matchers.array
|
||||||
|
import org.hamcrest.Matchers.instanceOf
|
||||||
import org.junit.jupiter.api.Assertions.*
|
import org.junit.jupiter.api.Assertions.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.CopyOnWriteArrayList
|
import java.util.concurrent.CopyOnWriteArrayList
|
||||||
@ -138,7 +138,7 @@ class Turtle_Test {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
thenExecute {
|
thenExecute {
|
||||||
helper.assertBlockIs(BlockPos(2, 2, 2)) { it.block == Blocks.COMPOSTER && it.getValue(ComposterBlock.LEVEL) == 2 }
|
helper.assertBlockHas(BlockPos(2, 2, 2), ComposterBlock.LEVEL, 2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,7 +154,7 @@ class Turtle_Test {
|
|||||||
.assertArrayEquals(false, "Cannot place item here", message = "Failed to place item")
|
.assertArrayEquals(false, "Cannot place item here", message = "Failed to place item")
|
||||||
}
|
}
|
||||||
thenExecute {
|
thenExecute {
|
||||||
helper.assertBlockIs(BlockPos(2, 2, 3)) { it.block == Blocks.COMPOSTER && it.getValue(ComposterBlock.LEVEL) == 0 }
|
helper.assertBlockHas(BlockPos(2, 2, 3), ComposterBlock.LEVEL, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,7 +175,7 @@ class Turtle_Test {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
thenExecute {
|
thenExecute {
|
||||||
helper.assertBlockIs(BlockPos(2, 2, 2)) { it.block == Blocks.BEEHIVE && it.getValue(BeehiveBlock.HONEY_LEVEL) == 0 }
|
helper.assertBlockHas(BlockPos(2, 2, 2), BeehiveBlock.HONEY_LEVEL, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -765,15 +765,13 @@ class Turtle_Test {
|
|||||||
callPeripheral("left", "craft", 1).assertArrayEquals(true)
|
callPeripheral("left", "craft", 1).assertArrayEquals(true)
|
||||||
}
|
}
|
||||||
thenExecute {
|
thenExecute {
|
||||||
val turtle = helper.getBlockEntity(BlockPos(2, 2, 2), ModRegistry.BlockEntities.TURTLE_NORMAL.get())
|
helper.assertContainerExactly(
|
||||||
assertThat(
|
BlockPos(2, 2, 2),
|
||||||
"Inventory is as expected.",
|
listOf(
|
||||||
turtle.contents,
|
ItemStack(Items.DIAMOND), ItemStack(Items.DIAMOND), ItemStack(Items.DIAMOND), ItemStack(Items.DIAMOND_PICKAXE),
|
||||||
contains(
|
ItemStack.EMPTY, ItemStack(Items.STICK), ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
isStack(Items.DIAMOND, 1), isStack(Items.DIAMOND, 1), isStack(Items.DIAMOND, 1), isStack(Items.DIAMOND_PICKAXE, 1),
|
ItemStack.EMPTY, ItemStack(Items.STICK), ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
isStack(ItemStack.EMPTY), isStack(Items.STICK, 1), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY),
|
ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
isStack(ItemStack.EMPTY), isStack(Items.STICK, 1), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY),
|
|
||||||
isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY),
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -786,23 +784,20 @@ class Turtle_Test {
|
|||||||
*/
|
*/
|
||||||
@GameTest
|
@GameTest
|
||||||
fun Craft_remainder(helper: GameTestHelper) = helper.sequence {
|
fun Craft_remainder(helper: GameTestHelper) = helper.sequence {
|
||||||
thenOnComputer {
|
|
||||||
callPeripheral("left", "craft", 1).assertArrayEquals(true)
|
|
||||||
}
|
|
||||||
thenExecute {
|
thenExecute {
|
||||||
val turtle = helper.getBlockEntity(BlockPos(2, 2, 2), ModRegistry.BlockEntities.TURTLE_NORMAL.get())
|
val turtle = helper.getBlockEntity(BlockPos(2, 2, 2), ModRegistry.BlockEntities.TURTLE_NORMAL.get())
|
||||||
|
assertTrue(TurtleCraftCommand(1).execute(turtle.access).isSuccess, "Crafting succeeded")
|
||||||
|
|
||||||
val turtleStack = ItemStack(ModRegistry.Items.TURTLE_NORMAL.get())
|
val turtleStack = ItemStack(ModRegistry.Items.TURTLE_NORMAL.get())
|
||||||
turtleStack.orCreateTag
|
turtleStack.orCreateTag
|
||||||
|
|
||||||
assertThat(
|
helper.assertContainerExactly(
|
||||||
"Inventory is as expected.",
|
BlockPos(2, 2, 2),
|
||||||
turtle.contents,
|
listOf(
|
||||||
contains(
|
turtleStack, ItemStack(Items.WET_SPONGE), ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
isStack(turtleStack), isStack(Items.WET_SPONGE, 1), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY),
|
ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY),
|
ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY),
|
ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY),
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -817,7 +812,8 @@ class Turtle_Test {
|
|||||||
fun Craft_offset(helper: GameTestHelper) = helper.sequence {
|
fun Craft_offset(helper: GameTestHelper) = helper.sequence {
|
||||||
for (offset in listOf(0, 1, 4, 5)) {
|
for (offset in listOf(0, 1, 4, 5)) {
|
||||||
thenExecute {
|
thenExecute {
|
||||||
val turtle = helper.getBlockEntity(BlockPos(2, 2, 2), ModRegistry.BlockEntities.TURTLE_NORMAL.get())
|
val turtlePos = BlockPos(2, 2, 2)
|
||||||
|
val turtle = helper.getBlockEntity(turtlePos, ModRegistry.BlockEntities.TURTLE_NORMAL.get())
|
||||||
|
|
||||||
// Set up turtle inventory
|
// Set up turtle inventory
|
||||||
turtle.clearContent()
|
turtle.clearContent()
|
||||||
@ -831,14 +827,13 @@ class Turtle_Test {
|
|||||||
assertTrue(TurtleCraftCommand(1).execute(turtle.access).isSuccess, "Crafting succeeded")
|
assertTrue(TurtleCraftCommand(1).execute(turtle.access).isSuccess, "Crafting succeeded")
|
||||||
|
|
||||||
// And check item was crafted
|
// And check item was crafted
|
||||||
assertThat(
|
helper.assertContainerExactly(
|
||||||
"Inventory is as expected.",
|
turtlePos,
|
||||||
turtle.contents,
|
listOf(
|
||||||
contains(
|
ItemStack(Items.STONE_PICKAXE), ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
isStack(Items.STONE_PICKAXE, 1), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY),
|
ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY),
|
ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY),
|
ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY,
|
||||||
isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY), isStack(ItemStack.EMPTY),
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
137
projects/common/src/testMod/resources/data/cctest/structures/printer_test.no_print_when_full.snbt
generated
Normal file
137
projects/common/src/testMod/resources/data/cctest/structures/printer_test.no_print_when_full.snbt
generated
Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user