mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-02-05 09:54:59 +01:00
Fix copycat model modifying potentially immutable list
- Perform minor mod initialization clean up - Bump version to patch E - Organize imports
This commit is contained in:
parent
56923db317
commit
c052807773
16 changed files with 52 additions and 57 deletions
|
@ -4,7 +4,7 @@ org.gradle.jvmargs = -Xmx3G
|
||||||
org.gradle.daemon = false
|
org.gradle.daemon = false
|
||||||
|
|
||||||
# mod version info
|
# mod version info
|
||||||
mod_version = 0.5.1.c
|
mod_version = 0.5.1.e
|
||||||
artifact_minecraft_version = 1.18.2
|
artifact_minecraft_version = 1.18.2
|
||||||
|
|
||||||
minecraft_version = 1.18.2
|
minecraft_version = 1.18.2
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
package com.simibubi.create;
|
package com.simibubi.create;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
|
||||||
import com.simibubi.create.compat.jei.ConversionRecipe;
|
import com.simibubi.create.compat.jei.ConversionRecipe;
|
||||||
import com.simibubi.create.content.equipment.sandPaper.SandPaperPolishingRecipe;
|
import com.simibubi.create.content.equipment.sandPaper.SandPaperPolishingRecipe;
|
||||||
import com.simibubi.create.content.equipment.toolbox.ToolboxDyeingRecipe;
|
import com.simibubi.create.content.equipment.toolbox.ToolboxDyeingRecipe;
|
||||||
|
|
|
@ -20,7 +20,6 @@ import com.simibubi.create.content.kinetics.TorquePropagator;
|
||||||
import com.simibubi.create.content.kinetics.mechanicalArm.AllArmInteractionPointTypes;
|
import com.simibubi.create.content.kinetics.mechanicalArm.AllArmInteractionPointTypes;
|
||||||
import com.simibubi.create.content.redstone.displayLink.AllDisplayBehaviours;
|
import com.simibubi.create.content.redstone.displayLink.AllDisplayBehaviours;
|
||||||
import com.simibubi.create.content.redstone.link.RedstoneLinkNetworkHandler;
|
import com.simibubi.create.content.redstone.link.RedstoneLinkNetworkHandler;
|
||||||
import com.simibubi.create.content.schematics.SchematicInstances;
|
|
||||||
import com.simibubi.create.content.schematics.ServerSchematicLoader;
|
import com.simibubi.create.content.schematics.ServerSchematicLoader;
|
||||||
import com.simibubi.create.content.trains.GlobalRailwayManager;
|
import com.simibubi.create.content.trains.GlobalRailwayManager;
|
||||||
import com.simibubi.create.content.trains.bogey.BogeySizes;
|
import com.simibubi.create.content.trains.bogey.BogeySizes;
|
||||||
|
@ -70,7 +69,7 @@ public class Create {
|
||||||
|
|
||||||
public static final String ID = "create";
|
public static final String ID = "create";
|
||||||
public static final String NAME = "Create";
|
public static final String NAME = "Create";
|
||||||
public static final String VERSION = "0.5.1c";
|
public static final String VERSION = "0.5.1e";
|
||||||
|
|
||||||
public static final Logger LOGGER = LogUtils.getLogger();
|
public static final Logger LOGGER = LogUtils.getLogger();
|
||||||
|
|
||||||
|
@ -125,21 +124,27 @@ public class Create {
|
||||||
AllParticleTypes.register(modEventBus);
|
AllParticleTypes.register(modEventBus);
|
||||||
AllStructureProcessorTypes.register(modEventBus);
|
AllStructureProcessorTypes.register(modEventBus);
|
||||||
AllEntityDataSerializers.register(modEventBus);
|
AllEntityDataSerializers.register(modEventBus);
|
||||||
|
AllPackets.registerPackets();
|
||||||
AllOreFeatureConfigEntries.init();
|
AllOreFeatureConfigEntries.init();
|
||||||
AllFeatures.register(modEventBus);
|
AllFeatures.register(modEventBus);
|
||||||
AllPlacementModifiers.register(modEventBus);
|
AllPlacementModifiers.register(modEventBus);
|
||||||
BuiltinRegistration.register(modEventBus);
|
BuiltinRegistration.register(modEventBus);
|
||||||
BogeySizes.init();
|
|
||||||
AllBogeyStyles.register();
|
|
||||||
|
|
||||||
AllConfigs.register(modLoadingContext);
|
AllConfigs.register(modLoadingContext);
|
||||||
|
|
||||||
|
// FIXME: some of these registrations are not thread-safe
|
||||||
AllMovementBehaviours.registerDefaults();
|
AllMovementBehaviours.registerDefaults();
|
||||||
AllInteractionBehaviours.registerDefaults();
|
AllInteractionBehaviours.registerDefaults();
|
||||||
AllDisplayBehaviours.registerDefaults();
|
AllDisplayBehaviours.registerDefaults();
|
||||||
ContraptionMovementSetting.registerDefaults();
|
ContraptionMovementSetting.registerDefaults();
|
||||||
AllArmInteractionPointTypes.register();
|
AllArmInteractionPointTypes.register();
|
||||||
BlockSpoutingBehaviour.registerDefaults();
|
BlockSpoutingBehaviour.registerDefaults();
|
||||||
|
BoilerHeaters.registerDefaults();
|
||||||
|
BuiltinPotatoProjectileTypes.register();
|
||||||
|
BogeySizes.init();
|
||||||
|
AllBogeyStyles.register();
|
||||||
|
// ----
|
||||||
|
|
||||||
ComputerCraftProxy.register();
|
ComputerCraftProxy.register();
|
||||||
|
|
||||||
ForgeMod.enableMilkFluid();
|
ForgeMod.enableMilkFluid();
|
||||||
|
@ -153,19 +158,15 @@ public class Create {
|
||||||
|
|
||||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> CreateClient.onCtorClient(modEventBus, forgeEventBus));
|
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> CreateClient.onCtorClient(modEventBus, forgeEventBus));
|
||||||
|
|
||||||
|
// FIXME: this is not thread-safe
|
||||||
Mods.CURIOS.executeIfInstalled(() -> () -> Curios.init(modEventBus, forgeEventBus));
|
Mods.CURIOS.executeIfInstalled(() -> () -> Curios.init(modEventBus, forgeEventBus));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void init(final FMLCommonSetupEvent event) {
|
public static void init(final FMLCommonSetupEvent event) {
|
||||||
AllPackets.registerPackets();
|
|
||||||
SchematicInstances.register();
|
|
||||||
BuiltinPotatoProjectileTypes.register();
|
|
||||||
|
|
||||||
event.enqueueWork(() -> {
|
event.enqueueWork(() -> {
|
||||||
AttachedRegistry.unwrapAll();
|
AttachedRegistry.unwrapAll();
|
||||||
AllAdvancements.register();
|
AllAdvancements.register();
|
||||||
AllTriggers.register();
|
AllTriggers.register();
|
||||||
BoilerHeaters.registerDefaults();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
package com.simibubi.create.compat.curios;
|
package com.simibubi.create.compat.curios;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
import com.simibubi.create.AllItems;
|
import com.simibubi.create.AllItems;
|
||||||
|
import com.simibubi.create.AllTags;
|
||||||
import com.simibubi.create.content.equipment.armor.BacktankUtil;
|
import com.simibubi.create.content.equipment.armor.BacktankUtil;
|
||||||
import com.simibubi.create.content.equipment.goggles.GogglesItem;
|
import com.simibubi.create.content.equipment.goggles.GogglesItem;
|
||||||
import com.simibubi.create.AllTags;
|
|
||||||
|
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
@ -19,11 +24,6 @@ import top.theillusivec4.curios.api.SlotTypePreset;
|
||||||
import top.theillusivec4.curios.api.type.capability.ICuriosItemHandler;
|
import top.theillusivec4.curios.api.type.capability.ICuriosItemHandler;
|
||||||
import top.theillusivec4.curios.api.type.inventory.ICurioStacksHandler;
|
import top.theillusivec4.curios.api.type.inventory.ICurioStacksHandler;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
public class Curios {
|
public class Curios {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -30,15 +30,14 @@ public class CopycatBarsModel extends CopycatModel {
|
||||||
protected List<BakedQuad> getCroppedQuads(BlockState state, Direction side, Random rand, BlockState material,
|
protected List<BakedQuad> getCroppedQuads(BlockState state, Direction side, Random rand, BlockState material,
|
||||||
IModelData wrappedData) {
|
IModelData wrappedData) {
|
||||||
BakedModel model = getModelOf(material);
|
BakedModel model = getModelOf(material);
|
||||||
List<BakedQuad> templateQuads = model.getQuads(material, null, rand, wrappedData);
|
|
||||||
List<BakedQuad> superQuads = originalModel.getQuads(state, side, rand, wrappedData);
|
List<BakedQuad> superQuads = originalModel.getQuads(state, side, rand, wrappedData);
|
||||||
List<BakedQuad> quads = new ArrayList<>();
|
|
||||||
TextureAtlasSprite targetSprite = model.getParticleIcon(wrappedData);
|
TextureAtlasSprite targetSprite = model.getParticleIcon(wrappedData);
|
||||||
|
|
||||||
boolean vertical = state.getValue(CopycatPanelBlock.FACING)
|
boolean vertical = state.getValue(CopycatPanelBlock.FACING)
|
||||||
.getAxis() == Axis.Y;
|
.getAxis() == Axis.Y;
|
||||||
|
|
||||||
if (side != null && (vertical || side.getAxis() == Axis.Y))
|
if (side != null && (vertical || side.getAxis() == Axis.Y)) {
|
||||||
|
List<BakedQuad> templateQuads = model.getQuads(material, null, rand, wrappedData);
|
||||||
for (int i = 0; i < templateQuads.size(); i++) {
|
for (int i = 0; i < templateQuads.size(); i++) {
|
||||||
BakedQuad quad = templateQuads.get(i);
|
BakedQuad quad = templateQuads.get(i);
|
||||||
if (quad.getDirection() != Direction.UP)
|
if (quad.getDirection() != Direction.UP)
|
||||||
|
@ -46,10 +45,13 @@ public class CopycatBarsModel extends CopycatModel {
|
||||||
targetSprite = quad.getSprite();
|
targetSprite = quad.getSprite();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (targetSprite == null)
|
if (targetSprite == null)
|
||||||
return superQuads;
|
return superQuads;
|
||||||
|
|
||||||
|
List<BakedQuad> quads = new ArrayList<>();
|
||||||
|
|
||||||
for (int i = 0; i < superQuads.size(); i++) {
|
for (int i = 0; i < superQuads.size(); i++) {
|
||||||
BakedQuad quad = superQuads.get(i);
|
BakedQuad quad = superQuads.get(i);
|
||||||
TextureAtlasSprite original = quad.getSprite();
|
TextureAtlasSprite original = quad.getSprite();
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.simibubi.create.content.decoration.copycat;
|
package com.simibubi.create.content.decoration.copycat;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
@ -107,14 +108,24 @@ public abstract class CopycatModel extends BakedModelWrapperWithData {
|
||||||
|
|
||||||
// Rubidium: render side!=null versions of the base material during side==null,
|
// Rubidium: render side!=null versions of the base material during side==null,
|
||||||
// to avoid getting culled away
|
// to avoid getting culled away
|
||||||
if (side == null && state.getBlock() instanceof CopycatBlock ccb)
|
if (side == null && state.getBlock() instanceof CopycatBlock ccb) {
|
||||||
|
boolean immutable = true;
|
||||||
for (Direction nonOcclusionSide : Iterate.directions)
|
for (Direction nonOcclusionSide : Iterate.directions)
|
||||||
if (ccb.shouldFaceAlwaysRender(state, nonOcclusionSide))
|
if (ccb.shouldFaceAlwaysRender(state, nonOcclusionSide)) {
|
||||||
|
if (immutable) {
|
||||||
|
croppedQuads = new ArrayList<>(croppedQuads);
|
||||||
|
immutable = false;
|
||||||
|
}
|
||||||
croppedQuads.addAll(getCroppedQuads(state, nonOcclusionSide, rand, material, wrappedData));
|
croppedQuads.addAll(getCroppedQuads(state, nonOcclusionSide, rand, material, wrappedData));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return croppedQuads;
|
return croppedQuads;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The returned list must not be mutated.
|
||||||
|
*/
|
||||||
protected abstract List<BakedQuad> getCroppedQuads(BlockState state, Direction side, Random rand,
|
protected abstract List<BakedQuad> getCroppedQuads(BlockState state, Direction side, Random rand,
|
||||||
BlockState material, IModelData wrappedData);
|
BlockState material, IModelData wrappedData);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.simibubi.create.content.equipment.armor;
|
package com.simibubi.create.content.equipment.armor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.simibubi.create.foundation.advancement.AllAdvancements;
|
import com.simibubi.create.foundation.advancement.AllAdvancements;
|
||||||
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
@ -20,8 +22,6 @@ import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@EventBusSubscriber
|
@EventBusSubscriber
|
||||||
public class DivingHelmetItem extends BaseArmorItem {
|
public class DivingHelmetItem extends BaseArmorItem {
|
||||||
public static final EquipmentSlot SLOT = EquipmentSlot.HEAD;
|
public static final EquipmentSlot SLOT = EquipmentSlot.HEAD;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.simibubi.create.content.equipment.armor;
|
package com.simibubi.create.content.equipment.armor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.simibubi.create.AllItems;
|
import com.simibubi.create.AllItems;
|
||||||
import com.simibubi.create.foundation.gui.element.GuiGameElement;
|
import com.simibubi.create.foundation.gui.element.GuiGameElement;
|
||||||
|
@ -16,8 +18,6 @@ import net.minecraft.world.level.GameType;
|
||||||
import net.minecraftforge.client.gui.ForgeIngameGui;
|
import net.minecraftforge.client.gui.ForgeIngameGui;
|
||||||
import net.minecraftforge.client.gui.IIngameOverlay;
|
import net.minecraftforge.client.gui.IIngameOverlay;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class RemainingAirOverlay implements IIngameOverlay {
|
public class RemainingAirOverlay implements IIngameOverlay {
|
||||||
public static final RemainingAirOverlay INSTANCE = new RemainingAirOverlay();
|
public static final RemainingAirOverlay INSTANCE = new RemainingAirOverlay();
|
||||||
|
|
||||||
|
|
|
@ -23,19 +23,13 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemp
|
||||||
|
|
||||||
public class SchematicInstances {
|
public class SchematicInstances {
|
||||||
|
|
||||||
public static final WorldAttached<Cache<Integer, SchematicWorld>> loadedSchematics;
|
private static final WorldAttached<Cache<Integer, SchematicWorld>> LOADED_SCHEMATICS = new WorldAttached<>($ -> CacheBuilder.newBuilder()
|
||||||
|
|
||||||
static {
|
|
||||||
loadedSchematics = new WorldAttached<>($ -> CacheBuilder.newBuilder()
|
|
||||||
.expireAfterAccess(5, TimeUnit.MINUTES)
|
.expireAfterAccess(5, TimeUnit.MINUTES)
|
||||||
.build());
|
.build());
|
||||||
}
|
|
||||||
|
|
||||||
public static void register() {}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static SchematicWorld get(Level world, ItemStack schematic) {
|
public static SchematicWorld get(Level world, ItemStack schematic) {
|
||||||
Cache<Integer, SchematicWorld> map = loadedSchematics.get(world);
|
Cache<Integer, SchematicWorld> map = LOADED_SCHEMATICS.get(world);
|
||||||
int hash = getHash(schematic);
|
int hash = getHash(schematic);
|
||||||
SchematicWorld ifPresent = map.getIfPresent(hash);
|
SchematicWorld ifPresent = map.getIfPresent(hash);
|
||||||
if (ifPresent != null)
|
if (ifPresent != null)
|
||||||
|
|
|
@ -3,7 +3,6 @@ package com.simibubi.create.content.trains.bogey;
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
|
|
||||||
import com.simibubi.create.content.trains.entity.CarriageBogey;
|
import com.simibubi.create.content.trains.entity.CarriageBogey;
|
||||||
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
|
|
@ -6,11 +6,6 @@ import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.IntStream;
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
import com.mojang.math.Matrix3f;
|
|
||||||
import com.mojang.math.Matrix4f;
|
|
||||||
import com.mojang.math.Quaternion;
|
|
||||||
import com.simibubi.create.content.trains.entity.CarriageBogey;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
|
@ -20,6 +15,10 @@ import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||||
import com.jozufozu.flywheel.util.transform.Transform;
|
import com.jozufozu.flywheel.util.transform.Transform;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
|
import com.mojang.math.Matrix3f;
|
||||||
|
import com.mojang.math.Matrix4f;
|
||||||
|
import com.mojang.math.Quaternion;
|
||||||
|
import com.simibubi.create.content.trains.entity.CarriageBogey;
|
||||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||||
import com.simibubi.create.foundation.render.SuperByteBuffer;
|
import com.simibubi.create.foundation.render.SuperByteBuffer;
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@ import static com.simibubi.create.AllPartialModels.LARGE_BOGEY_WHEELS;
|
||||||
import static com.simibubi.create.AllPartialModels.SMALL_BOGEY_WHEELS;
|
import static com.simibubi.create.AllPartialModels.SMALL_BOGEY_WHEELS;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.jozufozu.flywheel.util.transform.Transform;
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
|
|
|
@ -5,21 +5,17 @@ import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
import com.simibubi.create.content.contraptions.Contraption;
|
|
||||||
import com.simibubi.create.content.contraptions.actors.contraptionControls.ContraptionControlsMovement;
|
|
||||||
import com.simibubi.create.content.contraptions.actors.contraptionControls.ContraptionControlsMovingInteraction;
|
|
||||||
import com.simibubi.create.content.contraptions.behaviour.MovementContext;
|
|
||||||
import com.simibubi.create.content.kinetics.gauge.SpeedGaugeBlockEntity;
|
|
||||||
|
|
||||||
import com.simibubi.create.content.kinetics.gauge.StressGaugeBlockEntity;
|
|
||||||
|
|
||||||
import net.minecraftforge.registries.ForgeRegistries;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.tuple.MutablePair;
|
import org.apache.commons.lang3.tuple.MutablePair;
|
||||||
import org.jetbrains.annotations.Contract;
|
import org.jetbrains.annotations.Contract;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import com.simibubi.create.AllBlockEntityTypes;
|
import com.simibubi.create.AllBlockEntityTypes;
|
||||||
|
import com.simibubi.create.content.contraptions.Contraption;
|
||||||
|
import com.simibubi.create.content.contraptions.actors.contraptionControls.ContraptionControlsMovement;
|
||||||
|
import com.simibubi.create.content.contraptions.actors.contraptionControls.ContraptionControlsMovingInteraction;
|
||||||
|
import com.simibubi.create.content.contraptions.behaviour.MovementContext;
|
||||||
|
import com.simibubi.create.content.kinetics.gauge.SpeedGaugeBlockEntity;
|
||||||
|
import com.simibubi.create.content.kinetics.gauge.StressGaugeBlockEntity;
|
||||||
import com.simibubi.create.content.logistics.tunnel.BrassTunnelBlockEntity.SelectionMode;
|
import com.simibubi.create.content.logistics.tunnel.BrassTunnelBlockEntity.SelectionMode;
|
||||||
import com.simibubi.create.content.redstone.nixieTube.NixieTubeBlockEntity;
|
import com.simibubi.create.content.redstone.nixieTube.NixieTubeBlockEntity;
|
||||||
import com.simibubi.create.foundation.blockEntity.IMultiBlockEntityContainer;
|
import com.simibubi.create.foundation.blockEntity.IMultiBlockEntityContainer;
|
||||||
|
@ -35,7 +31,6 @@ import it.unimi.dsi.fastutil.objects.Object2LongArrayMap;
|
||||||
import it.unimi.dsi.fastutil.objects.Object2LongMap;
|
import it.unimi.dsi.fastutil.objects.Object2LongMap;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Registry;
|
|
||||||
import net.minecraft.gametest.framework.GameTestHelper;
|
import net.minecraft.gametest.framework.GameTestHelper;
|
||||||
import net.minecraft.gametest.framework.GameTestInfo;
|
import net.minecraft.gametest.framework.GameTestInfo;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
|
@ -62,6 +57,7 @@ import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction;
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import net.minecraftforge.items.ItemHandlerHelper;
|
import net.minecraftforge.items.ItemHandlerHelper;
|
||||||
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A helper class expanding the functionality of {@link GameTestHelper}.
|
* A helper class expanding the functionality of {@link GameTestHelper}.
|
||||||
|
|
|
@ -14,7 +14,6 @@ import com.simibubi.create.infrastructure.gametest.CreateGameTestHelper;
|
||||||
import com.simibubi.create.infrastructure.gametest.GameTestGroup;
|
import com.simibubi.create.infrastructure.gametest.GameTestGroup;
|
||||||
|
|
||||||
import it.unimi.dsi.fastutil.objects.Object2LongMap;
|
import it.unimi.dsi.fastutil.objects.Object2LongMap;
|
||||||
|
|
||||||
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.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
|
|
|
@ -14,8 +14,6 @@ import com.simibubi.create.infrastructure.gametest.CreateGameTestHelper;
|
||||||
import com.simibubi.create.infrastructure.gametest.GameTestGroup;
|
import com.simibubi.create.infrastructure.gametest.GameTestGroup;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Holder;
|
|
||||||
import net.minecraft.core.Registry;
|
|
||||||
import net.minecraft.gametest.framework.GameTest;
|
import net.minecraft.gametest.framework.GameTest;
|
||||||
import net.minecraft.gametest.framework.GameTestAssertException;
|
import net.minecraft.gametest.framework.GameTestAssertException;
|
||||||
import net.minecraft.tags.BlockTags;
|
import net.minecraft.tags.BlockTags;
|
||||||
|
|
|
@ -21,7 +21,6 @@ import com.simibubi.create.infrastructure.gametest.GameTestGroup;
|
||||||
import it.unimi.dsi.fastutil.objects.Object2LongMap;
|
import it.unimi.dsi.fastutil.objects.Object2LongMap;
|
||||||
import net.minecraft.Util;
|
import net.minecraft.Util;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Registry;
|
|
||||||
import net.minecraft.gametest.framework.GameTest;
|
import net.minecraft.gametest.framework.GameTest;
|
||||||
import net.minecraft.network.chat.MutableComponent;
|
import net.minecraft.network.chat.MutableComponent;
|
||||||
import net.minecraft.world.item.EnchantedBookItem;
|
import net.minecraft.world.item.EnchantedBookItem;
|
||||||
|
|
Loading…
Reference in a new issue