mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-03-04 06:44:40 +01:00
tests for refactored features
This commit is contained in:
parent
97aa549307
commit
db6d1fdcf9
9 changed files with 129 additions and 0 deletions
|
@ -19,11 +19,13 @@ import net.minecraft.gametest.framework.GameTest;
|
|||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.projectile.Arrow;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.CropBlock;
|
||||
import net.minecraft.world.level.block.LeverBlock;
|
||||
import net.minecraft.world.level.block.RedstoneLampBlock;
|
||||
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
@GameTestGroup(path = "contraptions")
|
||||
|
@ -228,4 +230,48 @@ public class TestContraptions {
|
|||
// public static void trainObserver(CreateGameTestHelper helper) {
|
||||
// helper.fail("NYI");
|
||||
// }
|
||||
|
||||
@GameTest(template = "dispensers_dont_fight")
|
||||
public static void dispensersDontFight(CreateGameTestHelper helper) {
|
||||
helper.pullLever(2, 3, 1);
|
||||
BlockPos bottom = new BlockPos(6, 4, 1);
|
||||
BlockPos top = new BlockPos(6, 6, 1);
|
||||
BlockPos dispenser = new BlockPos(3, 4, 1);
|
||||
|
||||
helper.succeedWhen(() -> {
|
||||
helper.assertEntitiesPresent(EntityType.ARROW, bottom, 3, 0);
|
||||
helper.assertEntityNotPresent(EntityType.ARROW, top);
|
||||
helper.assertBlockPresent(Blocks.DISPENSER, dispenser);
|
||||
helper.assertContainerContains(dispenser, new ItemStack(Items.ARROW, 2));
|
||||
});
|
||||
}
|
||||
|
||||
@GameTest(template = "dispensers_refill")
|
||||
public static void dispensersRefill(CreateGameTestHelper helper) {
|
||||
BlockPos lever = new BlockPos(2, 3, 1);
|
||||
helper.pullLever(lever);
|
||||
BlockPos barrel = lever.above();
|
||||
BlockPos dispenser = barrel.east();
|
||||
|
||||
helper.succeedWhen(() -> {
|
||||
helper.assertBlockPresent(Blocks.DISPENSER, dispenser);
|
||||
helper.assertContainerContains(dispenser, new ItemStack(Items.SPECTRAL_ARROW, 2));
|
||||
helper.assertContainerEmpty(barrel);
|
||||
});
|
||||
}
|
||||
|
||||
@GameTest(template = "vaults_protect_fuel")
|
||||
public static void vaultsProtectFuel(CreateGameTestHelper helper) {
|
||||
BlockPos lever = new BlockPos(2, 2, 1);
|
||||
helper.pullLever(lever);
|
||||
BlockPos barrelLamp = new BlockPos(1, 3, 3);
|
||||
BlockPos vaultLamp = barrelLamp.east(2);
|
||||
|
||||
helper.runAtTickTime(10, () -> helper.pullLever(lever));
|
||||
|
||||
helper.succeedWhen(() -> {
|
||||
helper.assertBlockProperty(barrelLamp, RedstoneLampBlock.LIT, false);
|
||||
helper.assertBlockProperty(vaultLamp, RedstoneLampBlock.LIT, true);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,8 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.lang3.mutable.MutableBoolean;
|
||||
|
||||
import com.simibubi.create.AllBlockEntityTypes;
|
||||
import com.simibubi.create.content.fluids.hosePulley.HosePulleyFluidHandler;
|
||||
import com.simibubi.create.content.fluids.pipes.valve.FluidValveBlock;
|
||||
|
@ -18,15 +20,22 @@ import net.minecraft.gametest.framework.GameTest;
|
|||
import net.minecraft.gametest.framework.GameTestAssertException;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.monster.Zombie;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.alchemy.PotionUtils;
|
||||
import net.minecraft.world.item.alchemy.Potions;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.FarmBlock;
|
||||
import net.minecraft.world.level.block.LeverBlock;
|
||||
import net.minecraft.world.level.block.RedstoneLampBlock;
|
||||
import net.minecraft.world.level.material.Fluids;
|
||||
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidType;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
|
@ -299,4 +308,59 @@ public class TestFluids {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
@GameTest(template = "open_pipes")
|
||||
public static void openPipes(CreateGameTestHelper helper) {
|
||||
BlockPos effects = new BlockPos(2, 4, 2);
|
||||
BlockPos removers = new BlockPos(3, 5, 2);
|
||||
|
||||
BlockPos firstSeat = new BlockPos(4, 2, 1);
|
||||
BlockPos secondSeat = firstSeat.south(2);
|
||||
|
||||
Zombie firstZombie = helper.spawn(EntityType.ZOMBIE, firstSeat);
|
||||
Zombie secondZombie = helper.spawn(EntityType.ZOMBIE, secondSeat);
|
||||
|
||||
helper.pullLever(effects);
|
||||
|
||||
MutableBoolean stage1 = new MutableBoolean(true);
|
||||
|
||||
helper.succeedWhen(() -> {
|
||||
if (stage1.booleanValue()) {
|
||||
helper.assertTrue(firstZombie.isOnFire(), "not ignited");
|
||||
helper.assertFalse(secondZombie.getActiveEffects().isEmpty(), "no effects");
|
||||
// success, stage 2 time
|
||||
stage1.setFalse();
|
||||
helper.pullLever(effects);
|
||||
helper.pullLever(removers);
|
||||
helper.fail("switching stages");
|
||||
} else {
|
||||
helper.assertFalse(firstZombie.isOnFire(), "not extinguished");
|
||||
helper.assertTrue(secondZombie.getActiveEffects().isEmpty(), "has effects");
|
||||
// all done
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@GameTest(template = "spouting", timeoutTicks = CreateGameTestHelper.TEN_SECONDS)
|
||||
public static void spouting(CreateGameTestHelper helper) {
|
||||
BlockPos farmland = new BlockPos(3, 2, 3);
|
||||
BlockPos depot = new BlockPos(5, 2, 1);
|
||||
helper.pullLever(2, 3, 2);
|
||||
ItemStack waterBottle = PotionUtils.setPotion(new ItemStack(Items.POTION), Potions.WATER);
|
||||
|
||||
helper.succeedWhen(() -> {
|
||||
// lava
|
||||
helper.assertBlockPresent(Blocks.LAVA_CAULDRON, 3, 2, 1);
|
||||
// water
|
||||
helper.assertBlockProperty(farmland, FarmBlock.MOISTURE, 7);
|
||||
helper.assertBlockPresent(Blocks.MUD, farmland.east(1));
|
||||
helper.assertBlockPresent(Blocks.MUD, farmland.east(2));
|
||||
helper.assertBlockPresent(Blocks.MUD, farmland.east(3));
|
||||
helper.assertBlockPresent(Blocks.WATER_CAULDRON, farmland.east(4));
|
||||
|
||||
helper.assertContainerContains(depot, Items.WATER_BUCKET);
|
||||
helper.assertContainerContains(depot.east(1), waterBottle);
|
||||
helper.assertContainerContains(depot.east(2), Items.GRASS_BLOCK);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ import net.minecraft.world.item.enchantment.EnchantmentInstance;
|
|||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.RedstoneLampBlock;
|
||||
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
@ -390,4 +391,22 @@ public class TestItems {
|
|||
helper.assertNixiePower(halfPearlNixie, 8);
|
||||
});
|
||||
}
|
||||
|
||||
@GameTest(template = "fan_processing", timeoutTicks = CreateGameTestHelper.TEN_SECONDS)
|
||||
public static void fanProcessing(CreateGameTestHelper helper) {
|
||||
// why does the redstone explode
|
||||
BlockPos.betweenClosed(new BlockPos(2, 7, 3), new BlockPos(11, 7, 3)).forEach(
|
||||
pos -> helper.setBlock(pos, Blocks.REDSTONE_WIRE)
|
||||
);
|
||||
helper.pullLever(1, 7, 3);
|
||||
List<BlockPos> lamps = List.of(
|
||||
new BlockPos(1, 2, 1), new BlockPos(5, 2, 1), new BlockPos(7, 2, 1),
|
||||
new BlockPos(9, 2, 1), new BlockPos(11, 2, 1)
|
||||
);
|
||||
helper.succeedWhen(() -> {
|
||||
for (BlockPos lamp : lamps) {
|
||||
helper.assertBlockProperty(lamp, RedstoneLampBlock.LIT, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Add table
Reference in a new issue