1.19.3 Port Part I

- Mojang math -> JOML
- Use getters for x and y in AbstractWidget
- Use Button.builder()
- Widget -> Renderable
- Registry -> Registries for keys and BuiltInRegistries for registries
- Update pack format
This commit is contained in:
PepperCode1 2023-01-31 16:00:41 -08:00
parent 7ed2f71a01
commit f7987570ab
159 changed files with 635 additions and 569 deletions

View file

@ -140,7 +140,7 @@ repositories {
dependencies {
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
jarJar(group: 'com.tterrag.registrate', name: 'Registrate', version: '[MC1.19-1.1.5,)') {
jarJar(group: 'com.tterrag.registrate', name: 'Registrate', version: '[MC1.19.3-1.1.10,)') {
jarJar.pin(it, project.registrate_version)
}
jarJar(group: 'com.jozufozu.flywheel', name: "flywheel-forge-${flywheel_minecraft_version}", version: '[0.6.8,0.6.9)') {

View file

@ -5,10 +5,10 @@ org.gradle.daemon = false
# mod version info
mod_version = 0.5.0.i
artifact_minecraft_version = 1.19.2
artifact_minecraft_version = 1.19.3
minecraft_version = 1.19.2
forge_version = 43.2.4
minecraft_version = 1.19.3
forge_version = 44.1.8
# build dependency versions
forgegradle_version = 5.1.53
@ -16,16 +16,16 @@ mixingradle_version = 0.7-SNAPSHOT
mixin_version = 0.8.5
librarian_version = 1.+
cursegradle_version = 1.4.0
parchment_version = 2022.11.06
parchment_version = 2022.12.18
# dependency versions
registrate_version = MC1.19-1.1.5
flywheel_minecraft_version = 1.19.2
flywheel_version = 0.6.8.a-14
jei_minecraft_version = 1.19.2
jei_version = 11.2.0.254
curios_minecraft_version = 1.19.2
curios_version = 5.1.1.0
registrate_version = MC1.19.3-1.1.10
flywheel_minecraft_version = 1.19.3
flywheel_version = 0.6.8.a-1
jei_minecraft_version = 1.19.3
jei_version = 12.1.1.13
curios_minecraft_version = 1.19.3
curios_version = 5.1.2.0
# curseforge information
projectId = 328085

View file

@ -242,7 +242,7 @@ import com.tterrag.registrate.util.entry.BlockEntry;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.Direction.AxisDirection;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.data.recipes.ShapelessRecipeBuilder;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.BlockTags;
@ -572,7 +572,7 @@ public class AllBlocks {
.transform(axeOrPickaxe())
.transform(BuilderTransformers.cuckooClock())
.lang("Cuckoo Clock")
.onRegisterAfter(Registry.ITEM_REGISTRY, c -> TooltipHelper.referTo(c, CUCKOO_CLOCK))
.onRegisterAfter(Registries.ITEM, c -> TooltipHelper.referTo(c, CUCKOO_CLOCK))
.register();
public static final BlockEntry<MillstoneBlock> MILLSTONE = REGISTRATE.block("millstone", MillstoneBlock::new)
@ -1339,7 +1339,7 @@ public class AllBlocks {
.unlockedBy("has_seat", RegistrateRecipeProvider.has(AllItemTags.SEATS.tag))
.save(p, Create.asResource("crafting/kinetics/" + c.getName() + "_from_other_seat"));
})
.onRegisterAfter(Registry.ITEM_REGISTRY, v -> TooltipHelper.referTo(v, "block.create.brown_seat"))
.onRegisterAfter(Registries.ITEM, v -> TooltipHelper.referTo(v, "block.create.brown_seat"))
.tag(AllBlockTags.SEATS.tag)
.item()
.tag(AllItemTags.SEATS.tag)
@ -1955,7 +1955,7 @@ public class AllBlocks {
.withExistingParent(colourName + "_toolbox", p.modLoc("block/toolbox/block"))
.texture("0", p.modLoc("block/toolbox/" + colourName)));
})
.onRegisterAfter(Registry.ITEM_REGISTRY, v -> TooltipHelper.referTo(v, "block.create.toolbox"))
.onRegisterAfter(Registries.ITEM, v -> TooltipHelper.referTo(v, "block.create.toolbox"))
.tag(AllBlockTags.TOOLBOXES.tag)
.item(UncontainableBlockItem::new)
.model((c, p) -> p.withExistingParent(colourName + "_toolbox", p.modLoc("block/toolbox/item"))

View file

@ -31,14 +31,14 @@ import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.RegisteredObjects;
import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.Container;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.item.crafting.ShapedRecipe;
import net.minecraft.world.item.crafting.SimpleRecipeSerializer;
import net.minecraft.world.item.crafting.SimpleCraftingRecipeSerializer;
import net.minecraft.world.level.Level;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
@ -66,7 +66,7 @@ public enum AllRecipeTypes implements IRecipeTypeInfo {
MECHANICAL_CRAFTING(MechanicalCraftingRecipe.Serializer::new),
SEQUENCED_ASSEMBLY(SequencedAssemblyRecipeSerializer::new),
TOOLBOX_DYEING(() -> new SimpleRecipeSerializer<>(ToolboxDyeingRecipe::new), () -> RecipeType.CRAFTING, false);
TOOLBOX_DYEING(() -> new SimpleCraftingRecipeSerializer<>(ToolboxDyeingRecipe::new), () -> RecipeType.CRAFTING, false);
private final ResourceLocation id;
private final RegistryObject<RecipeSerializer<?>> serializerObject;
@ -141,7 +141,7 @@ public enum AllRecipeTypes implements IRecipeTypeInfo {
private static class Registers {
private static final DeferredRegister<RecipeSerializer<?>> SERIALIZER_REGISTER = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, Create.ID);
private static final DeferredRegister<RecipeType<?>> TYPE_REGISTER = DeferredRegister.create(Registry.RECIPE_TYPE_REGISTRY, Create.ID);
private static final DeferredRegister<RecipeType<?>> TYPE_REGISTER = DeferredRegister.create(Registries.RECIPE_TYPE, Create.ID);
}
}

View file

@ -10,9 +10,10 @@ import java.util.function.Supplier;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.simibubi.create.AllSoundEvents.SoundEntry;
import net.minecraft.core.Registry;
import net.minecraft.core.Vec3i;
import net.minecraft.core.registries.Registries;
import net.minecraft.data.CachedOutput;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.DataProvider;
@ -311,7 +312,7 @@ public class AllSoundEvents {
}
public static void register(RegisterEvent event) {
event.register(Registry.SOUND_EVENT_REGISTRY, helper -> {
event.register(Registries.SOUND_EVENT, helper -> {
for (SoundEntry entry : ALL.values())
entry.register(helper);
});

View file

@ -2,14 +2,14 @@ package com.simibubi.create;
import com.simibubi.create.content.schematics.SchematicProcessor;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorType;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.RegistryObject;
public class AllStructureProcessorTypes {
private static final DeferredRegister<StructureProcessorType<?>> REGISTER = DeferredRegister.create(Registry.STRUCTURE_PROCESSOR_REGISTRY, Create.ID);
private static final DeferredRegister<StructureProcessorType<?>> REGISTER = DeferredRegister.create(Registries.STRUCTURE_PROCESSOR, Create.ID);
public static final RegistryObject<StructureProcessorType<SchematicProcessor>> SCHEMATIC = REGISTER.register("schematic", () -> () -> SchematicProcessor.CODEC);

View file

@ -1,7 +1,7 @@
package com.simibubi.create.compat.curios;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.Create;
import net.minecraft.client.Minecraft;
@ -46,16 +46,16 @@ public class GogglesCurioRenderer implements ICurioRenderer {
// Translate and rotate with our head
matrixStack.pushPose();
matrixStack.translate(model.head.x / 16.0, model.head.y / 16.0, model.head.z / 16.0);
matrixStack.mulPose(Vector3f.YP.rotation(model.head.yRot));
matrixStack.mulPose(Vector3f.XP.rotation(model.head.xRot));
matrixStack.mulPose(Axis.YP.rotation(model.head.yRot));
matrixStack.mulPose(Axis.XP.rotation(model.head.xRot));
// Translate and scale to our head
matrixStack.translate(0, -0.25, 0);
matrixStack.mulPose(Vector3f.ZP.rotationDegrees(180.0f));
matrixStack.mulPose(Axis.ZP.rotationDegrees(180.0f));
matrixStack.scale(0.625f, 0.625f, 0.625f);
if(!slotContext.entity().getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
matrixStack.mulPose(Vector3f.ZP.rotationDegrees(180.0f));
matrixStack.mulPose(Axis.ZP.rotationDegrees(180.0f));
matrixStack.translate(0, -0.25, 0);
}

View file

@ -6,7 +6,7 @@ import java.util.Optional;
import javax.annotation.ParametersAreNonnullByDefault;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics;
import com.simibubi.create.content.contraptions.processing.ItemApplicationRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
@ -82,8 +82,8 @@ public class ItemApplicationCategory extends CreateRecipeCategory<ItemApplicatio
matrixStack.pushPose();
matrixStack.translate(74, 51, 100);
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
int scale = 20;
GuiGameElement.of(state)

View file

@ -6,7 +6,7 @@ import java.util.function.Supplier;
import javax.annotation.ParametersAreNonnullByDefault;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics;
@ -54,8 +54,8 @@ public abstract class ProcessingViaFanCategory<T extends Recipe<?>> extends Crea
matrixStack.pushPose();
translateFan(matrixStack);
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-12.5f));
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
matrixStack.mulPose(Axis.XP.rotationDegrees(-12.5f));
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
AnimatedKinetics.defaultBlockElement(AllBlockPartials.ENCASED_FAN_INNER)
.rotateBlock(180, 0, AnimatedKinetics.getCurrentAngle() * 16)

View file

@ -3,7 +3,7 @@ package com.simibubi.create.compat.jei.category.animations;
import com.jozufozu.flywheel.core.PartialModel;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllSpriteShifts;
@ -31,8 +31,8 @@ public class AnimatedBlazeBurner extends AnimatedKinetics {
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
matrixStack.pushPose();
matrixStack.translate(xOffset, yOffset, 200);
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
int scale = 23;
float offset = (Mth.sin(AnimationTickHolder.getRenderTime() / 16f) + 0.5f) / 16f;

View file

@ -1,23 +1,23 @@
package com.simibubi.create.compat.jei.category.animations;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlocks;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class AnimatedCrushingWheels extends AnimatedKinetics {
private final BlockState wheel = AllBlocks.CRUSHING_WHEEL.getDefaultState()
.setValue(BlockStateProperties.AXIS, Axis.X);
.setValue(BlockStateProperties.AXIS, Direction.Axis.X);
@Override
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
matrixStack.pushPose();
matrixStack.translate(xOffset, yOffset, 100);
matrixStack.mulPose(Vector3f.YP.rotationDegrees(-22.5f));
matrixStack.mulPose(Axis.YP.rotationDegrees(-22.5f));
int scale = 22;
blockElement(wheel)

View file

@ -1,14 +1,13 @@
package com.simibubi.create.compat.jei.category.animations;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.contraptions.components.deployer.DeployerBlock;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
public class AnimatedDeployer extends AnimatedKinetics {
@ -16,11 +15,11 @@ public class AnimatedDeployer extends AnimatedKinetics {
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
matrixStack.pushPose();
matrixStack.translate(xOffset, yOffset, 100);
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
int scale = 20;
blockElement(shaft(Axis.Z))
blockElement(shaft(Direction.Axis.Z))
.rotateBlock(0, 0, getCurrentAngle())
.scale(scale)
.render(matrixStack);

View file

@ -2,7 +2,7 @@ package com.simibubi.create.compat.jei.category.animations;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.Tesselator;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.foundation.fluid.FluidRenderer;
import com.simibubi.create.foundation.gui.UIRenderHelper;
@ -25,8 +25,8 @@ public class AnimatedItemDrain extends AnimatedKinetics {
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
matrixStack.pushPose();
matrixStack.translate(xOffset, yOffset, 100);
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
int scale = 20;
blockElement(AllBlocks.ITEM_DRAIN.getDefaultState())

View file

@ -1,7 +1,7 @@
package com.simibubi.create.compat.jei.category.animations;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
@ -14,8 +14,8 @@ public class AnimatedMixer extends AnimatedKinetics {
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
matrixStack.pushPose();
matrixStack.translate(xOffset, yOffset, 200);
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
int scale = 23;
blockElement(cogwheel())

View file

@ -1,12 +1,12 @@
package com.simibubi.create.compat.jei.category.animations;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.Direction;
public class AnimatedPress extends AnimatedKinetics {
@ -20,11 +20,11 @@ public class AnimatedPress extends AnimatedKinetics {
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
matrixStack.pushPose();
matrixStack.translate(xOffset, yOffset, 200);
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
int scale = basin ? 23 : 24;
blockElement(shaft(Axis.Z))
blockElement(shaft(Direction.Axis.Z))
.rotateBlock(0, 0, getCurrentAngle())
.scale(scale)
.render(matrixStack);

View file

@ -1,13 +1,12 @@
package com.simibubi.create.compat.jei.category.animations;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.contraptions.components.saw.SawBlock;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
public class AnimatedSaw extends AnimatedKinetics {
@ -17,11 +16,11 @@ public class AnimatedSaw extends AnimatedKinetics {
matrixStack.translate(xOffset, yOffset, 0);
matrixStack.translate(0, 0, 200);
matrixStack.translate(2, 22, 0);
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f + 90));
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f + 90));
int scale = 25;
blockElement(shaft(Axis.X))
blockElement(shaft(Direction.Axis.X))
.rotateBlock(-getCurrentAngle(), 0, 0)
.scale(scale)
.render(matrixStack);

View file

@ -5,7 +5,7 @@ import java.util.List;
import com.mojang.blaze3d.platform.Lighting;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.Tesselator;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.foundation.fluid.FluidRenderer;
@ -31,8 +31,8 @@ public class AnimatedSpout extends AnimatedKinetics {
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
matrixStack.pushPose();
matrixStack.translate(xOffset, yOffset, 100);
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
int scale = 20;
blockElement(AllBlocks.SPOUT.getDefaultState())

View file

@ -1,6 +1,7 @@
package com.simibubi.create.content.contraptions.base.flwdata;
import com.mojang.math.Quaternion;
import org.joml.Quaternionf;
import com.simibubi.create.foundation.block.render.SpriteShiftEntry;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
@ -18,11 +19,11 @@ public class BeltData extends KineticData {
float maxV;
byte scrollMult;
public BeltData setRotation(Quaternion q) {
this.qX = q.i();
this.qY = q.j();
this.qZ = q.k();
this.qW = q.r();
public BeltData setRotation(Quaternionf q) {
this.qX = q.x();
this.qY = q.y();
this.qZ = q.z();
this.qW = q.w();
markDirty();
return this;
}

View file

@ -1,5 +1,7 @@
package com.simibubi.create.content.contraptions.base.flwdata;
import org.joml.Quaternionf;
import com.jozufozu.flywheel.api.struct.Batched;
import com.jozufozu.flywheel.api.struct.Instanced;
import com.jozufozu.flywheel.api.struct.StructWriter;
@ -7,7 +9,6 @@ import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
import com.jozufozu.flywheel.core.layout.BufferLayout;
import com.jozufozu.flywheel.core.model.ModelTransformer;
import com.jozufozu.flywheel.util.RenderMath;
import com.mojang.math.Quaternion;
import com.simibubi.create.content.contraptions.KineticDebugger;
import com.simibubi.create.foundation.render.AllInstanceFormats;
import com.simibubi.create.foundation.render.AllProgramSpecs;
@ -52,7 +53,7 @@ public class BeltType implements Instanced<BeltData>, Batched<BeltData> {
});
b.translate(d.x + 0.5, d.y + 0.5, d.z + 0.5)
.multiply(new Quaternion(d.qX, d.qY, d.qZ, d.qW))
.multiply(new Quaternionf(d.qX, d.qY, d.qZ, d.qW))
.unCentre()
.light(d.getPackedLight());
if (KineticDebugger.isActive()) {

View file

@ -1,7 +1,8 @@
package com.simibubi.create.content.contraptions.base.flwdata;
import org.joml.Vector3f;
import com.jozufozu.flywheel.core.materials.BasicData;
import com.mojang.math.Vector3f;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.foundation.utility.Color;

View file

@ -1,6 +1,6 @@
package com.simibubi.create.content.contraptions.base.flwdata;
import com.mojang.math.Vector3f;
import org.joml.Vector3f;
import net.minecraft.core.Direction;

View file

@ -1,5 +1,7 @@
package com.simibubi.create.content.contraptions.base.flwdata;
import org.joml.Vector3f;
import com.jozufozu.flywheel.api.struct.Batched;
import com.jozufozu.flywheel.api.struct.Instanced;
import com.jozufozu.flywheel.api.struct.StructWriter;
@ -7,7 +9,7 @@ import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
import com.jozufozu.flywheel.core.layout.BufferLayout;
import com.jozufozu.flywheel.core.model.ModelTransformer;
import com.jozufozu.flywheel.util.RenderMath;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.content.contraptions.KineticDebugger;
import com.simibubi.create.foundation.render.AllInstanceFormats;
import com.simibubi.create.foundation.render.AllProgramSpecs;
@ -40,7 +42,7 @@ public class RotatingType implements Instanced<RotatingData>, Batched<RotatingDa
public void transform(RotatingData d, ModelTransformer.Params b) {
float angle = ((AnimationTickHolder.getRenderTime() * d.rotationalSpeed * 3f / 10 + d.rotationOffset) % 360);
Vector3f axis = new Vector3f(RenderMath.f(d.rotationAxisX), RenderMath.f(d.rotationAxisY), RenderMath.f(d.rotationAxisZ));
Axis axis = Axis.of(new Vector3f(RenderMath.f(d.rotationAxisX), RenderMath.f(d.rotationAxisY), RenderMath.f(d.rotationAxisZ)));
b.light(d.getPackedLight())
.translate(d.x + 0.5, d.y + 0.5, d.z + 0.5)
.multiply(axis.rotationDegrees(angle))

View file

@ -1,9 +1,10 @@
package com.simibubi.create.content.contraptions.components.actors;
import org.joml.Quaternionf;
import com.jozufozu.flywheel.api.Material;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
import com.mojang.math.Quaternion;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.content.contraptions.components.actors.flwdata.ActorData;
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
@ -13,6 +14,7 @@ import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.VecHelper;
import net.minecraft.core.Direction;
import net.minecraft.util.Mth;
import net.minecraft.world.level.block.state.BlockState;
public class DrillActorInstance extends ActorInstance {
@ -45,7 +47,7 @@ public class DrillActorInstance extends ActorInstance {
.setBlockLight(localBlockLight())
.setRotationOffset(0)
.setRotationAxis(0, 0, 1)
.setLocalRotation(new Quaternion(eulerX, eulerY, 0, true))
.setLocalRotation(new Quaternionf().rotationXYZ(eulerX * Mth.DEG_TO_RAD, eulerY * Mth.DEG_TO_RAD, 0))
.setSpeed(getSpeed(facing));
}

View file

@ -9,6 +9,7 @@ import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
@ -122,7 +123,7 @@ public class SeatEntity extends Entity implements IEntityAdditionalSpawnData {
protected void addAdditionalSaveData(CompoundTag p_213281_1_) {}
@Override
public Packet<?> getAddEntityPacket() {
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}

View file

@ -1,8 +1,9 @@
package com.simibubi.create.content.contraptions.components.actors.flwdata;
import org.joml.Quaternionf;
import org.joml.Vector3f;
import com.jozufozu.flywheel.api.InstanceData;
import com.mojang.math.Quaternion;
import com.mojang.math.Vector3f;
import net.minecraft.core.BlockPos;
@ -83,11 +84,11 @@ public class ActorData extends InstanceData {
return this;
}
public ActorData setLocalRotation(Quaternion q) {
this.qX = q.i();
this.qY = q.j();
this.qZ = q.k();
this.qW = q.r();
public ActorData setLocalRotation(Quaternionf q) {
this.qX = q.x();
this.qY = q.y();
this.qZ = q.z();
this.qW = q.w();
markDirty();
return this;
}

View file

@ -19,7 +19,7 @@ import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.level.Explosion;
import net.minecraft.world.level.Level.ExplosionInteraction;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.Vec3;
@ -83,9 +83,9 @@ public class CuckooClockTileEntity extends KineticTileEntity {
moveHands(hours, minutes);
if (AnimationTickHolder.getTicks() % 6 == 0)
playSound(SoundEvents.NOTE_BLOCK_HAT, 1 / 16f, 2f);
playSound(SoundEvents.NOTE_BLOCK_HAT.get(), 1 / 16f, 2f);
else if (AnimationTickHolder.getTicks() % 3 == 0)
playSound(SoundEvents.NOTE_BLOCK_HAT, 1 / 16f, 1.5f);
playSound(SoundEvents.NOTE_BLOCK_HAT.get(), 1 / 16f, 1.5f);
}
return;
}
@ -106,7 +106,7 @@ public class CuckooClockTileEntity extends KineticTileEntity {
Vec3 center = VecHelper.getCenterOf(worldPosition);
level.destroyBlock(worldPosition, false);
level.explode(null, CUCKOO_SURPRISE, null, center.x, center.y, center.z, 3, false,
Explosion.BlockInteraction.BREAK);
ExplosionInteraction.BLOCK);
}
}
@ -117,9 +117,9 @@ public class CuckooClockTileEntity extends KineticTileEntity {
if (animationType == Animation.NONE) {
if (AnimationTickHolder.getTicks() % 32 == 0)
playSound(SoundEvents.NOTE_BLOCK_HAT, 1 / 16f, 2f);
playSound(SoundEvents.NOTE_BLOCK_HAT.get(), 1 / 16f, 2f);
else if (AnimationTickHolder.getTicks() % 16 == 0)
playSound(SoundEvents.NOTE_BLOCK_HAT, 1 / 16f, 1.5f);
playSound(SoundEvents.NOTE_BLOCK_HAT.get(), 1 / 16f, 1.5f);
} else {
boolean isSurprise = animationType == Animation.SURPRISE;
@ -131,9 +131,9 @@ public class CuckooClockTileEntity extends KineticTileEntity {
// sounds
if (value == 1)
playSound(SoundEvents.NOTE_BLOCK_CHIME, 2, .5f);
playSound(SoundEvents.NOTE_BLOCK_CHIME.get(), 2, .5f);
if (value == 21)
playSound(SoundEvents.NOTE_BLOCK_CHIME, 2, 0.793701f);
playSound(SoundEvents.NOTE_BLOCK_CHIME.get(), 2, 0.793701f);
if (value > 30 && isSurprise) {
Vec3 pos = VecHelper.offsetRandomly(VecHelper.getCenterOf(this.worldPosition), level.random, .5f);

View file

@ -8,7 +8,7 @@ import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllSpriteShifts;
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity.Phase;
@ -58,7 +58,7 @@ public class MechanicalCrafterRenderer extends SafeTileEntityRenderer<Mechanical
ms.translate(vec.x, vec.y, vec.z);
ms.scale(1 / 2f, 1 / 2f, 1 / 2f);
float yRot = AngleHelper.horizontalAngle(facing);
ms.mulPose(Vector3f.YP.rotationDegrees(yRot));
ms.mulPose(Axis.YP.rotationDegrees(yRot));
renderItems(te, partialTicks, ms, buffer, light, overlay);
ms.popPose();
@ -73,7 +73,7 @@ public class MechanicalCrafterRenderer extends SafeTileEntityRenderer<Mechanical
if (!stack.isEmpty()) {
ms.pushPose();
ms.translate(0, 0, -1 / 256f);
ms.mulPose(Vector3f.YP.rotationDegrees(180));
ms.mulPose(Axis.YP.rotationDegrees(180));
Minecraft.getInstance()
.getItemRenderer()
.renderStatic(stack, TransformType.FIXED, light, overlay, ms, buffer, 0);
@ -140,7 +140,7 @@ public class MechanicalCrafterRenderer extends SafeTileEntityRenderer<Mechanical
float earlyProgress = Mth.clamp(progress * 2, 0, 1);
float lateProgress = Mth.clamp(progress * 2 - 1, 0, 1);
ms.mulPose(Vector3f.ZP.rotationDegrees(earlyProgress * 2 * 360));
ms.mulPose(Axis.ZP.rotationDegrees(earlyProgress * 2 * 360));
float upScaling = earlyProgress * 1.125f;
float downScaling = 1 + (1 - lateProgress) * .125f;
ms.scale(upScaling, upScaling, upScaling);
@ -153,7 +153,7 @@ public class MechanicalCrafterRenderer extends SafeTileEntityRenderer<Mechanical
.intValue() != 0)
return;
ms.pushPose();
ms.mulPose(Vector3f.YP.rotationDegrees(180));
ms.mulPose(Axis.YP.rotationDegrees(180));
Minecraft.getInstance()
.getItemRenderer()
.renderStatic(stack, TransformType.FIXED, light, overlay, ms, buffer, 0);

View file

@ -3,12 +3,14 @@ package com.simibubi.create.content.contraptions.components.deployer;
import static com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock.AXIS_ALONG_FIRST_COORDINATE;
import static com.simibubi.create.content.contraptions.base.DirectionalKineticBlock.FACING;
import org.joml.Quaternionf;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.api.instance.DynamicInstance;
import com.jozufozu.flywheel.api.instance.TickableInstance;
import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
import com.mojang.math.Quaternion;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance;
@ -123,12 +125,12 @@ public class DeployerInstance extends ShaftInstance implements DynamicInstance,
static void updateRotation(OrientedData pole, OrientedData hand, float yRot, float xRot, float zRot) {
Quaternion q = Direction.UP.step().rotationDegrees(yRot);
q.mul(Direction.EAST.step().rotationDegrees(xRot));
Quaternionf q = Axis.YP.rotationDegrees(yRot);
q.mul(Axis.XP.rotationDegrees(xRot));
hand.setRotation(q);
q.mul(Direction.SOUTH.step().rotationDegrees(zRot));
q.mul(Axis.ZP.rotationDegrees(zRot));
pole.setRotation(q);
}

View file

@ -9,7 +9,7 @@ import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.contraptions.base.IRotate;
@ -36,7 +36,6 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.Direction.AxisDirection;
import net.minecraft.util.Mth;
import net.minecraft.world.item.BlockItem;
@ -76,9 +75,9 @@ public class DeployerRenderer extends SafeTileEntityRenderer<DeployerTileEntity>
float xRot = facing == Direction.UP ? 90 : facing == Direction.DOWN ? 270 : 0;
boolean displayMode = facing == Direction.UP && te.getSpeed() == 0 && !punching;
ms.mulPose(Vector3f.YP.rotationDegrees(yRot));
ms.mulPose(Axis.YP.rotationDegrees(yRot));
if (!displayMode) {
ms.mulPose(Vector3f.XP.rotationDegrees(xRot));
ms.mulPose(Axis.XP.rotationDegrees(xRot));
ms.translate(0, 0, -11 / 16f);
}
@ -98,7 +97,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer<DeployerTileEntity>
ms.translate(0, isBlockItem ? 9 / 16f : 11 / 16f, 0);
ms.scale(scale, scale, scale);
transform = TransformType.GROUND;
ms.mulPose(Vector3f.YP.rotationDegrees(AnimationTickHolder.getRenderTime(te.getLevel())));
ms.mulPose(Axis.YP.rotationDegrees(AnimationTickHolder.getRenderTime(te.getLevel())));
} else {
float scale = punching ? .75f : isBlockItem ? .75f - 1 / 64f : .5f;
@ -146,7 +145,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer<DeployerTileEntity>
float yRot = AngleHelper.horizontalAngle(facing);
float xRot = facing == Direction.UP ? 270 : facing == Direction.DOWN ? 90 : 0;
float zRot =
axisDirectionMatters && (deployerState.getValue(AXIS_ALONG_FIRST_COORDINATE) ^ facing.getAxis() == Axis.Z) ? 90
axisDirectionMatters && (deployerState.getValue(AXIS_ALONG_FIRST_COORDINATE) ^ facing.getAxis() == Direction.Axis.Z) ? 90
: 0;
buffer.rotateCentered(Direction.UP, (float) ((yRot) / 180 * Math.PI));
@ -188,7 +187,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer<DeployerTileEntity>
m.pushPose();
m.pushPose();
Axis axis = Axis.Y;
Direction.Axis axis = Direction.Axis.Y;
if (context.state.getBlock() instanceof IRotate) {
IRotate def = (IRotate) context.state.getBlock();
axis = def.getRotationAxis(context.state);
@ -199,11 +198,11 @@ public class DeployerRenderer extends SafeTileEntityRenderer<DeployerTileEntity>
TransformStack.cast(m)
.centre()
.rotateY(axis == Axis.Z ? 90 : 0)
.rotateY(axis == Direction.Axis.Z ? 90 : 0)
.rotateZ(axis.isHorizontal() ? 90 : 0)
.unCentre();
shaft.transform(m);
shaft.rotateCentered(Direction.get(AxisDirection.POSITIVE, Axis.Y), angle);
shaft.rotateCentered(Direction.get(AxisDirection.POSITIVE, Direction.Axis.Y), angle);
m.popPose();
m.translate(offset.x, offset.y, offset.z);

View file

@ -19,7 +19,7 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.ClipContext;
import net.minecraft.world.level.ClipContext.Block;
import net.minecraft.world.level.ClipContext.Fluid;
import net.minecraft.world.level.Explosion.BlockInteraction;
import net.minecraft.world.level.Level.ExplosionInteraction;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
@ -171,7 +171,7 @@ public class NozzleTileEntity extends SmartTileEntity {
}
if (!pushing && pushingEntities.size() > 256 && !level.isClientSide) {
level.explode(null, center.x, center.y, center.z, 2, BlockInteraction.NONE);
level.explode(null, center.x, center.y, center.z, 2, ExplosionInteraction.NONE);
for (Iterator<Entity> iterator = pushingEntities.iterator(); iterator.hasNext();) {
Entity entity = iterator.next();
entity.discard();

View file

@ -1,11 +1,12 @@
package com.simibubi.create.content.contraptions.components.press;
import org.joml.Quaternionf;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.api.instance.DynamicInstance;
import com.jozufozu.flywheel.core.Materials;
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
import com.mojang.math.Quaternion;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance;
import com.simibubi.create.foundation.utility.AngleHelper;
@ -25,7 +26,7 @@ public class PressInstance extends ShaftInstance implements DynamicInstance {
.getModel(AllBlockPartials.MECHANICAL_PRESS_HEAD, blockState)
.createInstance();
Quaternion q = Vector3f.YP
Quaternionf q = Axis.YP
.rotationDegrees(AngleHelper.horizontalAngle(blockState.getValue(MechanicalPressBlock.HORIZONTAL_FACING)));
pressHead.setRotation(q);

View file

@ -6,7 +6,7 @@ import com.jozufozu.flywheel.backend.Backend;
import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
@ -132,8 +132,8 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
ms.scale(.5f, .5f, .5f);
if (alongZ)
ms.mulPose(Vector3f.YP.rotationDegrees(90));
ms.mulPose(Vector3f.XP.rotationDegrees(90));
ms.mulPose(Axis.YP.rotationDegrees(90));
ms.mulPose(Axis.XP.rotationDegrees(90));
itemRenderer.renderStatic(stack, ItemTransforms.TransformType.FIXED, light, overlay, ms, buffer, 0);
break;
}

View file

@ -48,7 +48,7 @@ import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.item.crafting.StonecutterRecipe;
import net.minecraft.world.level.block.BambooBlock;
import net.minecraft.world.level.block.BambooStalkBlock;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.CactusBlock;
import net.minecraft.world.level.block.ChorusPlantBlock;
@ -488,7 +488,7 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
if (TreeCutter.isRoot(stateToBreak))
return true;
Block block = stateToBreak.getBlock();
if (block instanceof BambooBlock)
if (block instanceof BambooStalkBlock)
return true;
if (block instanceof StemGrownBlock)
return true;

View file

@ -1,8 +1,10 @@
package com.simibubi.create.content.contraptions.components.steam;
import org.joml.Quaternionf;
import org.joml.Vector3f;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Quaternion;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import net.minecraft.client.Camera;
import net.minecraft.client.multiplayer.ClientLevel;
@ -53,11 +55,11 @@ public class SteamJetParticle extends SimpleAnimatedParticle {
float f4 = this.getQuadSize(pPartialTicks);
for (int i = 0; i < 4; i++) {
Quaternion quaternion = new Quaternion(Vector3f.YP, yaw, false);
quaternion.mul(Vector3f.XP.rotation(pitch));
quaternion.mul(Vector3f.YP.rotation(f3 + Mth.PI / 2 * i + roll));
Quaternionf quaternion = Axis.YP.rotation(yaw);
quaternion.mul(Axis.XP.rotation(pitch));
quaternion.mul(Axis.YP.rotation(f3 + Mth.PI / 2 * i + roll));
Vector3f vector3f1 = new Vector3f(-1.0F, -1.0F, 0.0F);
vector3f1.transform(quaternion);
vector3f1.rotate(quaternion);
Vector3f[] avector3f = new Vector3f[] { new Vector3f(-1.0F, -1.0F, 0.0F), new Vector3f(-1.0F, 1.0F, 0.0F),
new Vector3f(1.0F, 1.0F, 0.0F), new Vector3f(1.0F, -1.0F, 0.0F) };
@ -65,7 +67,7 @@ public class SteamJetParticle extends SimpleAnimatedParticle {
for (int j = 0; j < 4; ++j) {
Vector3f vector3f = avector3f[j];
vector3f.add(0, 1, 0);
vector3f.transform(quaternion);
vector3f.rotate(quaternion);
vector3f.mul(f4);
vector3f.add(f, f1, f2);
}

View file

@ -10,8 +10,6 @@ import java.util.UUID;
import javax.annotation.Nullable;
import com.simibubi.create.foundation.utility.ContraptionData;
import org.apache.commons.lang3.mutable.MutableInt;
import org.apache.commons.lang3.tuple.MutablePair;
@ -37,6 +35,7 @@ import com.simibubi.create.foundation.collision.Matrix3d;
import com.simibubi.create.foundation.mixin.accessor.ServerLevelAccessor;
import com.simibubi.create.foundation.networking.AllPackets;
import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.ContraptionData;
import com.simibubi.create.foundation.utility.VecHelper;
import net.minecraft.client.Minecraft;
@ -47,6 +46,7 @@ import net.minecraft.nbt.Tag;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.chat.Component;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.SynchedEntityData;
@ -587,7 +587,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
}
@Override
public Packet<?> getAddEntityPacket() {
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}

View file

@ -79,6 +79,8 @@ import com.simibubi.create.foundation.utility.UniqueLinkedList;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.HolderGetter;
import net.minecraft.core.registries.Registries;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.NbtUtils;
@ -836,6 +838,7 @@ public abstract class Contraption {
}
private void readBlocksCompound(Tag compound, Level world, boolean usePalettedDeserialization) {
HolderGetter<Block> holderGetter = world.holderLookup(Registries.BLOCK);
HashMapPalette<BlockState> palette = null;
ListTag blockList;
if (usePalettedDeserialization) {
@ -847,7 +850,7 @@ public abstract class Contraption {
ListTag list = c.getList("Palette", 10);
palette.values.clear();
for (int i = 0; i < list.size(); ++i)
palette.values.add(NbtUtils.readBlockState(list.getCompound(i)));
palette.values.add(NbtUtils.readBlockState(holderGetter, list.getCompound(i)));
blockList = c.getList("BlockList", 10);
} else {
@ -859,7 +862,7 @@ public abstract class Contraption {
CompoundTag c = (CompoundTag) e;
StructureBlockInfo info =
usePalettedDeserialization ? readStructureBlockInfo(c, finalPalette) : legacyReadStructureBlockInfo(c);
usePalettedDeserialization ? readStructureBlockInfo(c, finalPalette) : legacyReadStructureBlockInfo(c, holderGetter);
this.blocks.put(info.pos, info);
@ -902,9 +905,9 @@ public abstract class Contraption {
blockListEntry.contains("Data") ? blockListEntry.getCompound("Data") : null);
}
private static StructureBlockInfo legacyReadStructureBlockInfo(CompoundTag blockListEntry) {
private static StructureBlockInfo legacyReadStructureBlockInfo(CompoundTag blockListEntry, HolderGetter<Block> holderGetter) {
return new StructureBlockInfo(NbtUtils.readBlockPos(blockListEntry.getCompound("Pos")),
NbtUtils.readBlockState(blockListEntry.getCompound("Block")),
NbtUtils.readBlockState(holderGetter, blockListEntry.getCompound("Block")),
blockListEntry.contains("Data") ? blockListEntry.getCompound("Data") : null);
}

View file

@ -1,11 +1,12 @@
package com.simibubi.create.content.contraptions.components.structureMovement.bearing;
import org.joml.Quaternionf;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.api.instance.DynamicInstance;
import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
import com.mojang.math.Quaternion;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.content.contraptions.base.BackHalfShaftInstance;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
@ -20,15 +21,15 @@ public class BearingInstance<B extends KineticTileEntity & IBearingTileEntity> e
final OrientedData topInstance;
final Vector3f rotationAxis;
final Quaternion blockOrientation;
final Axis rotationAxis;
final Quaternionf blockOrientation;
public BearingInstance(MaterialManager modelManager, B tile) {
super(modelManager, tile);
this.bearing = tile;
Direction facing = blockState.getValue(BlockStateProperties.FACING);
rotationAxis = Direction.get(Direction.AxisDirection.POSITIVE, axis).step();
rotationAxis = Axis.of(Direction.get(Direction.AxisDirection.POSITIVE, axis).step());
blockOrientation = getBlockStateOrientation(facing);
@ -44,7 +45,7 @@ public class BearingInstance<B extends KineticTileEntity & IBearingTileEntity> e
public void beginFrame() {
float interpolatedAngle = bearing.getInterpolatedAngle(AnimationTickHolder.getPartialTicks() - 1);
Quaternion rot = rotationAxis.rotationDegrees(interpolatedAngle);
Quaternionf rot = rotationAxis.rotationDegrees(interpolatedAngle);
rot.mul(blockOrientation);
@ -63,16 +64,16 @@ public class BearingInstance<B extends KineticTileEntity & IBearingTileEntity> e
topInstance.delete();
}
static Quaternion getBlockStateOrientation(Direction facing) {
Quaternion orientation;
static Quaternionf getBlockStateOrientation(Direction facing) {
Quaternionf orientation;
if (facing.getAxis().isHorizontal()) {
orientation = Vector3f.YP.rotationDegrees(AngleHelper.horizontalAngle(facing.getOpposite()));
orientation = Axis.YP.rotationDegrees(AngleHelper.horizontalAngle(facing.getOpposite()));
} else {
orientation = Quaternion.ONE.copy();
orientation = new Quaternionf();
}
orientation.mul(Vector3f.XP.rotationDegrees(-90 - AngleHelper.verticalAngle(facing)));
orientation.mul(Axis.XP.rotationDegrees(-90 - AngleHelper.verticalAngle(facing)));
return orientation;
}
}

View file

@ -1,11 +1,12 @@
package com.simibubi.create.content.contraptions.components.structureMovement.bearing;
import org.joml.Quaternionf;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.core.Materials;
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
import com.mojang.math.Quaternion;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.content.contraptions.base.flwdata.RotatingData;
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
@ -23,8 +24,8 @@ public class StabilizedBearingInstance extends ActorInstance {
final RotatingData shaft;
final Direction facing;
final Vector3f rotationAxis;
final Quaternion blockOrientation;
final Axis rotationAxis;
final Quaternionf blockOrientation;
public StabilizedBearingInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, MovementContext context) {
super(materialManager, simulationWorld, context);
@ -32,7 +33,7 @@ public class StabilizedBearingInstance extends ActorInstance {
BlockState blockState = context.state;
facing = blockState.getValue(BlockStateProperties.FACING);
rotationAxis = Direction.get(Direction.AxisDirection.POSITIVE, facing.getAxis()).step();
rotationAxis = Axis.of(Direction.get(Direction.AxisDirection.POSITIVE, facing.getAxis()).step());
blockOrientation = BearingInstance.getBlockStateOrientation(facing);
@ -60,7 +61,7 @@ public class StabilizedBearingInstance extends ActorInstance {
public void beginFrame() {
float counterRotationAngle = StabilizedBearingMovementBehaviour.getCounterRotationAngle(context, facing, AnimationTickHolder.getPartialTicks());
Quaternion rotation = rotationAxis.rotationDegrees(counterRotationAngle);
Quaternionf rotation = rotationAxis.rotationDegrees(counterRotationAngle);
rotation.mul(blockOrientation);

View file

@ -2,10 +2,12 @@ package com.simibubi.create.content.contraptions.components.structureMovement.be
import javax.annotation.Nullable;
import org.joml.Quaternionf;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
import com.mojang.math.Quaternion;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.ControlledContraptionEntity;
@ -22,7 +24,6 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@ -42,13 +43,13 @@ public class StabilizedBearingMovementBehaviour implements MovementBehaviour {
float renderPartialTicks = AnimationTickHolder.getPartialTicks();
// rotate to match blockstate
Quaternion orientation = BearingInstance.getBlockStateOrientation(facing);
Quaternionf orientation = BearingInstance.getBlockStateOrientation(facing);
// rotate against parent
float angle = getCounterRotationAngle(context, facing, renderPartialTicks) * facing.getAxisDirection()
.getStep();
Quaternion rotation = facing.step()
Quaternionf rotation = Axis.of(facing.step())
.rotationDegrees(angle);
rotation.mul(orientation);
@ -81,7 +82,7 @@ public class StabilizedBearingMovementBehaviour implements MovementBehaviour {
return 0;
float offset = 0;
Axis axis = facing.getAxis();
Direction.Axis axis = facing.getAxis();
AbstractContraptionEntity entity = context.contraption.entity;
if (entity instanceof ControlledContraptionEntity) {

View file

@ -27,6 +27,7 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.Tag;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand;
@ -260,7 +261,7 @@ public class SuperGlueEntity extends Entity implements IEntityAdditionalSpawnDat
}
@Override
public Packet<?> getAddEntityPacket() {
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}

View file

@ -12,7 +12,7 @@ import com.jozufozu.flywheel.light.LightVolume;
import com.jozufozu.flywheel.light.TickingLightListener;
import com.jozufozu.flywheel.util.box.GridAlignedBB;
import com.jozufozu.flywheel.util.box.ImmutableBox;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance;
@ -29,7 +29,7 @@ public abstract class AbstractPulleyInstance extends ShaftInstance implements Dy
protected float offset;
protected final Direction rotatingAbout;
protected final Vector3f rotationAxis;
protected final Axis rotationAxis;
private final GridAlignedBB volume = new GridAlignedBB();
private final LightVolume light;
@ -38,7 +38,7 @@ public abstract class AbstractPulleyInstance extends ShaftInstance implements Dy
super(dispatcher, tile);
rotatingAbout = Direction.get(Direction.AxisDirection.POSITIVE, axis);
rotationAxis = rotatingAbout.step();
rotationAxis = Axis.of(rotatingAbout.step());
coil = getCoilModel().createInstance()
.setPosition(getInstancePosition());

View file

@ -1,7 +1,8 @@
package com.simibubi.create.content.contraptions.components.structureMovement.render;
import org.joml.Matrix4f;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Matrix4f;
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
@ -23,11 +24,6 @@ public class ContraptionMatrices {
private boolean ready;
public ContraptionMatrices() {
world.setIdentity();
light.setIdentity();
}
public void setup(PoseStack viewProjection, AbstractContraptionEntity entity) {
float partialTicks = AnimationTickHolder.getPartialTicks();
@ -42,8 +38,8 @@ public class ContraptionMatrices {
translateToEntity(world, entity, partialTicks);
light.load(world);
light.multiply(model.last()
light.set(world);
light.mul(model.last()
.pose());
ready = true;
@ -53,8 +49,8 @@ public class ContraptionMatrices {
clearStack(modelViewProjection);
clearStack(viewProjection);
clearStack(model);
world.setIdentity();
light.setIdentity();
world.identity();
light.identity();
ready = false;
}
@ -85,7 +81,7 @@ public class ContraptionMatrices {
public static void transform(PoseStack ms, PoseStack transform) {
ms.last()
.pose()
.multiply(transform.last()
.mul(transform.last()
.pose());
ms.last()
.normal()

View file

@ -1,9 +1,9 @@
package com.simibubi.create.content.contraptions.components.structureMovement.render;
import org.joml.Matrix4f;
import org.lwjgl.opengl.GL20;
import com.jozufozu.flywheel.core.shader.WorldProgram;
import com.mojang.math.Matrix4f;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.phys.AABB;

View file

@ -5,6 +5,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.joml.Matrix4f;
import com.jozufozu.flywheel.backend.Backend;
import com.jozufozu.flywheel.backend.gl.GlStateTracker;
import com.jozufozu.flywheel.backend.instancing.Engine;
@ -19,7 +21,6 @@ import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
import com.jozufozu.flywheel.event.BeginFrameEvent;
import com.jozufozu.flywheel.event.RenderLayerEvent;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Matrix4f;
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
import com.simibubi.create.foundation.render.CreateContexts;
@ -90,7 +91,7 @@ public class FlwContraption extends ContraptionRenderInfo {
public void beginFrame(BeginFrameEvent event) {
super.beginFrame(event);
modelViewPartial.setIdentity();
modelViewPartial.identity();
modelViewPartialReady = false;
if (!isVisible()) return;
@ -172,7 +173,7 @@ public class FlwContraption extends ContraptionRenderInfo {
float y = (float) (Mth.lerp(pt, entity.yOld, entity.getY()) - camY);
float z = (float) (Mth.lerp(pt, entity.zOld, entity.getZ()) - camZ);
matrix.setTranslation(x, y, z);
matrix.multiply(modelMatrix);
matrix.mul(modelMatrix);
}
public void tick() {

View file

@ -1,6 +1,7 @@
package com.simibubi.create.content.contraptions.components.structureMovement.train;
import com.mojang.math.Vector3f;
import org.joml.Vector3f;
import com.simibubi.create.AllItems;
import com.simibubi.create.foundation.networking.AllPackets;
import com.simibubi.create.foundation.utility.VecHelper;

View file

@ -5,7 +5,7 @@ import static net.minecraft.util.Mth.lerp;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.CreateClient;
import com.simibubi.create.content.contraptions.KineticDebugger;
@ -23,7 +23,7 @@ import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.Direction;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.vehicle.AbstractMinecart;
import net.minecraft.world.level.block.Blocks;
@ -133,8 +133,8 @@ public class CouplingRenderer {
roll = roll > 0 ? Mth.sin(roll) * roll * rollAmplifier / 10.0F * cart.getHurtDir() : 0;
Vec3 positionVec = new Vec3(xIn, yIn, zIn);
Vec3 frontVec = positionVec.add(VecHelper.rotate(new Vec3(.5, 0, 0), 180 - yaw, Axis.Y));
Vec3 backVec = positionVec.add(VecHelper.rotate(new Vec3(-.5, 0, 0), 180 - yaw, Axis.Y));
Vec3 frontVec = positionVec.add(VecHelper.rotate(new Vec3(.5, 0, 0), 180 - yaw, Direction.Axis.Y));
Vec3 backVec = positionVec.add(VecHelper.rotate(new Vec3(-.5, 0, 0), 180 - yaw, Direction.Axis.Y));
Vec3 railVecOfPos = cart.getPos(xIn, yIn, zIn);
boolean flip = false;
@ -196,20 +196,20 @@ public class CouplingRenderer {
public Vec3 apply(Vec3 vec) {
vec = vec.add(offset, 0, 0);
vec = VecHelper.rotate(vec, roll, Axis.X);
vec = VecHelper.rotate(vec, pitch, Axis.Z);
vec = VecHelper.rotate(vec, yaw, Axis.Y);
vec = VecHelper.rotate(vec, roll, Direction.Axis.X);
vec = VecHelper.rotate(vec, pitch, Direction.Axis.Z);
vec = VecHelper.rotate(vec, yaw, Direction.Axis.Y);
return vec.add(x, y, z);
}
public void apply(PoseStack ms) {
ms.translate(x, y, z);
ms.mulPose(Vector3f.YP.rotationDegrees(yaw));
ms.mulPose(Vector3f.ZP.rotationDegrees(pitch));
ms.mulPose(Vector3f.XP.rotationDegrees(roll));
ms.mulPose(Axis.YP.rotationDegrees(yaw));
ms.mulPose(Axis.ZP.rotationDegrees(pitch));
ms.mulPose(Axis.XP.rotationDegrees(roll));
ms.translate(offset, 0, 0);
if (flip)
ms.mulPose(Vector3f.YP.rotationDegrees(180));
ms.mulPose(Axis.YP.rotationDegrees(180));
}
}

View file

@ -4,7 +4,7 @@ import java.util.Random;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.content.contraptions.processing.EmptyingByBasin;
import com.simibubi.create.content.contraptions.relays.belt.BeltHelper;
import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack;
@ -20,7 +20,6 @@ import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.item.ItemStack;
@ -67,7 +66,7 @@ public class ItemDrainRenderer extends SmartTileEntityRenderer<ItemDrainTileEnti
.scale(.5f - offset);
ms.translate(offsetVec.x, offsetVec.y, offsetVec.z);
boolean alongX = insertedFrom.getClockWise()
.getAxis() == Axis.X;
.getAxis() == Direction.Axis.X;
if (!alongX)
sideOffset *= -1;
ms.translate(alongX ? sideOffset : 0, 0, alongX ? 0 : sideOffset);
@ -87,9 +86,9 @@ public class ItemDrainRenderer extends SmartTileEntityRenderer<ItemDrainTileEnti
int positive = insertedFrom.getAxisDirection()
.getStep();
float verticalAngle = positive * offset * 360;
if (insertedFrom.getAxis() != Axis.X)
if (insertedFrom.getAxis() != Direction.Axis.X)
msr.rotateX(verticalAngle);
if (insertedFrom.getAxis() != Axis.Z)
if (insertedFrom.getAxis() != Direction.Axis.Z)
msr.rotateZ(-verticalAngle);
if (renderUpright) {
@ -99,13 +98,13 @@ public class ItemDrainRenderer extends SmartTileEntityRenderer<ItemDrainTileEnti
Vec3 vectorForOffset = itemPosition.add(offsetVec);
Vec3 diff = vectorForOffset.subtract(positionVec);
if (insertedFrom.getAxis() != Axis.X)
diff = VecHelper.rotate(diff, verticalAngle, Axis.X);
if (insertedFrom.getAxis() != Axis.Z)
diff = VecHelper.rotate(diff, -verticalAngle, Axis.Z);
if (insertedFrom.getAxis() != Direction.Axis.X)
diff = VecHelper.rotate(diff, verticalAngle, Direction.Axis.X);
if (insertedFrom.getAxis() != Direction.Axis.Z)
diff = VecHelper.rotate(diff, -verticalAngle, Direction.Axis.Z);
float yRot = (float) Mth.atan2(diff.z, -diff.x);
ms.mulPose(Vector3f.YP.rotation((float) (yRot - Math.PI / 2)));
ms.mulPose(Axis.YP.rotation((float) (yRot - Math.PI / 2)));
}
ms.translate(0, 0, -1 / 16f);
}

View file

@ -1,7 +1,8 @@
package com.simibubi.create.content.contraptions.fluids.particle;
import org.joml.Quaternionf;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Quaternion;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.contraptions.processing.BasinTileEntity;
import com.simibubi.create.foundation.utility.VecHelper;
@ -83,8 +84,8 @@ public class BasinFluidParticle extends FluidStackParticle {
@Override
public void render(VertexConsumer vb, Camera info, float pt) {
Quaternion rotation = info.rotation();
Quaternion prevRotation = new Quaternion(rotation);
Quaternionf rotation = info.rotation();
Quaternionf prevRotation = new Quaternionf(rotation);
rotation.set(1, 0, 0, 1);
rotation.normalize();
super.render(vb, info, pt);

View file

@ -7,7 +7,8 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
import com.mojang.math.Vector3f;
import org.joml.Vector3f;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.content.contraptions.components.deployer.ManualApplicationRecipe;

View file

@ -3,13 +3,14 @@ package com.simibubi.create.content.contraptions.relays.belt;
import java.util.ArrayList;
import java.util.function.Supplier;
import org.joml.Quaternionf;
import com.jozufozu.flywheel.api.InstanceData;
import com.jozufozu.flywheel.api.Instancer;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Quaternion;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.contraptions.base.KineticTileInstance;
@ -20,6 +21,7 @@ import com.simibubi.create.foundation.render.AllMaterialSpecs;
import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.core.Direction;
import net.minecraft.util.Mth;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.level.LightLayer;
@ -161,7 +163,7 @@ public class BeltInstance extends KineticTileInstance<BeltTileEntity> {
float rotY = facing.toYRot() + ((diagonal ^ alongX) && !downward ? 180 : 0) + (sideways && alongZ ? 180 : 0) + (vertical && alongX ? 90 : 0);
float rotZ = (sideways ? 90 : 0) + (vertical && alongX ? 90 : 0);
Quaternion q = new Quaternion(rotX, rotY, rotZ, true);
Quaternionf q = new Quaternionf().rotationXYZ(rotX * Mth.DEG_TO_RAD, rotY * Mth.DEG_TO_RAD, rotZ * Mth.DEG_TO_RAD);
key.setScrollTexture(spriteShift)
.setScrollMult(diagonal ? 3f / 8f : 0.5f)

View file

@ -8,7 +8,7 @@ import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllSpriteShifts;
@ -31,7 +31,6 @@ import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.Direction.AxisDirection;
import net.minecraft.core.Vec3i;
import net.minecraft.util.Mth;
@ -70,7 +69,7 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
boolean start = part == BeltPart.START;
boolean end = part == BeltPart.END;
boolean sideways = beltSlope == BeltSlope.SIDEWAYS;
boolean alongX = facing.getAxis() == Axis.X;
boolean alongX = facing.getAxis() == Direction.Axis.X;
PoseStack localTransforms = new PoseStack();
TransformStack msr = TransformStack.cast(localTransforms);
@ -133,8 +132,8 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
PoseStack stack = new PoseStack();
TransformStack stacker = TransformStack.cast(stack);
stacker.centre();
if (dir.getAxis() == Axis.X) stacker.rotateY(90);
if (dir.getAxis() == Axis.Y) stacker.rotateX(90);
if (dir.getAxis() == Direction.Axis.X) stacker.rotateY(90);
if (dir.getAxis() == Direction.Axis.Y) stacker.rotateX(90);
stacker.rotateX(90);
stacker.unCentre();
return stack;
@ -192,7 +191,7 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
.getValue(BeltBlock.SLOPE);
int verticality = slope == BeltSlope.DOWNWARD ? -1 : slope == BeltSlope.UPWARD ? 1 : 0;
boolean slopeAlongX = beltFacing
.getAxis() == Axis.X;
.getAxis() == Direction.Axis.X;
boolean onContraption = te.getLevel() instanceof WrappedWorld;
@ -225,14 +224,14 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
slope != BeltSlope.HORIZONTAL && Mth.clamp(offset, .5f, te.beltLength - .5f) == offset;
boolean tiltForward = (slope == BeltSlope.DOWNWARD ^ beltFacing
.getAxisDirection() == AxisDirection.POSITIVE) == (beltFacing
.getAxis() == Axis.Z);
.getAxis() == Direction.Axis.Z);
float slopeAngle = onSlope ? tiltForward ? -45 : 45 : 0;
ms.translate(offsetVec.x, offsetVec.y, offsetVec.z);
boolean alongX = beltFacing
.getClockWise()
.getAxis() == Axis.X;
.getAxis() == Direction.Axis.X;
if (!alongX)
sideOffset *= -1;
ms.translate(alongX ? sideOffset : 0, 0, alongX ? 0 : sideOffset);
@ -251,7 +250,7 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
if (slopeShadowOnly)
ms.pushPose();
if (!renderUpright || slopeShadowOnly)
ms.mulPose(new Vector3f(slopeAlongX ? 0 : 1, 0, slopeAlongX ? 1 : 0).rotationDegrees(slopeAngle));
ms.mulPose((slopeAlongX ? Axis.ZP : Axis.XP).rotationDegrees(slopeAngle));
if (onSlope)
ms.translate(0, slopeOffset, 0);
ms.pushPose();
@ -270,7 +269,7 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
Vec3 vectorForOffset = BeltHelper.getVectorForOffset(te, offset);
Vec3 diff = vectorForOffset.subtract(positionVec);
float yRot = (float) (Mth.atan2(diff.x, diff.z) + Math.PI);
ms.mulPose(Vector3f.YP.rotation(yRot));
ms.mulPose(Axis.YP.rotation(yRot));
}
ms.translate(0, 3 / 32d, 1 / 16f);
}
@ -278,10 +277,10 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
for (int i = 0; i <= count; i++) {
ms.pushPose();
ms.mulPose(Vector3f.YP.rotationDegrees(transported.angle));
ms.mulPose(Axis.YP.rotationDegrees(transported.angle));
if (!blockItem && !renderUpright) {
ms.translate(0, -.09375, 0);
ms.mulPose(Vector3f.XP.rotationDegrees(90));
ms.mulPose(Axis.XP.rotationDegrees(90));
}
if (blockItem) {
@ -294,7 +293,7 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
if (!renderUpright) {
if (!blockItem)
ms.mulPose(Vector3f.YP.rotationDegrees(10));
ms.mulPose(Axis.YP.rotationDegrees(10));
ms.translate(0, blockItem ? 1 / 64d : 1 / 16d, 0);
} else
ms.translate(0, 0, -1 / 16f);

View file

@ -4,7 +4,8 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import com.mojang.math.Vector3f;
import org.joml.Vector3f;
import com.simibubi.create.AllItems;
import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock;
import com.simibubi.create.foundation.config.AllConfigs;

View file

@ -4,7 +4,7 @@ import com.jozufozu.flywheel.api.Instancer;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
@ -13,7 +13,6 @@ import com.simibubi.create.content.contraptions.base.flwdata.RotatingData;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.Direction.AxisDirection;
public class BracketedKineticTileInstance extends SingleRotatingInstance {
@ -34,7 +33,7 @@ public class BracketedKineticTileInstance extends SingleRotatingInstance {
// mesh properly
float speed = blockEntity.getSpeed();
Axis axis = KineticTileEntityRenderer.getRotationAxisOf(blockEntity);
Direction.Axis axis = KineticTileEntityRenderer.getRotationAxisOf(blockEntity);
BlockPos pos = blockEntity.getBlockPos();
float offset = BracketedKineticTileRenderer.getShaftAngleOffset(axis, pos);
Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE);
@ -50,19 +49,19 @@ public class BracketedKineticTileInstance extends SingleRotatingInstance {
if (!ICogWheel.isLargeCog(blockEntity.getBlockState()))
return super.getModel();
Axis axis = KineticTileEntityRenderer.getRotationAxisOf(blockEntity);
Direction.Axis axis = KineticTileEntityRenderer.getRotationAxisOf(blockEntity);
Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE);
return getRotatingMaterial().getModel(AllBlockPartials.SHAFTLESS_LARGE_COGWHEEL, blockState, facing,
() -> this.rotateToAxis(axis));
}
private PoseStack rotateToAxis(Axis axis) {
private PoseStack rotateToAxis(Direction.Axis axis) {
Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE);
PoseStack poseStack = new PoseStack();
TransformStack.cast(poseStack)
.centre()
.rotateToFace(facing)
.multiply(Vector3f.XN.rotationDegrees(-90))
.multiply(Axis.XN.rotationDegrees(-90))
.unCentre();
return poseStack;
}

View file

@ -11,6 +11,7 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType;
import com.simibubi.create.foundation.utility.NBTHelper;
import net.minecraft.core.registries.Registries;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.NbtUtils;
import net.minecraft.world.level.Level;
@ -123,7 +124,7 @@ public class BracketedTileEntityBehaviour extends TileEntityBehaviour {
@Override
public void read(CompoundTag nbt, boolean clientPacket) {
if (nbt.contains("Bracket"))
bracket = NbtUtils.readBlockState(nbt.getCompound("Bracket"));
bracket = NbtUtils.readBlockState(getWorld().holderLookup(Registries.BLOCK), nbt.getCompound("Bracket"));
if (clientPacket && nbt.contains("Redraw"))
getWorld().sendBlockUpdated(getPos(), tileEntity.getBlockState(), tileEntity.getBlockState(), 16);
super.read(nbt, clientPacket);

View file

@ -8,7 +8,7 @@ import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.content.contraptions.base.IRotate;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
@ -99,7 +99,7 @@ public class EncasedCogInstance extends KineticTileInstance<KineticTileEntity> {
TransformStack.cast(poseStack)
.centre()
.rotateToFace(facing)
.multiply(Vector3f.XN.rotationDegrees(90))
.multiply(Axis.XN.rotationDegrees(90))
.unCentre();
return poseStack;
});

View file

@ -1,6 +1,7 @@
package com.simibubi.create.content.contraptions.relays.gauge;
import com.mojang.math.Vector3f;
import org.joml.Vector3f;
import com.simibubi.create.AllTileEntities;
import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock;
import com.simibubi.create.content.contraptions.base.IRotate;

View file

@ -1,7 +1,7 @@
package com.simibubi.create.content.contraptions.wrench;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer;
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueHandler;
@ -21,7 +21,7 @@ public class WrenchItemRenderer extends CustomRenderedItemModelRenderer<WrenchMo
float xOffset = -1/16f;
ms.translate(-xOffset, 0, 0);
ms.mulPose(Vector3f.YP.rotationDegrees(ScrollValueHandler.getScroll(AnimationTickHolder.getPartialTicks())));
ms.mulPose(Axis.YP.rotationDegrees(ScrollValueHandler.getScroll(AnimationTickHolder.getPartialTicks())));
ms.translate(xOffset, 0, 0);
renderer.render(model.getPartial("gear"), light);

View file

@ -1,9 +1,11 @@
package com.simibubi.create.content.curiosities.bell;
import org.joml.Quaternionf;
import org.joml.Vector3f;
import com.jozufozu.flywheel.backend.ShadersModHandler;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Quaternion;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import net.minecraft.client.Camera;
import net.minecraft.client.multiplayer.ClientLevel;
@ -27,11 +29,11 @@ public class CustomRotationParticle extends SimpleAnimatedParticle {
this.setSprite(sprite.get(loopFrame, loopLength));
}
public Quaternion getCustomRotation(Camera camera, float partialTicks) {
Quaternion quaternion = new Quaternion(camera.rotation());
public Quaternionf getCustomRotation(Camera camera, float partialTicks) {
Quaternionf quaternion = new Quaternionf(camera.rotation());
if (roll != 0.0F) {
float angle = Mth.lerp(partialTicks, oRoll, roll);
quaternion.mul(Vector3f.ZP.rotation(angle));
quaternion.mul(Axis.ZP.rotation(angle));
}
return quaternion;
}
@ -51,10 +53,10 @@ public class CustomRotationParticle extends SimpleAnimatedParticle {
};
float scale = getQuadSize(partialTicks);
Quaternion rotation = getCustomRotation(camera, partialTicks);
Quaternionf rotation = getCustomRotation(camera, partialTicks);
for(int i = 0; i < 4; ++i) {
Vector3f vertex = vertices[i];
vertex.transform(rotation);
vertex.rotate(rotation);
vertex.mul(scale);
vertex.add(originX, originY, originZ);
}

View file

@ -1,7 +1,8 @@
package com.simibubi.create.content.curiosities.bell;
import com.mojang.math.Quaternion;
import com.mojang.math.Vector3f;
import org.joml.Quaternionf;
import com.mojang.math.Axis;
import com.simibubi.create.AllParticleTypes;
import net.minecraft.client.Camera;
@ -36,8 +37,8 @@ public class SoulBaseParticle extends CustomRotationParticle {
}
@Override
public Quaternion getCustomRotation(Camera camera, float partialTicks) {
return Vector3f.XP.rotationDegrees(90);
public Quaternionf getCustomRotation(Camera camera, float partialTicks) {
return Axis.XP.rotationDegrees(90);
}
public static class Data extends BasicParticleData<SoulBaseParticle> {

View file

@ -1,8 +1,9 @@
package com.simibubi.create.content.curiosities.bell;
import org.joml.Quaternionf;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Quaternion;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllParticleTypes;
import net.minecraft.client.Camera;
@ -11,6 +12,7 @@ import net.minecraft.client.particle.SpriteSet;
import net.minecraft.core.BlockPos;
import net.minecraft.core.particles.ParticleOptions;
import net.minecraft.core.particles.ParticleType;
import net.minecraft.util.Mth;
public class SoulParticle extends CustomRotationParticle {
@ -94,10 +96,10 @@ public class SoulParticle extends CustomRotationParticle {
}
@Override
public Quaternion getCustomRotation(Camera camera, float partialTicks) {
public Quaternionf getCustomRotation(Camera camera, float partialTicks) {
if (isPerimeter)
return Vector3f.XP.rotationDegrees(90);
return new Quaternion(0, -camera.getYRot(), 0, true);
return Axis.XP.rotationDegrees(90);
return new Quaternionf().rotationXYZ(0, -camera.getYRot() * Mth.DEG_TO_RAD, 0);
}
public static class Data extends BasicParticleData<SoulParticle> {

View file

@ -2,7 +2,8 @@ package com.simibubi.create.content.curiosities.deco;
import java.util.List;
import com.mojang.math.Vector3f;
import org.joml.Vector3f;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;

View file

@ -2,9 +2,10 @@ package com.simibubi.create.content.curiosities.symmetry;
import java.util.Random;
import org.joml.Vector3f;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Vector3f;
import com.simibubi.create.AllItems;
import com.simibubi.create.content.curiosities.symmetry.mirror.EmptyMirror;
import com.simibubi.create.content.curiosities.symmetry.mirror.SymmetryMirror;

View file

@ -1,7 +1,9 @@
package com.simibubi.create.content.curiosities.symmetry;
import org.joml.Vector3f;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.content.curiosities.symmetry.mirror.CrossPlaneMirror;
import com.simibubi.create.content.curiosities.symmetry.mirror.EmptyMirror;
import com.simibubi.create.content.curiosities.symmetry.mirror.PlaneMirror;
@ -136,7 +138,7 @@ public class SymmetryWandScreen extends AbstractSimiScreen {
ms.pushPose();
ms.translate(x + 26, y + 39, 20);
ms.scale(16, 16, 16);
ms.mulPose(new Vector3f(.3f, 1f, 0f).rotationDegrees(-22.5f));
ms.mulPose(Axis.of(new Vector3f(.3f, 1f, 0f)).rotationDegrees(-22.5f));
currentElement.applyModelTransform(ms);
// RenderSystem.multMatrix(ms.peek().getModel());
GuiGameElement.of(currentElement.getModel())

View file

@ -1,7 +1,7 @@
package com.simibubi.create.content.curiosities.symmetry.client;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer;
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
@ -29,7 +29,7 @@ public class SymmetryWandItemRenderer extends CustomRenderedItemModelRenderer<Sy
float angle = worldTime * -10 % 360;
ms.translate(0, floating, 0);
ms.mulPose(Vector3f.YP.rotationDegrees(angle));
ms.mulPose(Axis.YP.rotationDegrees(angle));
renderer.renderGlowing(model.getPartial("bits"), maxLight);
}

View file

@ -7,6 +7,7 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.inventory.CraftingContainer;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.CraftingBookCategory;
import net.minecraft.world.item.crafting.CustomRecipe;
import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.level.Level;
@ -15,8 +16,8 @@ import net.minecraftforge.common.Tags;
public class ToolboxDyeingRecipe extends CustomRecipe {
public ToolboxDyeingRecipe(ResourceLocation rl) {
super(rl);
public ToolboxDyeingRecipe(ResourceLocation rl, CraftingBookCategory category) {
super(rl, category);
}
@Override

View file

@ -30,6 +30,7 @@ import net.minecraft.nbt.Tag;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.chat.Component;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
@ -99,7 +100,7 @@ public class BlueprintEntity extends HangingEntity
}
@Override
public Packet<?> getAddEntityPacket() {
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}

View file

@ -1,9 +1,10 @@
package com.simibubi.create.content.curiosities.tools;
import org.joml.Matrix3f;
import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Matrix3f;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.content.curiosities.tools.BlueprintEntity.BlueprintSection;
import com.simibubi.create.foundation.render.CachedBufferer;
@ -62,9 +63,8 @@ public class BlueprintRenderer extends EntityRenderer<BlueprintEntity> {
TransformStack.cast(ms)
.rotateY(vertical ? 0 : -yaw)
.rotateX(fakeNormalXRotation);
Matrix3f copy = ms.last()
.normal()
.copy();
Matrix3f copy = new Matrix3f(ms.last()
.normal());
ms.popPose();
ms.pushPose();
@ -80,7 +80,7 @@ public class BlueprintRenderer extends EntityRenderer<BlueprintEntity> {
PoseStack squashedMS = new PoseStack();
squashedMS.last()
.pose()
.multiply(ms.last()
.mul(ms.last()
.pose());
for (int x = 0; x < entity.size; x++) {
@ -102,7 +102,7 @@ public class BlueprintRenderer extends EntityRenderer<BlueprintEntity> {
squashedMS.last()
.normal()
.load(copy);
.set(copy);
Minecraft.getInstance()
.getItemRenderer()

View file

@ -1,7 +1,9 @@
package com.simibubi.create.content.curiosities.tools;
import org.joml.Vector3f;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.foundation.item.render.CreateCustomRenderedItemModel;
import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer;
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
@ -42,7 +44,7 @@ public class SandPaperItemRenderer extends CustomRenderedItemModelRenderer<SandP
ms.scale(.75f, .75f, .75f);
} else {
int modifier = leftHand ? -1 : 1;
ms.mulPose(Vector3f.YP.rotationDegrees(modifier * 40));
ms.mulPose(Axis.YP.rotationDegrees(modifier * 40));
}
// Reverse bobbing
@ -68,9 +70,9 @@ public class SandPaperItemRenderer extends CustomRenderedItemModelRenderer<SandP
if (itemInUseCount > 0) {
int modifier = leftHand ? -1 : 1;
ms.translate(modifier * .5f, 0, -.25f);
ms.mulPose(Vector3f.ZP.rotationDegrees(modifier * 40));
ms.mulPose(Vector3f.XP.rotationDegrees(modifier * 10));
ms.mulPose(Vector3f.YP.rotationDegrees(modifier * 90));
ms.mulPose(Axis.ZP.rotationDegrees(modifier * 40));
ms.mulPose(Axis.XP.rotationDegrees(modifier * 10));
ms.mulPose(Axis.YP.rotationDegrees(modifier * 90));
}
}

View file

@ -2,7 +2,7 @@ package com.simibubi.create.content.curiosities.weapons;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.CreateClient;
import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer;
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
@ -44,7 +44,7 @@ public class PotatoCannonItemRenderer extends CustomRenderedItemModelRenderer<Po
ms.pushPose();
ms.translate(0, offset, 0);
ms.mulPose(Vector3f.ZP.rotationDegrees(angle));
ms.mulPose(Axis.ZP.rotationDegrees(angle));
ms.translate(0, -offset, 0);
renderer.render(model.getPartial("cog"), light);
ms.popPose();

View file

@ -15,6 +15,7 @@ import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.game.ClientboundGameEventPacket;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.damagesource.DamageSource;
@ -333,7 +334,7 @@ public class PotatoProjectileEntity extends AbstractHurtingProjectile implements
}
@Override
public Packet<?> getAddEntityPacket() {
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}

View file

@ -2,7 +2,7 @@ package com.simibubi.create.content.curiosities.zapper;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.AbstractClientPlayer;
@ -108,15 +108,15 @@ public abstract class ShootableGadgetRenderHandler {
float f6 = Mth.sin(f1 * (float) Math.PI);
ms.translate(flip * (f2 + 0.64F - .1f), f3 + -0.4F + equipProgress * -0.6F, f4 + -0.72F + .3f + recoil);
ms.mulPose(Vector3f.YP.rotationDegrees(flip * 75.0F));
ms.mulPose(Vector3f.YP.rotationDegrees(flip * f6 * 70.0F));
ms.mulPose(Vector3f.ZP.rotationDegrees(flip * f5 * -20.0F));
ms.mulPose(Axis.YP.rotationDegrees(flip * 75.0F));
ms.mulPose(Axis.YP.rotationDegrees(flip * f6 * 70.0F));
ms.mulPose(Axis.ZP.rotationDegrees(flip * f5 * -20.0F));
ms.translate(flip * -1.0F, 3.6F, 3.5F);
ms.mulPose(Vector3f.ZP.rotationDegrees(flip * 120.0F));
ms.mulPose(Vector3f.XP.rotationDegrees(200.0F));
ms.mulPose(Vector3f.YP.rotationDegrees(flip * -135.0F));
ms.mulPose(Axis.ZP.rotationDegrees(flip * 120.0F));
ms.mulPose(Axis.XP.rotationDegrees(200.0F));
ms.mulPose(Axis.YP.rotationDegrees(flip * -135.0F));
ms.translate(flip * 5.6F, 0.0F, 0.0F);
ms.mulPose(Vector3f.YP.rotationDegrees(flip * 40.0F));
ms.mulPose(Axis.YP.rotationDegrees(flip * 40.0F));
transformHand(ms, flip, equipProgress, recoil, pt);
if (rightHand)
playerrenderer.renderRightHand(ms, buffer, light, player);
@ -127,8 +127,8 @@ public abstract class ShootableGadgetRenderHandler {
// Render gadget
ms.pushPose();
ms.translate(flip * (f2 + 0.64F - .1f), f3 + -0.4F + equipProgress * -0.6F, f4 + -0.72F - 0.1f + recoil);
ms.mulPose(Vector3f.YP.rotationDegrees(flip * f6 * 70.0F));
ms.mulPose(Vector3f.ZP.rotationDegrees(flip * f5 * -20.0F));
ms.mulPose(Axis.YP.rotationDegrees(flip * f6 * 70.0F));
ms.mulPose(Axis.ZP.rotationDegrees(flip * f5 * -20.0F));
transformTool(ms, flip, equipProgress, recoil, pt);
firstPersonRenderer.renderItem(mc.player, heldItem,
rightHand ? ItemTransforms.TransformType.FIRST_PERSON_RIGHT_HAND

View file

@ -20,6 +20,7 @@ import net.minecraft.ChatFormatting;
import net.minecraft.client.model.HumanoidModel.ArmPose;
import net.minecraft.client.player.AbstractClientPlayer;
import net.minecraft.core.BlockPos;
import net.minecraft.core.registries.Registries;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.NbtUtils;
import net.minecraft.nbt.Tag;
@ -59,7 +60,7 @@ public abstract class ZapperItem extends Item implements CustomArmPoseItem {
public void appendHoverText(ItemStack stack, Level worldIn, List<Component> tooltip, TooltipFlag flagIn) {
if (stack.hasTag() && stack.getTag()
.contains("BlockUsed")) {
MutableComponent usedBlock = NbtUtils.readBlockState(stack.getTag()
MutableComponent usedBlock = NbtUtils.readBlockState(worldIn.holderLookup(Registries.BLOCK), stack.getTag()
.getCompound("BlockUsed"))
.getBlock()
.getName();
@ -140,7 +141,7 @@ public abstract class ZapperItem extends Item implements CustomArmPoseItem {
BlockState stateToUse = Blocks.AIR.defaultBlockState();
if (nbt.contains("BlockUsed"))
stateToUse = NbtUtils.readBlockState(nbt.getCompound("BlockUsed"));
stateToUse = NbtUtils.readBlockState(world.holderLookup(Registries.BLOCK), nbt.getCompound("BlockUsed"));
stateToUse = BlockHelper.setZeroAge(stateToUse);
CompoundTag data = null;
if (AllBlockTags.SAFE_NBT.matches(stateToUse) && nbt.contains("BlockData", Tag.TAG_COMPOUND)) {

View file

@ -6,7 +6,7 @@ import java.util.Random;
import java.util.function.Supplier;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllSoundEvents;
import com.simibubi.create.CreateClient;
@ -50,7 +50,7 @@ public class ZapperRenderHandler extends ShootableGadgetRenderHandler {
@Override
protected void transformTool(PoseStack ms, float flip, float equipProgress, float recoil, float pt) {
ms.translate(flip * -0.1f, 0.1f, -0.4f);
ms.mulPose(Vector3f.YP.rotationDegrees(flip * 5.0F));
ms.mulPose(Axis.YP.rotationDegrees(flip * 5.0F));
}
@Override

View file

@ -3,7 +3,7 @@ package com.simibubi.create.content.curiosities.zapper;
import java.util.Vector;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.foundation.gui.AbstractSimiScreen;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import com.simibubi.create.foundation.gui.AllIcons;
@ -130,8 +130,8 @@ public abstract class ZapperScreen extends AbstractSimiScreen {
protected void renderBlock(PoseStack ms, int x, int y) {
ms.pushPose();
ms.translate(x + 32, y + 42, 120);
ms.mulPose(new Vector3f(1f, 0, 0).rotationDegrees(-25f));
ms.mulPose(new Vector3f(0, 1f, 0).rotationDegrees(-45f));
ms.mulPose(Axis.XP.rotationDegrees(-25f));
ms.mulPose(Axis.YP.rotationDegrees(-45f));
ms.scale(20, 20, 20);
BlockState state = Blocks.AIR.defaultBlockState();

View file

@ -3,7 +3,7 @@ package com.simibubi.create.content.curiosities.zapper.terrainzapper;
import static java.lang.Math.max;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.content.curiosities.zapper.ZapperItemRenderer;
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
@ -56,7 +56,7 @@ public class WorldshaperItemRenderer extends ZapperItemRenderer<WorldshaperModel
angle %= 360;
float offset = -.155f;
ms.translate(0, offset, 0);
ms.mulPose(Vector3f.ZP.rotationDegrees(angle));
ms.mulPose(Axis.ZP.rotationDegrees(angle));
ms.translate(0, -offset, 0);
renderer.render(model.getPartial("accelerator"), light);
}

View file

@ -121,7 +121,7 @@ public class WorldshaperScreen extends ZapperScreen {
.plainCopy())
.calling(state -> {
currentBrushParams[finalIndex] = state;
label.x = x + 65 + 20 * finalIndex - font.width(label.text) / 2;
label.setX(x + 65 + 20 * finalIndex - font.width(label.text) / 2);
});
input.setState(currentBrushParams[index]);
input.onChanged();

View file

@ -4,7 +4,7 @@ import java.util.Random;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.content.contraptions.relays.belt.BeltHelper;
import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack;
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
@ -16,7 +16,7 @@ import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.Direction;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.item.ItemStack;
@ -59,7 +59,7 @@ public class DepotRenderer extends SafeTileEntityRenderer<DepotTileEntity> {
.getNormal()).scale(.5f - offset);
ms.translate(offsetVec.x, offsetVec.y, offsetVec.z);
boolean alongX = tis.insertedFrom.getClockWise()
.getAxis() == Axis.X;
.getAxis() == Direction.Axis.X;
if (!alongX)
sideOffset *= -1;
ms.translate(alongX ? sideOffset : 0, 0, alongX ? 0 : sideOffset);
@ -117,7 +117,7 @@ public class DepotRenderer extends SafeTileEntityRenderer<DepotTileEntity> {
Vec3 vectorForOffset = itemPosition;
Vec3 diff = vectorForOffset.subtract(positionVec);
float yRot = (float) (Mth.atan2(diff.x, diff.z) + Math.PI);
ms.mulPose(Vector3f.YP.rotation(yRot));
ms.mulPose(Axis.YP.rotation(yRot));
}
ms.translate(0, 3 / 32d, -1 / 16f);
}

View file

@ -1,6 +1,7 @@
package com.simibubi.create.content.logistics.block.depot;
import com.mojang.math.Vector3f;
import org.joml.Vector3f;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems;
import com.simibubi.create.CreateClient;

View file

@ -1,8 +1,9 @@
package com.simibubi.create.content.logistics.block.flap;
import org.joml.Vector3f;
import com.jozufozu.flywheel.api.InstanceData;
import com.jozufozu.flywheel.core.materials.FlatLit;
import com.mojang.math.Vector3f;
import net.minecraft.client.renderer.LightTexture;
import net.minecraft.core.BlockPos;

View file

@ -100,7 +100,7 @@ public class ArmRenderer extends KineticTileEntityRenderer {
ms.last()
.pose()
.multiply(msLocal.last()
.mul(msLocal.last()
.pose());
itemRenderer.renderStatic(item, TransformType.FIXED, light, overlay, ms, buffer, 0);

View file

@ -1,6 +1,7 @@
package com.simibubi.create.content.logistics.block.redstone;
import com.mojang.math.Vector3f;
import org.joml.Vector3f;
import com.simibubi.create.AllTileEntities;
import com.simibubi.create.foundation.block.ITE;

View file

@ -5,7 +5,7 @@ import java.util.List;
import com.simibubi.create.foundation.utility.NBTHelper;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.Tag;
import net.minecraft.network.FriendlyByteBuf;
@ -45,7 +45,7 @@ public class DimensionPalette {
DimensionPalette palette = new DimensionPalette();
int length = buffer.readInt();
for (int i = 0; i < length; i++)
palette.gatheredDims.add(ResourceKey.create(Registry.DIMENSION_REGISTRY, buffer.readResourceLocation()));
palette.gatheredDims.add(ResourceKey.create(Registries.DIMENSION, buffer.readResourceLocation()));
return palette;
}
@ -61,7 +61,7 @@ public class DimensionPalette {
public static DimensionPalette read(CompoundTag tag) {
DimensionPalette palette = new DimensionPalette();
NBTHelper.iterateCompoundList(tag.getList("DimensionPalette", Tag.TAG_COMPOUND), c -> palette.gatheredDims
.add(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(c.getString("Id")))));
.add(ResourceKey.create(Registries.DIMENSION, new ResourceLocation(c.getString("Id")))));
return palette;
}

View file

@ -1,12 +1,13 @@
package com.simibubi.create.content.logistics.trains.entity;
import org.joml.Vector3f;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.api.instance.DynamicInstance;
import com.jozufozu.flywheel.backend.instancing.entity.EntityInstance;
import com.jozufozu.flywheel.util.AnimationTickHolder;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Vector3f;
import com.simibubi.create.foundation.utility.Couple;
import com.simibubi.create.foundation.utility.Iterate;

View file

@ -64,8 +64,8 @@ import net.minecraft.util.Mth;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Explosion.BlockInteraction;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.Level.ExplosionInteraction;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.common.ForgeHooks;
import net.minecraftforge.fluids.FluidStack;
@ -601,7 +601,7 @@ public class Train {
double combinedSpeed = Math.abs(speed) + Math.abs(train.speed);
if (combinedSpeed > .2f) {
Vec3 v = collision.getSecond();
level.explode(null, v.x, v.y, v.z, (float) Math.min(3 * combinedSpeed, 5), BlockInteraction.NONE);
level.explode(null, v.x, v.y, v.z, (float) Math.min(3 * combinedSpeed, 5), ExplosionInteraction.NONE);
}
crash();

View file

@ -2,12 +2,13 @@ package com.simibubi.create.content.logistics.trains.management.display;
import java.util.List;
import org.joml.Matrix4f;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.font.GlyphInfo;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.PoseStack.Pose;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix4f;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;

View file

@ -17,7 +17,7 @@ import com.simibubi.create.foundation.gui.widget.ScrollInput;
import com.simibubi.create.foundation.networking.AllPackets;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.client.gui.components.Widget;
import net.minecraft.client.gui.components.Renderable;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.resources.ResourceLocation;
@ -40,7 +40,7 @@ public class AssemblyScreen extends AbstractStationScreen {
int y = guiTop;
int by = y + background.height - 24;
Widget widget = renderables.get(0);
Renderable widget = renderables.get(0);
if (widget instanceof IconButton ib) {
ib.setIcon(AllIcons.I_PRIORITY_VERY_LOW);
ib.setToolTip(Lang.translateDirect("station.close"));

View file

@ -2,8 +2,9 @@ package com.simibubi.create.content.logistics.trains.management.edgePoint.statio
import java.util.List;
import org.joml.Matrix4f;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Matrix4f;
import net.minecraft.client.StringSplitter;
import net.minecraft.client.gui.Font;

View file

@ -3,9 +3,10 @@ package com.simibubi.create.content.logistics.trains.management.edgePoint.statio
import java.util.Objects;
import java.util.Optional;
import org.joml.Matrix4f;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix4f;
import com.simibubi.create.AllTileEntities;
import com.simibubi.create.Create;
import com.simibubi.create.content.logistics.trains.management.edgePoint.TrackTargetingBehaviour;

View file

@ -57,7 +57,7 @@ public class StationScreen extends AbstractStationScreen {
Consumer<String> onTextChanged;
onTextChanged = s -> nameBox.x = nameBoxX(s, nameBox);
onTextChanged = s -> nameBox.setX(nameBoxX(s, nameBox));
nameBox = new EditBox(new NoShadowFontWrapper(font), x + 23, y + 4, background.width - 20, 10,
Components.literal(station.name));
nameBox.setBordered(false);
@ -67,7 +67,7 @@ public class StationScreen extends AbstractStationScreen {
nameBox.changeFocus(false);
nameBox.mouseClicked(0, 0, 0);
nameBox.setResponder(onTextChanged);
nameBox.x = nameBoxX(nameBox.getValue(), nameBox);
nameBox.setX(nameBoxX(nameBox.getValue(), nameBox));
addRenderableWidget(nameBox);
Runnable assemblyCallback = () -> {
@ -92,7 +92,7 @@ public class StationScreen extends AbstractStationScreen {
.withCallback(() -> AllPackets.channel.sendToServer(StationEditPacket.dropSchedule(te.getBlockPos())));
addRenderableWidget(dropScheduleButton);
onTextChanged = s -> trainNameBox.x = nameBoxX(s, trainNameBox);
onTextChanged = s -> trainNameBox.setX(nameBoxX(s, trainNameBox));
trainNameBox = new EditBox(font, x + 23, y + 47, background.width - 75, 10, Components.immutableEmpty());
trainNameBox.setBordered(false);
trainNameBox.setMaxLength(35);
@ -151,7 +151,7 @@ public class StationScreen extends AbstractStationScreen {
trainNameBox.active = true;
trainNameBox.setValue(imminentTrain.name.getString());
trainNameBox.x = nameBoxX(trainNameBox.getValue(), trainNameBox);
trainNameBox.setX(nameBoxX(trainNameBox.getValue(), trainNameBox));
addRenderableWidget(trainNameBox);
int trainIconWidth = getTrainIconWidth(imminentTrain);

View file

@ -14,7 +14,7 @@ public class WideIconButton extends IconButton {
@Override
protected void drawBg(PoseStack matrixStack, AllGuiTextures button) {
super.drawBg(matrixStack, button);
blit(matrixStack, x + 9, y, button.startX + 1, button.startY, button.width - 1, button.height);
blit(matrixStack, getX() + 9, getY(), button.startX + 1, button.startY, button.width - 1, button.height);
}
}

View file

@ -9,6 +9,7 @@ import java.util.Optional;
import java.util.Set;
import java.util.function.Consumer;
import org.joml.Matrix4f;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL30;
@ -17,7 +18,6 @@ import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.platform.InputConstants;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Matrix4f;
import com.simibubi.create.Create;
import com.simibubi.create.content.logistics.trains.GlobalRailwayManager;
import com.simibubi.create.content.logistics.trains.TrackGraph;
@ -52,7 +52,7 @@ import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.components.EditBox;
import net.minecraft.client.gui.components.Widget;
import net.minecraft.client.gui.components.Renderable;
import net.minecraft.client.renderer.Rect2i;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
@ -368,7 +368,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
else {
renderBackground(matrixStack);
renderBg(matrixStack, partialTicks, mouseX, mouseY);
for (Widget widget : this.renderables)
for (Renderable widget : this.renderables)
widget.render(matrixStack, mouseX, mouseY, partialTicks);
renderForeground(matrixStack, mouseX, mouseY, partialTicks);
}

View file

@ -5,7 +5,7 @@ import java.util.EnumSet;
import com.jozufozu.flywheel.api.MaterialManager;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllTileEntities;
@ -26,7 +26,6 @@ import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.BlockGetter;
@ -49,7 +48,7 @@ import net.minecraftforge.api.distmarker.OnlyIn;
public class StandardBogeyBlock extends Block
implements IBogeyBlock, ITE<StandardBogeyTileEntity>, ProperWaterloggedBlock, ISpecialBlockItemRequirement {
public static final EnumProperty<Axis> AXIS = BlockStateProperties.HORIZONTAL_AXIS;
public static final EnumProperty<Direction.Axis> AXIS = BlockStateProperties.HORIZONTAL_AXIS;
private final boolean large;
public StandardBogeyBlock(Properties p_i48440_1_, boolean large) {
@ -69,7 +68,7 @@ public class StandardBogeyBlock extends Block
@Override
public EnumSet<Direction> getStickySurfaces(BlockGetter world, BlockPos pos, BlockState state) {
return state.getValue(BlockStateProperties.HORIZONTAL_AXIS) == Axis.X ? STICKY_X : STICKY_Z;
return state.getValue(BlockStateProperties.HORIZONTAL_AXIS) == Direction.Axis.X ? STICKY_X : STICKY_Z;
}
@Override
@ -108,12 +107,12 @@ public class StandardBogeyBlock extends Block
public BlockState getMatchingBogey(Direction upDirection, boolean axisAlongFirst) {
if (upDirection != Direction.UP)
return null;
return defaultBlockState().setValue(AXIS, axisAlongFirst ? Axis.X : Axis.Z);
return defaultBlockState().setValue(AXIS, axisAlongFirst ? Direction.Axis.X : Direction.Axis.Z);
}
@Override
public boolean isTrackAxisAlongFirstCoordinate(BlockState state) {
return state.getValue(AXIS) == Axis.X;
return state.getValue(AXIS) == Direction.Axis.X;
}
@Override
@ -122,8 +121,8 @@ public class StandardBogeyBlock extends Block
int light, int overlay) {
if (state != null) {
ms.translate(.5f, .5f, .5f);
if (state.getValue(AXIS) == Axis.X)
ms.mulPose(Vector3f.YP.rotationDegrees(90));
if (state.getValue(AXIS) == Direction.Axis.X)
ms.mulPose(Axis.YP.rotationDegrees(90));
}
ms.translate(0, -1.5 - 1 / 128f, 0);
@ -133,7 +132,7 @@ public class StandardBogeyBlock extends Block
for (int i : Iterate.zeroAndOne)
CachedBufferer.block(AllBlocks.SHAFT.getDefaultState()
.setValue(ShaftBlock.AXIS, Axis.Z))
.setValue(ShaftBlock.AXIS, Direction.Axis.Z))
.translate(-.5f, .25f, i * -1)
.centre()
.rotateZ(wheelAngle)
@ -168,7 +167,7 @@ public class StandardBogeyBlock extends Block
private void renderLargeBogey(float wheelAngle, PoseStack ms, int light, VertexConsumer vb, BlockState air) {
for (int i : Iterate.zeroAndOne)
CachedBufferer.block(AllBlocks.SHAFT.getDefaultState()
.setValue(ShaftBlock.AXIS, Axis.X))
.setValue(ShaftBlock.AXIS, Direction.Axis.X))
.translate(-.5f, .25f, .5f + i * -2)
.centre()
.rotateX(wheelAngle)

View file

@ -25,7 +25,7 @@ import com.simibubi.create.foundation.utility.VecHelper;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.Registries;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.NbtUtils;
@ -203,7 +203,7 @@ public class TrackTileEntity extends SmartTileEntity implements ITransformableTE
if (tag.contains("BoundLocation"))
boundLocation = Pair.of(
ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(tag.getString("BoundDimension"))),
ResourceKey.create(Registries.DIMENSION, new ResourceLocation(tag.getString("BoundDimension"))),
NbtUtils.readBlockPos(tag.getCompound("BoundLocation")));
}

View file

@ -9,8 +9,8 @@ import javax.annotation.Nullable;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.Holder;
import net.minecraft.core.Registry;
import net.minecraft.core.RegistryAccess;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.server.level.ChunkHolder;
import net.minecraft.sounds.SoundEvent;
@ -157,7 +157,7 @@ public class SchematicChunkSource extends ChunkSource {
SoundEvent p_220367_, SoundSource p_220368_, float p_220369_, float p_220370_, long p_220371_) {}
@Override
public void playSeededSound(Player p_220372_, Entity p_220373_, SoundEvent p_220374_, SoundSource p_220375_,
public void playSeededSound(Player p_220372_, Entity p_220373_, Holder<SoundEvent> p_220374_, SoundSource p_220375_,
float p_220376_, float p_220377_, long p_220378_) {}
@Override
@ -213,7 +213,7 @@ public class SchematicChunkSource extends ChunkSource {
}
private static final DummyLevel DUMMY_LEVEL = new DummyLevel(null, null, RegistryAccess.BUILTIN.get()
.registryOrThrow(Registry.DIMENSION_TYPE_REGISTRY)
.registryOrThrow(Registries.DIMENSION_TYPE)
.getHolderOrThrow(BuiltinDimensionTypes.OVERWORLD), null, false, false, 0, 0);
public EmptierChunk(RegistryAccess registryAccess) {

View file

@ -129,7 +129,7 @@ public class SchematicTableScreen extends AbstractSimiContainerScreen<SchematicT
extraAreas = ImmutableList.of(
new Rect2i(x + background.width, y + background.height - 40, 48, 48),
new Rect2i(refreshButton.x, refreshButton.y, refreshButton.getWidth(), refreshButton.getHeight())
new Rect2i(refreshButton.getX(), refreshButton.getY(), refreshButton.getWidth(), refreshButton.getHeight())
);
}

View file

@ -4,7 +4,7 @@ import com.jozufozu.flywheel.backend.Backend;
import com.jozufozu.flywheel.core.model.ModelUtil;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Vector3f;
import com.mojang.math.Axis;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.schematics.block.LaunchedItem.ForBelt;
@ -162,8 +162,8 @@ public class SchematicannonRenderer extends SafeTileEntityRenderer<Schematicanno
ms.translate(blockLocation.x, blockLocation.y, blockLocation.z);
ms.translate(.125f, .125f, .125f);
ms.mulPose(new Vector3f(0, 1, 0).rotationDegrees(360 * t));
ms.mulPose(new Vector3f(1, 0, 0).rotationDegrees(360 * t));
ms.mulPose(Axis.YP.rotationDegrees(360 * t));
ms.mulPose(Axis.XP.rotationDegrees(360 * t));
ms.translate(-.125f, -.125f, -.125f);
if (launched instanceof ForBlockState) {

View file

@ -14,6 +14,7 @@ import com.simibubi.create.content.logistics.item.LinkedControllerServerHandler;
import com.simibubi.create.content.logistics.trains.entity.CarriageEntityHandler;
import com.simibubi.create.foundation.ModFilePackResources;
import com.simibubi.create.foundation.command.AllCommands;
import com.simibubi.create.foundation.utility.Components;
import com.simibubi.create.foundation.utility.ServerSpeedProvider;
import com.simibubi.create.foundation.utility.WorldAttached;
import com.simibubi.create.foundation.utility.recipe.RecipeFinder;
@ -203,8 +204,11 @@ public class CommonEvents {
return;
}
IModFile modFile = modFileInfo.getFile();
event.addRepositorySource((consumer, constructor) -> {
consumer.accept(Pack.create(Create.asResource("legacy_copper").toString(), false, () -> new ModFilePackResources("Create Legacy Copper", modFile, "resourcepacks/legacy_copper"), constructor, Pack.Position.TOP, PackSource.DEFAULT));
event.addRepositorySource(consumer -> {
Pack pack = Pack.readMetaAndCreate(Create.asResource("legacy_copper").toString(), Components.literal("Create Legacy Copper"), false, id -> new ModFilePackResources(id, modFile, "resourcepacks/legacy_copper"), PackType.CLIENT_RESOURCES, Pack.Position.TOP, PackSource.BUILT_IN);
if (pack != null) {
consumer.accept(pack);
}
});
}
}

View file

@ -10,7 +10,7 @@ public class ModFilePackResources extends PathPackResources {
protected final String sourcePath;
public ModFilePackResources(String name, IModFile modFile, String sourcePath) {
super(name, modFile.findResource(sourcePath));
super(name, true, modFile.findResource(sourcePath));
this.modFile = modFile;
this.sourcePath = sourcePath;
}

View file

@ -1,6 +1,6 @@
package com.simibubi.create.foundation.collision;
import com.mojang.math.Matrix4f;
import org.joml.Matrix4f;
import net.minecraft.util.Mth;
import net.minecraft.world.phys.Vec3;
@ -142,7 +142,7 @@ public class Matrix3d {
conversionBuffer[9] = (float) m21;
conversionBuffer[10] = (float) m22;
return new Matrix4f(conversionBuffer);
return new Matrix4f().setTransposed(conversionBuffer);
}
}

View file

@ -133,8 +133,8 @@ public class ConfigModListScreen extends ConfigScreen {
public void render(PoseStack ms, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) {
super.render(ms, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks);
button.x = x + width - 108;
button.y = y + 10;
button.setX(x + width - 108);
button.setY(y + 10);
button.setHeight(height - 20);
button.render(ms, mouseX, mouseY, partialTicks);
}

Some files were not shown because too many files have changed in this diff Show more