mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-02-27 12:24:41 +01:00
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:
parent
7ed2f71a01
commit
f7987570ab
159 changed files with 635 additions and 569 deletions
|
@ -140,7 +140,7 @@ repositories {
|
||||||
dependencies {
|
dependencies {
|
||||||
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
|
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.pin(it, project.registrate_version)
|
||||||
}
|
}
|
||||||
jarJar(group: 'com.jozufozu.flywheel', name: "flywheel-forge-${flywheel_minecraft_version}", version: '[0.6.8,0.6.9)') {
|
jarJar(group: 'com.jozufozu.flywheel', name: "flywheel-forge-${flywheel_minecraft_version}", version: '[0.6.8,0.6.9)') {
|
||||||
|
|
|
@ -5,10 +5,10 @@ org.gradle.daemon = false
|
||||||
|
|
||||||
# mod version info
|
# mod version info
|
||||||
mod_version = 0.5.0.i
|
mod_version = 0.5.0.i
|
||||||
artifact_minecraft_version = 1.19.2
|
artifact_minecraft_version = 1.19.3
|
||||||
|
|
||||||
minecraft_version = 1.19.2
|
minecraft_version = 1.19.3
|
||||||
forge_version = 43.2.4
|
forge_version = 44.1.8
|
||||||
|
|
||||||
# build dependency versions
|
# build dependency versions
|
||||||
forgegradle_version = 5.1.53
|
forgegradle_version = 5.1.53
|
||||||
|
@ -16,16 +16,16 @@ mixingradle_version = 0.7-SNAPSHOT
|
||||||
mixin_version = 0.8.5
|
mixin_version = 0.8.5
|
||||||
librarian_version = 1.+
|
librarian_version = 1.+
|
||||||
cursegradle_version = 1.4.0
|
cursegradle_version = 1.4.0
|
||||||
parchment_version = 2022.11.06
|
parchment_version = 2022.12.18
|
||||||
|
|
||||||
# dependency versions
|
# dependency versions
|
||||||
registrate_version = MC1.19-1.1.5
|
registrate_version = MC1.19.3-1.1.10
|
||||||
flywheel_minecraft_version = 1.19.2
|
flywheel_minecraft_version = 1.19.3
|
||||||
flywheel_version = 0.6.8.a-14
|
flywheel_version = 0.6.8.a-1
|
||||||
jei_minecraft_version = 1.19.2
|
jei_minecraft_version = 1.19.3
|
||||||
jei_version = 11.2.0.254
|
jei_version = 12.1.1.13
|
||||||
curios_minecraft_version = 1.19.2
|
curios_minecraft_version = 1.19.3
|
||||||
curios_version = 5.1.1.0
|
curios_version = 5.1.2.0
|
||||||
|
|
||||||
# curseforge information
|
# curseforge information
|
||||||
projectId = 328085
|
projectId = 328085
|
||||||
|
|
|
@ -242,7 +242,7 @@ import com.tterrag.registrate.util.entry.BlockEntry;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.core.Direction.Axis;
|
import net.minecraft.core.Direction.Axis;
|
||||||
import net.minecraft.core.Direction.AxisDirection;
|
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.data.recipes.ShapelessRecipeBuilder;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.tags.BlockTags;
|
import net.minecraft.tags.BlockTags;
|
||||||
|
@ -572,7 +572,7 @@ public class AllBlocks {
|
||||||
.transform(axeOrPickaxe())
|
.transform(axeOrPickaxe())
|
||||||
.transform(BuilderTransformers.cuckooClock())
|
.transform(BuilderTransformers.cuckooClock())
|
||||||
.lang("Cuckoo Clock")
|
.lang("Cuckoo Clock")
|
||||||
.onRegisterAfter(Registry.ITEM_REGISTRY, c -> TooltipHelper.referTo(c, CUCKOO_CLOCK))
|
.onRegisterAfter(Registries.ITEM, c -> TooltipHelper.referTo(c, CUCKOO_CLOCK))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
public static final BlockEntry<MillstoneBlock> MILLSTONE = REGISTRATE.block("millstone", MillstoneBlock::new)
|
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))
|
.unlockedBy("has_seat", RegistrateRecipeProvider.has(AllItemTags.SEATS.tag))
|
||||||
.save(p, Create.asResource("crafting/kinetics/" + c.getName() + "_from_other_seat"));
|
.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)
|
.tag(AllBlockTags.SEATS.tag)
|
||||||
.item()
|
.item()
|
||||||
.tag(AllItemTags.SEATS.tag)
|
.tag(AllItemTags.SEATS.tag)
|
||||||
|
@ -1955,7 +1955,7 @@ public class AllBlocks {
|
||||||
.withExistingParent(colourName + "_toolbox", p.modLoc("block/toolbox/block"))
|
.withExistingParent(colourName + "_toolbox", p.modLoc("block/toolbox/block"))
|
||||||
.texture("0", p.modLoc("block/toolbox/" + colourName)));
|
.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)
|
.tag(AllBlockTags.TOOLBOXES.tag)
|
||||||
.item(UncontainableBlockItem::new)
|
.item(UncontainableBlockItem::new)
|
||||||
.model((c, p) -> p.withExistingParent(colourName + "_toolbox", p.modLoc("block/toolbox/item"))
|
.model((c, p) -> p.withExistingParent(colourName + "_toolbox", p.modLoc("block/toolbox/item"))
|
||||||
|
|
|
@ -31,14 +31,14 @@ import com.simibubi.create.foundation.utility.Lang;
|
||||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||||
import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo;
|
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.resources.ResourceLocation;
|
||||||
import net.minecraft.world.Container;
|
import net.minecraft.world.Container;
|
||||||
import net.minecraft.world.item.crafting.Recipe;
|
import net.minecraft.world.item.crafting.Recipe;
|
||||||
import net.minecraft.world.item.crafting.RecipeSerializer;
|
import net.minecraft.world.item.crafting.RecipeSerializer;
|
||||||
import net.minecraft.world.item.crafting.RecipeType;
|
import net.minecraft.world.item.crafting.RecipeType;
|
||||||
import net.minecraft.world.item.crafting.ShapedRecipe;
|
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.minecraft.world.level.Level;
|
||||||
import net.minecraftforge.eventbus.api.IEventBus;
|
import net.minecraftforge.eventbus.api.IEventBus;
|
||||||
import net.minecraftforge.registries.DeferredRegister;
|
import net.minecraftforge.registries.DeferredRegister;
|
||||||
|
@ -66,7 +66,7 @@ public enum AllRecipeTypes implements IRecipeTypeInfo {
|
||||||
MECHANICAL_CRAFTING(MechanicalCraftingRecipe.Serializer::new),
|
MECHANICAL_CRAFTING(MechanicalCraftingRecipe.Serializer::new),
|
||||||
SEQUENCED_ASSEMBLY(SequencedAssemblyRecipeSerializer::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 ResourceLocation id;
|
||||||
private final RegistryObject<RecipeSerializer<?>> serializerObject;
|
private final RegistryObject<RecipeSerializer<?>> serializerObject;
|
||||||
|
@ -141,7 +141,7 @@ public enum AllRecipeTypes implements IRecipeTypeInfo {
|
||||||
|
|
||||||
private static class Registers {
|
private static class Registers {
|
||||||
private static final DeferredRegister<RecipeSerializer<?>> SERIALIZER_REGISTER = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, Create.ID);
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,9 +10,10 @@ import java.util.function.Supplier;
|
||||||
|
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonObject;
|
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.Vec3i;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.data.CachedOutput;
|
import net.minecraft.data.CachedOutput;
|
||||||
import net.minecraft.data.DataGenerator;
|
import net.minecraft.data.DataGenerator;
|
||||||
import net.minecraft.data.DataProvider;
|
import net.minecraft.data.DataProvider;
|
||||||
|
@ -311,7 +312,7 @@ public class AllSoundEvents {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void register(RegisterEvent event) {
|
public static void register(RegisterEvent event) {
|
||||||
event.register(Registry.SOUND_EVENT_REGISTRY, helper -> {
|
event.register(Registries.SOUND_EVENT, helper -> {
|
||||||
for (SoundEntry entry : ALL.values())
|
for (SoundEntry entry : ALL.values())
|
||||||
entry.register(helper);
|
entry.register(helper);
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,14 +2,14 @@ package com.simibubi.create;
|
||||||
|
|
||||||
import com.simibubi.create.content.schematics.SchematicProcessor;
|
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.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorType;
|
||||||
import net.minecraftforge.eventbus.api.IEventBus;
|
import net.minecraftforge.eventbus.api.IEventBus;
|
||||||
import net.minecraftforge.registries.DeferredRegister;
|
import net.minecraftforge.registries.DeferredRegister;
|
||||||
import net.minecraftforge.registries.RegistryObject;
|
import net.minecraftforge.registries.RegistryObject;
|
||||||
|
|
||||||
public class AllStructureProcessorTypes {
|
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);
|
public static final RegistryObject<StructureProcessorType<SchematicProcessor>> SCHEMATIC = REGISTER.register("schematic", () -> () -> SchematicProcessor.CODEC);
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.simibubi.create.compat.curios;
|
package com.simibubi.create.compat.curios;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.math.Vector3f;
|
import com.mojang.math.Axis;
|
||||||
import com.simibubi.create.Create;
|
import com.simibubi.create.Create;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
@ -46,16 +46,16 @@ public class GogglesCurioRenderer implements ICurioRenderer {
|
||||||
// Translate and rotate with our head
|
// Translate and rotate with our head
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
matrixStack.translate(model.head.x / 16.0, model.head.y / 16.0, model.head.z / 16.0);
|
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(Axis.YP.rotation(model.head.yRot));
|
||||||
matrixStack.mulPose(Vector3f.XP.rotation(model.head.xRot));
|
matrixStack.mulPose(Axis.XP.rotation(model.head.xRot));
|
||||||
|
|
||||||
// Translate and scale to our head
|
// Translate and scale to our head
|
||||||
matrixStack.translate(0, -0.25, 0);
|
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);
|
matrixStack.scale(0.625f, 0.625f, 0.625f);
|
||||||
|
|
||||||
if(!slotContext.entity().getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
|
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);
|
matrixStack.translate(0, -0.25, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import java.util.Optional;
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.compat.jei.category.animations.AnimatedKinetics;
|
||||||
import com.simibubi.create.content.contraptions.processing.ItemApplicationRecipe;
|
import com.simibubi.create.content.contraptions.processing.ItemApplicationRecipe;
|
||||||
import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
|
import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
|
||||||
|
@ -82,8 +82,8 @@ public class ItemApplicationCategory extends CreateRecipeCategory<ItemApplicatio
|
||||||
|
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
matrixStack.translate(74, 51, 100);
|
matrixStack.translate(74, 51, 100);
|
||||||
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
|
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
|
||||||
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
|
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
|
||||||
int scale = 20;
|
int scale = 20;
|
||||||
|
|
||||||
GuiGameElement.of(state)
|
GuiGameElement.of(state)
|
||||||
|
|
|
@ -6,7 +6,7 @@ import java.util.function.Supplier;
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics;
|
import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics;
|
||||||
|
@ -54,8 +54,8 @@ public abstract class ProcessingViaFanCategory<T extends Recipe<?>> extends Crea
|
||||||
|
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
translateFan(matrixStack);
|
translateFan(matrixStack);
|
||||||
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-12.5f));
|
matrixStack.mulPose(Axis.XP.rotationDegrees(-12.5f));
|
||||||
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
|
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
|
||||||
|
|
||||||
AnimatedKinetics.defaultBlockElement(AllBlockPartials.ENCASED_FAN_INNER)
|
AnimatedKinetics.defaultBlockElement(AllBlockPartials.ENCASED_FAN_INNER)
|
||||||
.rotateBlock(180, 0, AnimatedKinetics.getCurrentAngle() * 16)
|
.rotateBlock(180, 0, AnimatedKinetics.getCurrentAngle() * 16)
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.compat.jei.category.animations;
|
||||||
import com.jozufozu.flywheel.core.PartialModel;
|
import com.jozufozu.flywheel.core.PartialModel;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Vector3f;
|
import com.mojang.math.Axis;
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.AllSpriteShifts;
|
import com.simibubi.create.AllSpriteShifts;
|
||||||
|
@ -31,8 +31,8 @@ public class AnimatedBlazeBurner extends AnimatedKinetics {
|
||||||
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
|
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
matrixStack.translate(xOffset, yOffset, 200);
|
matrixStack.translate(xOffset, yOffset, 200);
|
||||||
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
|
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
|
||||||
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
|
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
|
||||||
int scale = 23;
|
int scale = 23;
|
||||||
|
|
||||||
float offset = (Mth.sin(AnimationTickHolder.getRenderTime() / 16f) + 0.5f) / 16f;
|
float offset = (Mth.sin(AnimationTickHolder.getRenderTime() / 16f) + 0.5f) / 16f;
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
package com.simibubi.create.compat.jei.category.animations;
|
package com.simibubi.create.compat.jei.category.animations;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.math.Vector3f;
|
import com.mojang.math.Axis;
|
||||||
import com.simibubi.create.AllBlocks;
|
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.BlockState;
|
||||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||||
|
|
||||||
public class AnimatedCrushingWheels extends AnimatedKinetics {
|
public class AnimatedCrushingWheels extends AnimatedKinetics {
|
||||||
|
|
||||||
private final BlockState wheel = AllBlocks.CRUSHING_WHEEL.getDefaultState()
|
private final BlockState wheel = AllBlocks.CRUSHING_WHEEL.getDefaultState()
|
||||||
.setValue(BlockStateProperties.AXIS, Axis.X);
|
.setValue(BlockStateProperties.AXIS, Direction.Axis.X);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
|
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
matrixStack.translate(xOffset, yOffset, 100);
|
matrixStack.translate(xOffset, yOffset, 100);
|
||||||
matrixStack.mulPose(Vector3f.YP.rotationDegrees(-22.5f));
|
matrixStack.mulPose(Axis.YP.rotationDegrees(-22.5f));
|
||||||
int scale = 22;
|
int scale = 22;
|
||||||
|
|
||||||
blockElement(wheel)
|
blockElement(wheel)
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
package com.simibubi.create.compat.jei.category.animations;
|
package com.simibubi.create.compat.jei.category.animations;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.content.contraptions.components.deployer.DeployerBlock;
|
import com.simibubi.create.content.contraptions.components.deployer.DeployerBlock;
|
||||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||||
|
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
|
||||||
|
|
||||||
public class AnimatedDeployer extends AnimatedKinetics {
|
public class AnimatedDeployer extends AnimatedKinetics {
|
||||||
|
|
||||||
|
@ -16,11 +15,11 @@ public class AnimatedDeployer extends AnimatedKinetics {
|
||||||
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
|
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
matrixStack.translate(xOffset, yOffset, 100);
|
matrixStack.translate(xOffset, yOffset, 100);
|
||||||
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
|
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
|
||||||
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
|
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
|
||||||
int scale = 20;
|
int scale = 20;
|
||||||
|
|
||||||
blockElement(shaft(Axis.Z))
|
blockElement(shaft(Direction.Axis.Z))
|
||||||
.rotateBlock(0, 0, getCurrentAngle())
|
.rotateBlock(0, 0, getCurrentAngle())
|
||||||
.scale(scale)
|
.scale(scale)
|
||||||
.render(matrixStack);
|
.render(matrixStack);
|
||||||
|
|
|
@ -2,7 +2,7 @@ package com.simibubi.create.compat.jei.category.animations;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.Tesselator;
|
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.AllBlocks;
|
||||||
import com.simibubi.create.foundation.fluid.FluidRenderer;
|
import com.simibubi.create.foundation.fluid.FluidRenderer;
|
||||||
import com.simibubi.create.foundation.gui.UIRenderHelper;
|
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) {
|
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
matrixStack.translate(xOffset, yOffset, 100);
|
matrixStack.translate(xOffset, yOffset, 100);
|
||||||
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
|
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
|
||||||
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
|
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
|
||||||
int scale = 20;
|
int scale = 20;
|
||||||
|
|
||||||
blockElement(AllBlocks.ITEM_DRAIN.getDefaultState())
|
blockElement(AllBlocks.ITEM_DRAIN.getDefaultState())
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.simibubi.create.compat.jei.category.animations;
|
package com.simibubi.create.compat.jei.category.animations;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
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) {
|
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
matrixStack.translate(xOffset, yOffset, 200);
|
matrixStack.translate(xOffset, yOffset, 200);
|
||||||
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
|
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
|
||||||
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
|
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
|
||||||
int scale = 23;
|
int scale = 23;
|
||||||
|
|
||||||
blockElement(cogwheel())
|
blockElement(cogwheel())
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package com.simibubi.create.compat.jei.category.animations;
|
package com.simibubi.create.compat.jei.category.animations;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||||
|
|
||||||
import net.minecraft.core.Direction.Axis;
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
public class AnimatedPress extends AnimatedKinetics {
|
public class AnimatedPress extends AnimatedKinetics {
|
||||||
|
|
||||||
|
@ -20,11 +20,11 @@ public class AnimatedPress extends AnimatedKinetics {
|
||||||
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
|
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
matrixStack.translate(xOffset, yOffset, 200);
|
matrixStack.translate(xOffset, yOffset, 200);
|
||||||
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
|
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
|
||||||
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
|
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
|
||||||
int scale = basin ? 23 : 24;
|
int scale = basin ? 23 : 24;
|
||||||
|
|
||||||
blockElement(shaft(Axis.Z))
|
blockElement(shaft(Direction.Axis.Z))
|
||||||
.rotateBlock(0, 0, getCurrentAngle())
|
.rotateBlock(0, 0, getCurrentAngle())
|
||||||
.scale(scale)
|
.scale(scale)
|
||||||
.render(matrixStack);
|
.render(matrixStack);
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
package com.simibubi.create.compat.jei.category.animations;
|
package com.simibubi.create.compat.jei.category.animations;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.content.contraptions.components.saw.SawBlock;
|
import com.simibubi.create.content.contraptions.components.saw.SawBlock;
|
||||||
|
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
|
||||||
|
|
||||||
public class AnimatedSaw extends AnimatedKinetics {
|
public class AnimatedSaw extends AnimatedKinetics {
|
||||||
|
|
||||||
|
@ -17,11 +16,11 @@ public class AnimatedSaw extends AnimatedKinetics {
|
||||||
matrixStack.translate(xOffset, yOffset, 0);
|
matrixStack.translate(xOffset, yOffset, 0);
|
||||||
matrixStack.translate(0, 0, 200);
|
matrixStack.translate(0, 0, 200);
|
||||||
matrixStack.translate(2, 22, 0);
|
matrixStack.translate(2, 22, 0);
|
||||||
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
|
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
|
||||||
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f + 90));
|
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f + 90));
|
||||||
int scale = 25;
|
int scale = 25;
|
||||||
|
|
||||||
blockElement(shaft(Axis.X))
|
blockElement(shaft(Direction.Axis.X))
|
||||||
.rotateBlock(-getCurrentAngle(), 0, 0)
|
.rotateBlock(-getCurrentAngle(), 0, 0)
|
||||||
.scale(scale)
|
.scale(scale)
|
||||||
.render(matrixStack);
|
.render(matrixStack);
|
||||||
|
|
|
@ -5,7 +5,7 @@ import java.util.List;
|
||||||
import com.mojang.blaze3d.platform.Lighting;
|
import com.mojang.blaze3d.platform.Lighting;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.Tesselator;
|
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.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.foundation.fluid.FluidRenderer;
|
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) {
|
public void draw(PoseStack matrixStack, int xOffset, int yOffset) {
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
matrixStack.translate(xOffset, yOffset, 100);
|
matrixStack.translate(xOffset, yOffset, 100);
|
||||||
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
|
matrixStack.mulPose(Axis.XP.rotationDegrees(-15.5f));
|
||||||
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
|
matrixStack.mulPose(Axis.YP.rotationDegrees(22.5f));
|
||||||
int scale = 20;
|
int scale = 20;
|
||||||
|
|
||||||
blockElement(AllBlocks.SPOUT.getDefaultState())
|
blockElement(AllBlocks.SPOUT.getDefaultState())
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.simibubi.create.content.contraptions.base.flwdata;
|
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 com.simibubi.create.foundation.block.render.SpriteShiftEntry;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||||
|
@ -18,11 +19,11 @@ public class BeltData extends KineticData {
|
||||||
float maxV;
|
float maxV;
|
||||||
byte scrollMult;
|
byte scrollMult;
|
||||||
|
|
||||||
public BeltData setRotation(Quaternion q) {
|
public BeltData setRotation(Quaternionf q) {
|
||||||
this.qX = q.i();
|
this.qX = q.x();
|
||||||
this.qY = q.j();
|
this.qY = q.y();
|
||||||
this.qZ = q.k();
|
this.qZ = q.z();
|
||||||
this.qW = q.r();
|
this.qW = q.w();
|
||||||
markDirty();
|
markDirty();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.simibubi.create.content.contraptions.base.flwdata;
|
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.Batched;
|
||||||
import com.jozufozu.flywheel.api.struct.Instanced;
|
import com.jozufozu.flywheel.api.struct.Instanced;
|
||||||
import com.jozufozu.flywheel.api.struct.StructWriter;
|
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.layout.BufferLayout;
|
||||||
import com.jozufozu.flywheel.core.model.ModelTransformer;
|
import com.jozufozu.flywheel.core.model.ModelTransformer;
|
||||||
import com.jozufozu.flywheel.util.RenderMath;
|
import com.jozufozu.flywheel.util.RenderMath;
|
||||||
import com.mojang.math.Quaternion;
|
|
||||||
import com.simibubi.create.content.contraptions.KineticDebugger;
|
import com.simibubi.create.content.contraptions.KineticDebugger;
|
||||||
import com.simibubi.create.foundation.render.AllInstanceFormats;
|
import com.simibubi.create.foundation.render.AllInstanceFormats;
|
||||||
import com.simibubi.create.foundation.render.AllProgramSpecs;
|
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)
|
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()
|
.unCentre()
|
||||||
.light(d.getPackedLight());
|
.light(d.getPackedLight());
|
||||||
if (KineticDebugger.isActive()) {
|
if (KineticDebugger.isActive()) {
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
package com.simibubi.create.content.contraptions.base.flwdata;
|
package com.simibubi.create.content.contraptions.base.flwdata;
|
||||||
|
|
||||||
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.core.materials.BasicData;
|
import com.jozufozu.flywheel.core.materials.BasicData;
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
import com.simibubi.create.foundation.utility.Color;
|
import com.simibubi.create.foundation.utility.Color;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.simibubi.create.content.contraptions.base.flwdata;
|
package com.simibubi.create.content.contraptions.base.flwdata;
|
||||||
|
|
||||||
import com.mojang.math.Vector3f;
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.simibubi.create.content.contraptions.base.flwdata;
|
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.Batched;
|
||||||
import com.jozufozu.flywheel.api.struct.Instanced;
|
import com.jozufozu.flywheel.api.struct.Instanced;
|
||||||
import com.jozufozu.flywheel.api.struct.StructWriter;
|
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.layout.BufferLayout;
|
||||||
import com.jozufozu.flywheel.core.model.ModelTransformer;
|
import com.jozufozu.flywheel.core.model.ModelTransformer;
|
||||||
import com.jozufozu.flywheel.util.RenderMath;
|
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.content.contraptions.KineticDebugger;
|
||||||
import com.simibubi.create.foundation.render.AllInstanceFormats;
|
import com.simibubi.create.foundation.render.AllInstanceFormats;
|
||||||
import com.simibubi.create.foundation.render.AllProgramSpecs;
|
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) {
|
public void transform(RotatingData d, ModelTransformer.Params b) {
|
||||||
float angle = ((AnimationTickHolder.getRenderTime() * d.rotationalSpeed * 3f / 10 + d.rotationOffset) % 360);
|
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())
|
b.light(d.getPackedLight())
|
||||||
.translate(d.x + 0.5, d.y + 0.5, d.z + 0.5)
|
.translate(d.x + 0.5, d.y + 0.5, d.z + 0.5)
|
||||||
.multiply(axis.rotationDegrees(angle))
|
.multiply(axis.rotationDegrees(angle))
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
package com.simibubi.create.content.contraptions.components.actors;
|
package com.simibubi.create.content.contraptions.components.actors;
|
||||||
|
|
||||||
|
import org.joml.Quaternionf;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.Material;
|
import com.jozufozu.flywheel.api.Material;
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||||
import com.mojang.math.Quaternion;
|
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.content.contraptions.components.actors.flwdata.ActorData;
|
import com.simibubi.create.content.contraptions.components.actors.flwdata.ActorData;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
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 com.simibubi.create.foundation.utility.VecHelper;
|
||||||
|
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
|
||||||
public class DrillActorInstance extends ActorInstance {
|
public class DrillActorInstance extends ActorInstance {
|
||||||
|
@ -45,7 +47,7 @@ public class DrillActorInstance extends ActorInstance {
|
||||||
.setBlockLight(localBlockLight())
|
.setBlockLight(localBlockLight())
|
||||||
.setRotationOffset(0)
|
.setRotationOffset(0)
|
||||||
.setRotationAxis(0, 0, 1)
|
.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));
|
.setSpeed(getSpeed(facing));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
|
@ -122,7 +123,7 @@ public class SeatEntity extends Entity implements IEntityAdditionalSpawnData {
|
||||||
protected void addAdditionalSaveData(CompoundTag p_213281_1_) {}
|
protected void addAdditionalSaveData(CompoundTag p_213281_1_) {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Packet<?> getAddEntityPacket() {
|
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||||
return NetworkHooks.getEntitySpawningPacket(this);
|
return NetworkHooks.getEntitySpawningPacket(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
package com.simibubi.create.content.contraptions.components.actors.flwdata;
|
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.jozufozu.flywheel.api.InstanceData;
|
||||||
import com.mojang.math.Quaternion;
|
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
|
||||||
|
@ -83,11 +84,11 @@ public class ActorData extends InstanceData {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActorData setLocalRotation(Quaternion q) {
|
public ActorData setLocalRotation(Quaternionf q) {
|
||||||
this.qX = q.i();
|
this.qX = q.x();
|
||||||
this.qY = q.j();
|
this.qY = q.y();
|
||||||
this.qZ = q.k();
|
this.qZ = q.z();
|
||||||
this.qW = q.r();
|
this.qW = q.w();
|
||||||
markDirty();
|
markDirty();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.damagesource.DamageSource;
|
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.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
@ -83,9 +83,9 @@ public class CuckooClockTileEntity extends KineticTileEntity {
|
||||||
moveHands(hours, minutes);
|
moveHands(hours, minutes);
|
||||||
|
|
||||||
if (AnimationTickHolder.getTicks() % 6 == 0)
|
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)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@ public class CuckooClockTileEntity extends KineticTileEntity {
|
||||||
Vec3 center = VecHelper.getCenterOf(worldPosition);
|
Vec3 center = VecHelper.getCenterOf(worldPosition);
|
||||||
level.destroyBlock(worldPosition, false);
|
level.destroyBlock(worldPosition, false);
|
||||||
level.explode(null, CUCKOO_SURPRISE, null, center.x, center.y, center.z, 3, 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 (animationType == Animation.NONE) {
|
||||||
if (AnimationTickHolder.getTicks() % 32 == 0)
|
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)
|
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 {
|
} else {
|
||||||
|
|
||||||
boolean isSurprise = animationType == Animation.SURPRISE;
|
boolean isSurprise = animationType == Animation.SURPRISE;
|
||||||
|
@ -131,9 +131,9 @@ public class CuckooClockTileEntity extends KineticTileEntity {
|
||||||
// sounds
|
// sounds
|
||||||
|
|
||||||
if (value == 1)
|
if (value == 1)
|
||||||
playSound(SoundEvents.NOTE_BLOCK_CHIME, 2, .5f);
|
playSound(SoundEvents.NOTE_BLOCK_CHIME.get(), 2, .5f);
|
||||||
if (value == 21)
|
if (value == 21)
|
||||||
playSound(SoundEvents.NOTE_BLOCK_CHIME, 2, 0.793701f);
|
playSound(SoundEvents.NOTE_BLOCK_CHIME.get(), 2, 0.793701f);
|
||||||
|
|
||||||
if (value > 30 && isSurprise) {
|
if (value > 30 && isSurprise) {
|
||||||
Vec3 pos = VecHelper.offsetRandomly(VecHelper.getCenterOf(this.worldPosition), level.random, .5f);
|
Vec3 pos = VecHelper.offsetRandomly(VecHelper.getCenterOf(this.worldPosition), level.random, .5f);
|
||||||
|
|
|
@ -8,7 +8,7 @@ import com.jozufozu.flywheel.core.PartialModel;
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Vector3f;
|
import com.mojang.math.Axis;
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.AllSpriteShifts;
|
import com.simibubi.create.AllSpriteShifts;
|
||||||
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity.Phase;
|
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.translate(vec.x, vec.y, vec.z);
|
||||||
ms.scale(1 / 2f, 1 / 2f, 1 / 2f);
|
ms.scale(1 / 2f, 1 / 2f, 1 / 2f);
|
||||||
float yRot = AngleHelper.horizontalAngle(facing);
|
float yRot = AngleHelper.horizontalAngle(facing);
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(yRot));
|
ms.mulPose(Axis.YP.rotationDegrees(yRot));
|
||||||
renderItems(te, partialTicks, ms, buffer, light, overlay);
|
renderItems(te, partialTicks, ms, buffer, light, overlay);
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ public class MechanicalCrafterRenderer extends SafeTileEntityRenderer<Mechanical
|
||||||
if (!stack.isEmpty()) {
|
if (!stack.isEmpty()) {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
ms.translate(0, 0, -1 / 256f);
|
ms.translate(0, 0, -1 / 256f);
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(180));
|
ms.mulPose(Axis.YP.rotationDegrees(180));
|
||||||
Minecraft.getInstance()
|
Minecraft.getInstance()
|
||||||
.getItemRenderer()
|
.getItemRenderer()
|
||||||
.renderStatic(stack, TransformType.FIXED, light, overlay, ms, buffer, 0);
|
.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 earlyProgress = Mth.clamp(progress * 2, 0, 1);
|
||||||
float lateProgress = Mth.clamp(progress * 2 - 1, 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 upScaling = earlyProgress * 1.125f;
|
||||||
float downScaling = 1 + (1 - lateProgress) * .125f;
|
float downScaling = 1 + (1 - lateProgress) * .125f;
|
||||||
ms.scale(upScaling, upScaling, upScaling);
|
ms.scale(upScaling, upScaling, upScaling);
|
||||||
|
@ -153,7 +153,7 @@ public class MechanicalCrafterRenderer extends SafeTileEntityRenderer<Mechanical
|
||||||
.intValue() != 0)
|
.intValue() != 0)
|
||||||
return;
|
return;
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(180));
|
ms.mulPose(Axis.YP.rotationDegrees(180));
|
||||||
Minecraft.getInstance()
|
Minecraft.getInstance()
|
||||||
.getItemRenderer()
|
.getItemRenderer()
|
||||||
.renderStatic(stack, TransformType.FIXED, light, overlay, ms, buffer, 0);
|
.renderStatic(stack, TransformType.FIXED, light, overlay, ms, buffer, 0);
|
||||||
|
|
|
@ -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.DirectionalAxisKineticBlock.AXIS_ALONG_FIRST_COORDINATE;
|
||||||
import static com.simibubi.create.content.contraptions.base.DirectionalKineticBlock.FACING;
|
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.MaterialManager;
|
||||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||||
import com.jozufozu.flywheel.api.instance.TickableInstance;
|
import com.jozufozu.flywheel.api.instance.TickableInstance;
|
||||||
import com.jozufozu.flywheel.core.PartialModel;
|
import com.jozufozu.flywheel.core.PartialModel;
|
||||||
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
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.AllBlockPartials;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance;
|
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) {
|
static void updateRotation(OrientedData pole, OrientedData hand, float yRot, float xRot, float zRot) {
|
||||||
|
|
||||||
Quaternion q = Direction.UP.step().rotationDegrees(yRot);
|
Quaternionf q = Axis.YP.rotationDegrees(yRot);
|
||||||
q.mul(Direction.EAST.step().rotationDegrees(xRot));
|
q.mul(Axis.XP.rotationDegrees(xRot));
|
||||||
|
|
||||||
hand.setRotation(q);
|
hand.setRotation(q);
|
||||||
|
|
||||||
q.mul(Direction.SOUTH.step().rotationDegrees(zRot));
|
q.mul(Axis.ZP.rotationDegrees(zRot));
|
||||||
|
|
||||||
pole.setRotation(q);
|
pole.setRotation(q);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Vector3f;
|
import com.mojang.math.Axis;
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.content.contraptions.base.IRotate;
|
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.client.renderer.entity.ItemRenderer;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
|
||||||
import net.minecraft.core.Direction.AxisDirection;
|
import net.minecraft.core.Direction.AxisDirection;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.item.BlockItem;
|
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;
|
float xRot = facing == Direction.UP ? 90 : facing == Direction.DOWN ? 270 : 0;
|
||||||
boolean displayMode = facing == Direction.UP && te.getSpeed() == 0 && !punching;
|
boolean displayMode = facing == Direction.UP && te.getSpeed() == 0 && !punching;
|
||||||
|
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(yRot));
|
ms.mulPose(Axis.YP.rotationDegrees(yRot));
|
||||||
if (!displayMode) {
|
if (!displayMode) {
|
||||||
ms.mulPose(Vector3f.XP.rotationDegrees(xRot));
|
ms.mulPose(Axis.XP.rotationDegrees(xRot));
|
||||||
ms.translate(0, 0, -11 / 16f);
|
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.translate(0, isBlockItem ? 9 / 16f : 11 / 16f, 0);
|
||||||
ms.scale(scale, scale, scale);
|
ms.scale(scale, scale, scale);
|
||||||
transform = TransformType.GROUND;
|
transform = TransformType.GROUND;
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(AnimationTickHolder.getRenderTime(te.getLevel())));
|
ms.mulPose(Axis.YP.rotationDegrees(AnimationTickHolder.getRenderTime(te.getLevel())));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
float scale = punching ? .75f : isBlockItem ? .75f - 1 / 64f : .5f;
|
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 yRot = AngleHelper.horizontalAngle(facing);
|
||||||
float xRot = facing == Direction.UP ? 270 : facing == Direction.DOWN ? 90 : 0;
|
float xRot = facing == Direction.UP ? 270 : facing == Direction.DOWN ? 90 : 0;
|
||||||
float zRot =
|
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;
|
: 0;
|
||||||
|
|
||||||
buffer.rotateCentered(Direction.UP, (float) ((yRot) / 180 * Math.PI));
|
buffer.rotateCentered(Direction.UP, (float) ((yRot) / 180 * Math.PI));
|
||||||
|
@ -188,7 +187,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer<DeployerTileEntity>
|
||||||
m.pushPose();
|
m.pushPose();
|
||||||
|
|
||||||
m.pushPose();
|
m.pushPose();
|
||||||
Axis axis = Axis.Y;
|
Direction.Axis axis = Direction.Axis.Y;
|
||||||
if (context.state.getBlock() instanceof IRotate) {
|
if (context.state.getBlock() instanceof IRotate) {
|
||||||
IRotate def = (IRotate) context.state.getBlock();
|
IRotate def = (IRotate) context.state.getBlock();
|
||||||
axis = def.getRotationAxis(context.state);
|
axis = def.getRotationAxis(context.state);
|
||||||
|
@ -199,11 +198,11 @@ public class DeployerRenderer extends SafeTileEntityRenderer<DeployerTileEntity>
|
||||||
|
|
||||||
TransformStack.cast(m)
|
TransformStack.cast(m)
|
||||||
.centre()
|
.centre()
|
||||||
.rotateY(axis == Axis.Z ? 90 : 0)
|
.rotateY(axis == Direction.Axis.Z ? 90 : 0)
|
||||||
.rotateZ(axis.isHorizontal() ? 90 : 0)
|
.rotateZ(axis.isHorizontal() ? 90 : 0)
|
||||||
.unCentre();
|
.unCentre();
|
||||||
shaft.transform(m);
|
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.popPose();
|
||||||
|
|
||||||
m.translate(offset.x, offset.y, offset.z);
|
m.translate(offset.x, offset.y, offset.z);
|
||||||
|
|
|
@ -19,7 +19,7 @@ import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.level.ClipContext;
|
import net.minecraft.world.level.ClipContext;
|
||||||
import net.minecraft.world.level.ClipContext.Block;
|
import net.minecraft.world.level.ClipContext.Block;
|
||||||
import net.minecraft.world.level.ClipContext.Fluid;
|
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.BlockEntity;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
@ -171,7 +171,7 @@ public class NozzleTileEntity extends SmartTileEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pushing && pushingEntities.size() > 256 && !level.isClientSide) {
|
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();) {
|
for (Iterator<Entity> iterator = pushingEntities.iterator(); iterator.hasNext();) {
|
||||||
Entity entity = iterator.next();
|
Entity entity = iterator.next();
|
||||||
entity.discard();
|
entity.discard();
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
package com.simibubi.create.content.contraptions.components.press;
|
package com.simibubi.create.content.contraptions.components.press;
|
||||||
|
|
||||||
|
import org.joml.Quaternionf;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||||
import com.jozufozu.flywheel.core.Materials;
|
import com.jozufozu.flywheel.core.Materials;
|
||||||
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
||||||
import com.mojang.math.Quaternion;
|
import com.mojang.math.Axis;
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance;
|
import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance;
|
||||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||||
|
@ -25,7 +26,7 @@ public class PressInstance extends ShaftInstance implements DynamicInstance {
|
||||||
.getModel(AllBlockPartials.MECHANICAL_PRESS_HEAD, blockState)
|
.getModel(AllBlockPartials.MECHANICAL_PRESS_HEAD, blockState)
|
||||||
.createInstance();
|
.createInstance();
|
||||||
|
|
||||||
Quaternion q = Vector3f.YP
|
Quaternionf q = Axis.YP
|
||||||
.rotationDegrees(AngleHelper.horizontalAngle(blockState.getValue(MechanicalPressBlock.HORIZONTAL_FACING)));
|
.rotationDegrees(AngleHelper.horizontalAngle(blockState.getValue(MechanicalPressBlock.HORIZONTAL_FACING)));
|
||||||
|
|
||||||
pressHead.setRotation(q);
|
pressHead.setRotation(q);
|
||||||
|
|
|
@ -6,7 +6,7 @@ import com.jozufozu.flywheel.backend.Backend;
|
||||||
import com.jozufozu.flywheel.core.PartialModel;
|
import com.jozufozu.flywheel.core.PartialModel;
|
||||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AllBlockPartials;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
|
||||||
|
@ -132,8 +132,8 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
|
||||||
|
|
||||||
ms.scale(.5f, .5f, .5f);
|
ms.scale(.5f, .5f, .5f);
|
||||||
if (alongZ)
|
if (alongZ)
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(90));
|
ms.mulPose(Axis.YP.rotationDegrees(90));
|
||||||
ms.mulPose(Vector3f.XP.rotationDegrees(90));
|
ms.mulPose(Axis.XP.rotationDegrees(90));
|
||||||
itemRenderer.renderStatic(stack, ItemTransforms.TransformType.FIXED, light, overlay, ms, buffer, 0);
|
itemRenderer.renderStatic(stack, ItemTransforms.TransformType.FIXED, light, overlay, ms, buffer, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.crafting.Recipe;
|
import net.minecraft.world.item.crafting.Recipe;
|
||||||
import net.minecraft.world.item.crafting.RecipeType;
|
import net.minecraft.world.item.crafting.RecipeType;
|
||||||
import net.minecraft.world.item.crafting.StonecutterRecipe;
|
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.Block;
|
||||||
import net.minecraft.world.level.block.CactusBlock;
|
import net.minecraft.world.level.block.CactusBlock;
|
||||||
import net.minecraft.world.level.block.ChorusPlantBlock;
|
import net.minecraft.world.level.block.ChorusPlantBlock;
|
||||||
|
@ -488,7 +488,7 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
|
||||||
if (TreeCutter.isRoot(stateToBreak))
|
if (TreeCutter.isRoot(stateToBreak))
|
||||||
return true;
|
return true;
|
||||||
Block block = stateToBreak.getBlock();
|
Block block = stateToBreak.getBlock();
|
||||||
if (block instanceof BambooBlock)
|
if (block instanceof BambooStalkBlock)
|
||||||
return true;
|
return true;
|
||||||
if (block instanceof StemGrownBlock)
|
if (block instanceof StemGrownBlock)
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package com.simibubi.create.content.contraptions.components.steam;
|
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.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Quaternion;
|
import com.mojang.math.Axis;
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
|
|
||||||
import net.minecraft.client.Camera;
|
import net.minecraft.client.Camera;
|
||||||
import net.minecraft.client.multiplayer.ClientLevel;
|
import net.minecraft.client.multiplayer.ClientLevel;
|
||||||
|
@ -53,11 +55,11 @@ public class SteamJetParticle extends SimpleAnimatedParticle {
|
||||||
float f4 = this.getQuadSize(pPartialTicks);
|
float f4 = this.getQuadSize(pPartialTicks);
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
Quaternion quaternion = new Quaternion(Vector3f.YP, yaw, false);
|
Quaternionf quaternion = Axis.YP.rotation(yaw);
|
||||||
quaternion.mul(Vector3f.XP.rotation(pitch));
|
quaternion.mul(Axis.XP.rotation(pitch));
|
||||||
quaternion.mul(Vector3f.YP.rotation(f3 + Mth.PI / 2 * i + roll));
|
quaternion.mul(Axis.YP.rotation(f3 + Mth.PI / 2 * i + roll));
|
||||||
Vector3f vector3f1 = new Vector3f(-1.0F, -1.0F, 0.0F);
|
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),
|
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) };
|
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) {
|
for (int j = 0; j < 4; ++j) {
|
||||||
Vector3f vector3f = avector3f[j];
|
Vector3f vector3f = avector3f[j];
|
||||||
vector3f.add(0, 1, 0);
|
vector3f.add(0, 1, 0);
|
||||||
vector3f.transform(quaternion);
|
vector3f.rotate(quaternion);
|
||||||
vector3f.mul(f4);
|
vector3f.mul(f4);
|
||||||
vector3f.add(f, f1, f2);
|
vector3f.add(f, f1, f2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,6 @@ import java.util.UUID;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.simibubi.create.foundation.utility.ContraptionData;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.mutable.MutableInt;
|
import org.apache.commons.lang3.mutable.MutableInt;
|
||||||
import org.apache.commons.lang3.tuple.MutablePair;
|
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.mixin.accessor.ServerLevelAccessor;
|
||||||
import com.simibubi.create.foundation.networking.AllPackets;
|
import com.simibubi.create.foundation.networking.AllPackets;
|
||||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||||
|
import com.simibubi.create.foundation.utility.ContraptionData;
|
||||||
import com.simibubi.create.foundation.utility.VecHelper;
|
import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
@ -47,6 +46,7 @@ import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
import net.minecraft.network.syncher.EntityDataAccessor;
|
import net.minecraft.network.syncher.EntityDataAccessor;
|
||||||
import net.minecraft.network.syncher.EntityDataSerializers;
|
import net.minecraft.network.syncher.EntityDataSerializers;
|
||||||
import net.minecraft.network.syncher.SynchedEntityData;
|
import net.minecraft.network.syncher.SynchedEntityData;
|
||||||
|
@ -587,7 +587,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Packet<?> getAddEntityPacket() {
|
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||||
return NetworkHooks.getEntitySpawningPacket(this);
|
return NetworkHooks.getEntitySpawningPacket(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,8 @@ import com.simibubi.create.foundation.utility.UniqueLinkedList;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
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.CompoundTag;
|
||||||
import net.minecraft.nbt.ListTag;
|
import net.minecraft.nbt.ListTag;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
|
@ -836,6 +838,7 @@ public abstract class Contraption {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void readBlocksCompound(Tag compound, Level world, boolean usePalettedDeserialization) {
|
private void readBlocksCompound(Tag compound, Level world, boolean usePalettedDeserialization) {
|
||||||
|
HolderGetter<Block> holderGetter = world.holderLookup(Registries.BLOCK);
|
||||||
HashMapPalette<BlockState> palette = null;
|
HashMapPalette<BlockState> palette = null;
|
||||||
ListTag blockList;
|
ListTag blockList;
|
||||||
if (usePalettedDeserialization) {
|
if (usePalettedDeserialization) {
|
||||||
|
@ -847,7 +850,7 @@ public abstract class Contraption {
|
||||||
ListTag list = c.getList("Palette", 10);
|
ListTag list = c.getList("Palette", 10);
|
||||||
palette.values.clear();
|
palette.values.clear();
|
||||||
for (int i = 0; i < list.size(); ++i)
|
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);
|
blockList = c.getList("BlockList", 10);
|
||||||
} else {
|
} else {
|
||||||
|
@ -859,7 +862,7 @@ public abstract class Contraption {
|
||||||
CompoundTag c = (CompoundTag) e;
|
CompoundTag c = (CompoundTag) e;
|
||||||
|
|
||||||
StructureBlockInfo info =
|
StructureBlockInfo info =
|
||||||
usePalettedDeserialization ? readStructureBlockInfo(c, finalPalette) : legacyReadStructureBlockInfo(c);
|
usePalettedDeserialization ? readStructureBlockInfo(c, finalPalette) : legacyReadStructureBlockInfo(c, holderGetter);
|
||||||
|
|
||||||
this.blocks.put(info.pos, info);
|
this.blocks.put(info.pos, info);
|
||||||
|
|
||||||
|
@ -902,9 +905,9 @@ public abstract class Contraption {
|
||||||
blockListEntry.contains("Data") ? blockListEntry.getCompound("Data") : null);
|
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")),
|
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);
|
blockListEntry.contains("Data") ? blockListEntry.getCompound("Data") : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
package com.simibubi.create.content.contraptions.components.structureMovement.bearing;
|
package com.simibubi.create.content.contraptions.components.structureMovement.bearing;
|
||||||
|
|
||||||
|
import org.joml.Quaternionf;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||||
import com.jozufozu.flywheel.core.PartialModel;
|
import com.jozufozu.flywheel.core.PartialModel;
|
||||||
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
||||||
import com.mojang.math.Quaternion;
|
import com.mojang.math.Axis;
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.content.contraptions.base.BackHalfShaftInstance;
|
import com.simibubi.create.content.contraptions.base.BackHalfShaftInstance;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
|
@ -20,15 +21,15 @@ public class BearingInstance<B extends KineticTileEntity & IBearingTileEntity> e
|
||||||
|
|
||||||
final OrientedData topInstance;
|
final OrientedData topInstance;
|
||||||
|
|
||||||
final Vector3f rotationAxis;
|
final Axis rotationAxis;
|
||||||
final Quaternion blockOrientation;
|
final Quaternionf blockOrientation;
|
||||||
|
|
||||||
public BearingInstance(MaterialManager modelManager, B tile) {
|
public BearingInstance(MaterialManager modelManager, B tile) {
|
||||||
super(modelManager, tile);
|
super(modelManager, tile);
|
||||||
this.bearing = tile;
|
this.bearing = tile;
|
||||||
|
|
||||||
Direction facing = blockState.getValue(BlockStateProperties.FACING);
|
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);
|
blockOrientation = getBlockStateOrientation(facing);
|
||||||
|
|
||||||
|
@ -44,7 +45,7 @@ public class BearingInstance<B extends KineticTileEntity & IBearingTileEntity> e
|
||||||
public void beginFrame() {
|
public void beginFrame() {
|
||||||
|
|
||||||
float interpolatedAngle = bearing.getInterpolatedAngle(AnimationTickHolder.getPartialTicks() - 1);
|
float interpolatedAngle = bearing.getInterpolatedAngle(AnimationTickHolder.getPartialTicks() - 1);
|
||||||
Quaternion rot = rotationAxis.rotationDegrees(interpolatedAngle);
|
Quaternionf rot = rotationAxis.rotationDegrees(interpolatedAngle);
|
||||||
|
|
||||||
rot.mul(blockOrientation);
|
rot.mul(blockOrientation);
|
||||||
|
|
||||||
|
@ -63,16 +64,16 @@ public class BearingInstance<B extends KineticTileEntity & IBearingTileEntity> e
|
||||||
topInstance.delete();
|
topInstance.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
static Quaternion getBlockStateOrientation(Direction facing) {
|
static Quaternionf getBlockStateOrientation(Direction facing) {
|
||||||
Quaternion orientation;
|
Quaternionf orientation;
|
||||||
|
|
||||||
if (facing.getAxis().isHorizontal()) {
|
if (facing.getAxis().isHorizontal()) {
|
||||||
orientation = Vector3f.YP.rotationDegrees(AngleHelper.horizontalAngle(facing.getOpposite()));
|
orientation = Axis.YP.rotationDegrees(AngleHelper.horizontalAngle(facing.getOpposite()));
|
||||||
} else {
|
} 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;
|
return orientation;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
package com.simibubi.create.content.contraptions.components.structureMovement.bearing;
|
package com.simibubi.create.content.contraptions.components.structureMovement.bearing;
|
||||||
|
|
||||||
|
import org.joml.Quaternionf;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.jozufozu.flywheel.core.Materials;
|
import com.jozufozu.flywheel.core.Materials;
|
||||||
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
||||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||||
import com.mojang.math.Quaternion;
|
import com.mojang.math.Axis;
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.content.contraptions.base.flwdata.RotatingData;
|
import com.simibubi.create.content.contraptions.base.flwdata.RotatingData;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||||
|
@ -23,8 +24,8 @@ public class StabilizedBearingInstance extends ActorInstance {
|
||||||
final RotatingData shaft;
|
final RotatingData shaft;
|
||||||
|
|
||||||
final Direction facing;
|
final Direction facing;
|
||||||
final Vector3f rotationAxis;
|
final Axis rotationAxis;
|
||||||
final Quaternion blockOrientation;
|
final Quaternionf blockOrientation;
|
||||||
|
|
||||||
public StabilizedBearingInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, MovementContext context) {
|
public StabilizedBearingInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, MovementContext context) {
|
||||||
super(materialManager, simulationWorld, context);
|
super(materialManager, simulationWorld, context);
|
||||||
|
@ -32,7 +33,7 @@ public class StabilizedBearingInstance extends ActorInstance {
|
||||||
BlockState blockState = context.state;
|
BlockState blockState = context.state;
|
||||||
|
|
||||||
facing = blockState.getValue(BlockStateProperties.FACING);
|
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);
|
blockOrientation = BearingInstance.getBlockStateOrientation(facing);
|
||||||
|
|
||||||
|
@ -60,7 +61,7 @@ public class StabilizedBearingInstance extends ActorInstance {
|
||||||
public void beginFrame() {
|
public void beginFrame() {
|
||||||
float counterRotationAngle = StabilizedBearingMovementBehaviour.getCounterRotationAngle(context, facing, AnimationTickHolder.getPartialTicks());
|
float counterRotationAngle = StabilizedBearingMovementBehaviour.getCounterRotationAngle(context, facing, AnimationTickHolder.getPartialTicks());
|
||||||
|
|
||||||
Quaternion rotation = rotationAxis.rotationDegrees(counterRotationAngle);
|
Quaternionf rotation = rotationAxis.rotationDegrees(counterRotationAngle);
|
||||||
|
|
||||||
rotation.mul(blockOrientation);
|
rotation.mul(blockOrientation);
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,12 @@ package com.simibubi.create.content.contraptions.components.structureMovement.be
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import org.joml.Quaternionf;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.jozufozu.flywheel.core.PartialModel;
|
import com.jozufozu.flywheel.core.PartialModel;
|
||||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
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.AllBlockPartials;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.ControlledContraptionEntity;
|
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.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
|
||||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
@ -42,13 +43,13 @@ public class StabilizedBearingMovementBehaviour implements MovementBehaviour {
|
||||||
float renderPartialTicks = AnimationTickHolder.getPartialTicks();
|
float renderPartialTicks = AnimationTickHolder.getPartialTicks();
|
||||||
|
|
||||||
// rotate to match blockstate
|
// rotate to match blockstate
|
||||||
Quaternion orientation = BearingInstance.getBlockStateOrientation(facing);
|
Quaternionf orientation = BearingInstance.getBlockStateOrientation(facing);
|
||||||
|
|
||||||
// rotate against parent
|
// rotate against parent
|
||||||
float angle = getCounterRotationAngle(context, facing, renderPartialTicks) * facing.getAxisDirection()
|
float angle = getCounterRotationAngle(context, facing, renderPartialTicks) * facing.getAxisDirection()
|
||||||
.getStep();
|
.getStep();
|
||||||
|
|
||||||
Quaternion rotation = facing.step()
|
Quaternionf rotation = Axis.of(facing.step())
|
||||||
.rotationDegrees(angle);
|
.rotationDegrees(angle);
|
||||||
|
|
||||||
rotation.mul(orientation);
|
rotation.mul(orientation);
|
||||||
|
@ -81,7 +82,7 @@ public class StabilizedBearingMovementBehaviour implements MovementBehaviour {
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
float offset = 0;
|
float offset = 0;
|
||||||
Axis axis = facing.getAxis();
|
Direction.Axis axis = facing.getAxis();
|
||||||
AbstractContraptionEntity entity = context.contraption.entity;
|
AbstractContraptionEntity entity = context.contraption.entity;
|
||||||
|
|
||||||
if (entity instanceof ControlledContraptionEntity) {
|
if (entity instanceof ControlledContraptionEntity) {
|
||||||
|
|
|
@ -27,6 +27,7 @@ import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.Tag;
|
import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
|
@ -260,7 +261,7 @@ public class SuperGlueEntity extends Entity implements IEntityAdditionalSpawnDat
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Packet<?> getAddEntityPacket() {
|
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||||
return NetworkHooks.getEntitySpawningPacket(this);
|
return NetworkHooks.getEntitySpawningPacket(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ import com.jozufozu.flywheel.light.LightVolume;
|
||||||
import com.jozufozu.flywheel.light.TickingLightListener;
|
import com.jozufozu.flywheel.light.TickingLightListener;
|
||||||
import com.jozufozu.flywheel.util.box.GridAlignedBB;
|
import com.jozufozu.flywheel.util.box.GridAlignedBB;
|
||||||
import com.jozufozu.flywheel.util.box.ImmutableBox;
|
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.base.KineticTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance;
|
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 float offset;
|
||||||
protected final Direction rotatingAbout;
|
protected final Direction rotatingAbout;
|
||||||
protected final Vector3f rotationAxis;
|
protected final Axis rotationAxis;
|
||||||
|
|
||||||
private final GridAlignedBB volume = new GridAlignedBB();
|
private final GridAlignedBB volume = new GridAlignedBB();
|
||||||
private final LightVolume light;
|
private final LightVolume light;
|
||||||
|
@ -38,7 +38,7 @@ public abstract class AbstractPulleyInstance extends ShaftInstance implements Dy
|
||||||
super(dispatcher, tile);
|
super(dispatcher, tile);
|
||||||
|
|
||||||
rotatingAbout = Direction.get(Direction.AxisDirection.POSITIVE, axis);
|
rotatingAbout = Direction.get(Direction.AxisDirection.POSITIVE, axis);
|
||||||
rotationAxis = rotatingAbout.step();
|
rotationAxis = Axis.of(rotatingAbout.step());
|
||||||
|
|
||||||
coil = getCoilModel().createInstance()
|
coil = getCoilModel().createInstance()
|
||||||
.setPosition(getInstancePosition());
|
.setPosition(getInstancePosition());
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
package com.simibubi.create.content.contraptions.components.structureMovement.render;
|
package com.simibubi.create.content.contraptions.components.structureMovement.render;
|
||||||
|
|
||||||
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AbstractContraptionEntity;
|
||||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||||
|
|
||||||
|
@ -23,11 +24,6 @@ public class ContraptionMatrices {
|
||||||
|
|
||||||
private boolean ready;
|
private boolean ready;
|
||||||
|
|
||||||
public ContraptionMatrices() {
|
|
||||||
world.setIdentity();
|
|
||||||
light.setIdentity();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setup(PoseStack viewProjection, AbstractContraptionEntity entity) {
|
public void setup(PoseStack viewProjection, AbstractContraptionEntity entity) {
|
||||||
float partialTicks = AnimationTickHolder.getPartialTicks();
|
float partialTicks = AnimationTickHolder.getPartialTicks();
|
||||||
|
|
||||||
|
@ -42,8 +38,8 @@ public class ContraptionMatrices {
|
||||||
|
|
||||||
translateToEntity(world, entity, partialTicks);
|
translateToEntity(world, entity, partialTicks);
|
||||||
|
|
||||||
light.load(world);
|
light.set(world);
|
||||||
light.multiply(model.last()
|
light.mul(model.last()
|
||||||
.pose());
|
.pose());
|
||||||
|
|
||||||
ready = true;
|
ready = true;
|
||||||
|
@ -53,8 +49,8 @@ public class ContraptionMatrices {
|
||||||
clearStack(modelViewProjection);
|
clearStack(modelViewProjection);
|
||||||
clearStack(viewProjection);
|
clearStack(viewProjection);
|
||||||
clearStack(model);
|
clearStack(model);
|
||||||
world.setIdentity();
|
world.identity();
|
||||||
light.setIdentity();
|
light.identity();
|
||||||
ready = false;
|
ready = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +81,7 @@ public class ContraptionMatrices {
|
||||||
public static void transform(PoseStack ms, PoseStack transform) {
|
public static void transform(PoseStack ms, PoseStack transform) {
|
||||||
ms.last()
|
ms.last()
|
||||||
.pose()
|
.pose()
|
||||||
.multiply(transform.last()
|
.mul(transform.last()
|
||||||
.pose());
|
.pose());
|
||||||
ms.last()
|
ms.last()
|
||||||
.normal()
|
.normal()
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package com.simibubi.create.content.contraptions.components.structureMovement.render;
|
package com.simibubi.create.content.contraptions.components.structureMovement.render;
|
||||||
|
|
||||||
|
import org.joml.Matrix4f;
|
||||||
import org.lwjgl.opengl.GL20;
|
import org.lwjgl.opengl.GL20;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.core.shader.WorldProgram;
|
import com.jozufozu.flywheel.core.shader.WorldProgram;
|
||||||
import com.mojang.math.Matrix4f;
|
|
||||||
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
|
|
|
@ -5,6 +5,8 @@ import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.backend.Backend;
|
import com.jozufozu.flywheel.backend.Backend;
|
||||||
import com.jozufozu.flywheel.backend.gl.GlStateTracker;
|
import com.jozufozu.flywheel.backend.gl.GlStateTracker;
|
||||||
import com.jozufozu.flywheel.backend.instancing.Engine;
|
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.BeginFrameEvent;
|
||||||
import com.jozufozu.flywheel.event.RenderLayerEvent;
|
import com.jozufozu.flywheel.event.RenderLayerEvent;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AbstractContraptionEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
|
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
|
||||||
import com.simibubi.create.foundation.render.CreateContexts;
|
import com.simibubi.create.foundation.render.CreateContexts;
|
||||||
|
@ -90,7 +91,7 @@ public class FlwContraption extends ContraptionRenderInfo {
|
||||||
public void beginFrame(BeginFrameEvent event) {
|
public void beginFrame(BeginFrameEvent event) {
|
||||||
super.beginFrame(event);
|
super.beginFrame(event);
|
||||||
|
|
||||||
modelViewPartial.setIdentity();
|
modelViewPartial.identity();
|
||||||
modelViewPartialReady = false;
|
modelViewPartialReady = false;
|
||||||
|
|
||||||
if (!isVisible()) return;
|
if (!isVisible()) return;
|
||||||
|
@ -172,7 +173,7 @@ public class FlwContraption extends ContraptionRenderInfo {
|
||||||
float y = (float) (Mth.lerp(pt, entity.yOld, entity.getY()) - camY);
|
float y = (float) (Mth.lerp(pt, entity.yOld, entity.getY()) - camY);
|
||||||
float z = (float) (Mth.lerp(pt, entity.zOld, entity.getZ()) - camZ);
|
float z = (float) (Mth.lerp(pt, entity.zOld, entity.getZ()) - camZ);
|
||||||
matrix.setTranslation(x, y, z);
|
matrix.setTranslation(x, y, z);
|
||||||
matrix.multiply(modelMatrix);
|
matrix.mul(modelMatrix);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void tick() {
|
public void tick() {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.simibubi.create.content.contraptions.components.structureMovement.train;
|
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.AllItems;
|
||||||
import com.simibubi.create.foundation.networking.AllPackets;
|
import com.simibubi.create.foundation.networking.AllPackets;
|
||||||
import com.simibubi.create.foundation.utility.VecHelper;
|
import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
|
|
|
@ -5,7 +5,7 @@ import static net.minecraft.util.Mth.lerp;
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Vector3f;
|
import com.mojang.math.Axis;
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.CreateClient;
|
import com.simibubi.create.CreateClient;
|
||||||
import com.simibubi.create.content.contraptions.KineticDebugger;
|
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.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction.Axis;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.entity.vehicle.AbstractMinecart;
|
import net.minecraft.world.entity.vehicle.AbstractMinecart;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
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;
|
roll = roll > 0 ? Mth.sin(roll) * roll * rollAmplifier / 10.0F * cart.getHurtDir() : 0;
|
||||||
|
|
||||||
Vec3 positionVec = new Vec3(xIn, yIn, zIn);
|
Vec3 positionVec = new Vec3(xIn, yIn, zIn);
|
||||||
Vec3 frontVec = 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, 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);
|
Vec3 railVecOfPos = cart.getPos(xIn, yIn, zIn);
|
||||||
boolean flip = false;
|
boolean flip = false;
|
||||||
|
@ -196,20 +196,20 @@ public class CouplingRenderer {
|
||||||
|
|
||||||
public Vec3 apply(Vec3 vec) {
|
public Vec3 apply(Vec3 vec) {
|
||||||
vec = vec.add(offset, 0, 0);
|
vec = vec.add(offset, 0, 0);
|
||||||
vec = VecHelper.rotate(vec, roll, Axis.X);
|
vec = VecHelper.rotate(vec, roll, Direction.Axis.X);
|
||||||
vec = VecHelper.rotate(vec, pitch, Axis.Z);
|
vec = VecHelper.rotate(vec, pitch, Direction.Axis.Z);
|
||||||
vec = VecHelper.rotate(vec, yaw, Axis.Y);
|
vec = VecHelper.rotate(vec, yaw, Direction.Axis.Y);
|
||||||
return vec.add(x, y, z);
|
return vec.add(x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void apply(PoseStack ms) {
|
public void apply(PoseStack ms) {
|
||||||
ms.translate(x, y, z);
|
ms.translate(x, y, z);
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(yaw));
|
ms.mulPose(Axis.YP.rotationDegrees(yaw));
|
||||||
ms.mulPose(Vector3f.ZP.rotationDegrees(pitch));
|
ms.mulPose(Axis.ZP.rotationDegrees(pitch));
|
||||||
ms.mulPose(Vector3f.XP.rotationDegrees(roll));
|
ms.mulPose(Axis.XP.rotationDegrees(roll));
|
||||||
ms.translate(offset, 0, 0);
|
ms.translate(offset, 0, 0);
|
||||||
if (flip)
|
if (flip)
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(180));
|
ms.mulPose(Axis.YP.rotationDegrees(180));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ import java.util.Random;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.processing.EmptyingByBasin;
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltHelper;
|
import com.simibubi.create.content.contraptions.relays.belt.BeltHelper;
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack;
|
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.blockentity.BlockEntityRendererProvider;
|
||||||
import net.minecraft.client.renderer.entity.ItemRenderer;
|
import net.minecraft.client.renderer.entity.ItemRenderer;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
@ -67,7 +66,7 @@ public class ItemDrainRenderer extends SmartTileEntityRenderer<ItemDrainTileEnti
|
||||||
.scale(.5f - offset);
|
.scale(.5f - offset);
|
||||||
ms.translate(offsetVec.x, offsetVec.y, offsetVec.z);
|
ms.translate(offsetVec.x, offsetVec.y, offsetVec.z);
|
||||||
boolean alongX = insertedFrom.getClockWise()
|
boolean alongX = insertedFrom.getClockWise()
|
||||||
.getAxis() == Axis.X;
|
.getAxis() == Direction.Axis.X;
|
||||||
if (!alongX)
|
if (!alongX)
|
||||||
sideOffset *= -1;
|
sideOffset *= -1;
|
||||||
ms.translate(alongX ? sideOffset : 0, 0, alongX ? 0 : sideOffset);
|
ms.translate(alongX ? sideOffset : 0, 0, alongX ? 0 : sideOffset);
|
||||||
|
@ -87,9 +86,9 @@ public class ItemDrainRenderer extends SmartTileEntityRenderer<ItemDrainTileEnti
|
||||||
int positive = insertedFrom.getAxisDirection()
|
int positive = insertedFrom.getAxisDirection()
|
||||||
.getStep();
|
.getStep();
|
||||||
float verticalAngle = positive * offset * 360;
|
float verticalAngle = positive * offset * 360;
|
||||||
if (insertedFrom.getAxis() != Axis.X)
|
if (insertedFrom.getAxis() != Direction.Axis.X)
|
||||||
msr.rotateX(verticalAngle);
|
msr.rotateX(verticalAngle);
|
||||||
if (insertedFrom.getAxis() != Axis.Z)
|
if (insertedFrom.getAxis() != Direction.Axis.Z)
|
||||||
msr.rotateZ(-verticalAngle);
|
msr.rotateZ(-verticalAngle);
|
||||||
|
|
||||||
if (renderUpright) {
|
if (renderUpright) {
|
||||||
|
@ -99,13 +98,13 @@ public class ItemDrainRenderer extends SmartTileEntityRenderer<ItemDrainTileEnti
|
||||||
Vec3 vectorForOffset = itemPosition.add(offsetVec);
|
Vec3 vectorForOffset = itemPosition.add(offsetVec);
|
||||||
Vec3 diff = vectorForOffset.subtract(positionVec);
|
Vec3 diff = vectorForOffset.subtract(positionVec);
|
||||||
|
|
||||||
if (insertedFrom.getAxis() != Axis.X)
|
if (insertedFrom.getAxis() != Direction.Axis.X)
|
||||||
diff = VecHelper.rotate(diff, verticalAngle, Axis.X);
|
diff = VecHelper.rotate(diff, verticalAngle, Direction.Axis.X);
|
||||||
if (insertedFrom.getAxis() != Axis.Z)
|
if (insertedFrom.getAxis() != Direction.Axis.Z)
|
||||||
diff = VecHelper.rotate(diff, -verticalAngle, Axis.Z);
|
diff = VecHelper.rotate(diff, -verticalAngle, Direction.Axis.Z);
|
||||||
|
|
||||||
float yRot = (float) Mth.atan2(diff.z, -diff.x);
|
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);
|
ms.translate(0, 0, -1 / 16f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
package com.simibubi.create.content.contraptions.fluids.particle;
|
package com.simibubi.create.content.contraptions.fluids.particle;
|
||||||
|
|
||||||
|
import org.joml.Quaternionf;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Quaternion;
|
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.content.contraptions.processing.BasinTileEntity;
|
import com.simibubi.create.content.contraptions.processing.BasinTileEntity;
|
||||||
import com.simibubi.create.foundation.utility.VecHelper;
|
import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
|
@ -83,8 +84,8 @@ public class BasinFluidParticle extends FluidStackParticle {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(VertexConsumer vb, Camera info, float pt) {
|
public void render(VertexConsumer vb, Camera info, float pt) {
|
||||||
Quaternion rotation = info.rotation();
|
Quaternionf rotation = info.rotation();
|
||||||
Quaternion prevRotation = new Quaternion(rotation);
|
Quaternionf prevRotation = new Quaternionf(rotation);
|
||||||
rotation.set(1, 0, 0, 1);
|
rotation.set(1, 0, 0, 1);
|
||||||
rotation.normalize();
|
rotation.normalize();
|
||||||
super.render(vb, info, pt);
|
super.render(vb, info, pt);
|
||||||
|
|
|
@ -7,7 +7,8 @@ import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import com.mojang.math.Vector3f;
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.AllRecipeTypes;
|
import com.simibubi.create.AllRecipeTypes;
|
||||||
import com.simibubi.create.content.contraptions.components.deployer.ManualApplicationRecipe;
|
import com.simibubi.create.content.contraptions.components.deployer.ManualApplicationRecipe;
|
||||||
|
|
|
@ -3,13 +3,14 @@ package com.simibubi.create.content.contraptions.relays.belt;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
import org.joml.Quaternionf;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.InstanceData;
|
import com.jozufozu.flywheel.api.InstanceData;
|
||||||
import com.jozufozu.flywheel.api.Instancer;
|
import com.jozufozu.flywheel.api.Instancer;
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.jozufozu.flywheel.core.PartialModel;
|
import com.jozufozu.flywheel.core.PartialModel;
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.math.Quaternion;
|
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileInstance;
|
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 com.simibubi.create.foundation.utility.Iterate;
|
||||||
|
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.item.DyeColor;
|
import net.minecraft.world.item.DyeColor;
|
||||||
import net.minecraft.world.level.LightLayer;
|
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 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);
|
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)
|
key.setScrollTexture(spriteShift)
|
||||||
.setScrollMult(diagonal ? 3f / 8f : 0.5f)
|
.setScrollMult(diagonal ? 3f / 8f : 0.5f)
|
||||||
|
|
|
@ -8,7 +8,7 @@ import com.jozufozu.flywheel.core.PartialModel;
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Vector3f;
|
import com.mojang.math.Axis;
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.AllSpriteShifts;
|
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.blockentity.BlockEntityRendererProvider;
|
||||||
import net.minecraft.client.renderer.entity.ItemRenderer;
|
import net.minecraft.client.renderer.entity.ItemRenderer;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
|
||||||
import net.minecraft.core.Direction.AxisDirection;
|
import net.minecraft.core.Direction.AxisDirection;
|
||||||
import net.minecraft.core.Vec3i;
|
import net.minecraft.core.Vec3i;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
|
@ -70,7 +69,7 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
|
||||||
boolean start = part == BeltPart.START;
|
boolean start = part == BeltPart.START;
|
||||||
boolean end = part == BeltPart.END;
|
boolean end = part == BeltPart.END;
|
||||||
boolean sideways = beltSlope == BeltSlope.SIDEWAYS;
|
boolean sideways = beltSlope == BeltSlope.SIDEWAYS;
|
||||||
boolean alongX = facing.getAxis() == Axis.X;
|
boolean alongX = facing.getAxis() == Direction.Axis.X;
|
||||||
|
|
||||||
PoseStack localTransforms = new PoseStack();
|
PoseStack localTransforms = new PoseStack();
|
||||||
TransformStack msr = TransformStack.cast(localTransforms);
|
TransformStack msr = TransformStack.cast(localTransforms);
|
||||||
|
@ -133,8 +132,8 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
|
||||||
PoseStack stack = new PoseStack();
|
PoseStack stack = new PoseStack();
|
||||||
TransformStack stacker = TransformStack.cast(stack);
|
TransformStack stacker = TransformStack.cast(stack);
|
||||||
stacker.centre();
|
stacker.centre();
|
||||||
if (dir.getAxis() == Axis.X) stacker.rotateY(90);
|
if (dir.getAxis() == Direction.Axis.X) stacker.rotateY(90);
|
||||||
if (dir.getAxis() == Axis.Y) stacker.rotateX(90);
|
if (dir.getAxis() == Direction.Axis.Y) stacker.rotateX(90);
|
||||||
stacker.rotateX(90);
|
stacker.rotateX(90);
|
||||||
stacker.unCentre();
|
stacker.unCentre();
|
||||||
return stack;
|
return stack;
|
||||||
|
@ -192,7 +191,7 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
|
||||||
.getValue(BeltBlock.SLOPE);
|
.getValue(BeltBlock.SLOPE);
|
||||||
int verticality = slope == BeltSlope.DOWNWARD ? -1 : slope == BeltSlope.UPWARD ? 1 : 0;
|
int verticality = slope == BeltSlope.DOWNWARD ? -1 : slope == BeltSlope.UPWARD ? 1 : 0;
|
||||||
boolean slopeAlongX = beltFacing
|
boolean slopeAlongX = beltFacing
|
||||||
.getAxis() == Axis.X;
|
.getAxis() == Direction.Axis.X;
|
||||||
|
|
||||||
boolean onContraption = te.getLevel() instanceof WrappedWorld;
|
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;
|
slope != BeltSlope.HORIZONTAL && Mth.clamp(offset, .5f, te.beltLength - .5f) == offset;
|
||||||
boolean tiltForward = (slope == BeltSlope.DOWNWARD ^ beltFacing
|
boolean tiltForward = (slope == BeltSlope.DOWNWARD ^ beltFacing
|
||||||
.getAxisDirection() == AxisDirection.POSITIVE) == (beltFacing
|
.getAxisDirection() == AxisDirection.POSITIVE) == (beltFacing
|
||||||
.getAxis() == Axis.Z);
|
.getAxis() == Direction.Axis.Z);
|
||||||
float slopeAngle = onSlope ? tiltForward ? -45 : 45 : 0;
|
float slopeAngle = onSlope ? tiltForward ? -45 : 45 : 0;
|
||||||
|
|
||||||
ms.translate(offsetVec.x, offsetVec.y, offsetVec.z);
|
ms.translate(offsetVec.x, offsetVec.y, offsetVec.z);
|
||||||
|
|
||||||
boolean alongX = beltFacing
|
boolean alongX = beltFacing
|
||||||
.getClockWise()
|
.getClockWise()
|
||||||
.getAxis() == Axis.X;
|
.getAxis() == Direction.Axis.X;
|
||||||
if (!alongX)
|
if (!alongX)
|
||||||
sideOffset *= -1;
|
sideOffset *= -1;
|
||||||
ms.translate(alongX ? sideOffset : 0, 0, alongX ? 0 : sideOffset);
|
ms.translate(alongX ? sideOffset : 0, 0, alongX ? 0 : sideOffset);
|
||||||
|
@ -251,7 +250,7 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
|
||||||
if (slopeShadowOnly)
|
if (slopeShadowOnly)
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
if (!renderUpright || slopeShadowOnly)
|
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)
|
if (onSlope)
|
||||||
ms.translate(0, slopeOffset, 0);
|
ms.translate(0, slopeOffset, 0);
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
|
@ -270,7 +269,7 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
|
||||||
Vec3 vectorForOffset = BeltHelper.getVectorForOffset(te, offset);
|
Vec3 vectorForOffset = BeltHelper.getVectorForOffset(te, offset);
|
||||||
Vec3 diff = vectorForOffset.subtract(positionVec);
|
Vec3 diff = vectorForOffset.subtract(positionVec);
|
||||||
float yRot = (float) (Mth.atan2(diff.x, diff.z) + Math.PI);
|
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);
|
ms.translate(0, 3 / 32d, 1 / 16f);
|
||||||
}
|
}
|
||||||
|
@ -278,10 +277,10 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
|
||||||
for (int i = 0; i <= count; i++) {
|
for (int i = 0; i <= count; i++) {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
|
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(transported.angle));
|
ms.mulPose(Axis.YP.rotationDegrees(transported.angle));
|
||||||
if (!blockItem && !renderUpright) {
|
if (!blockItem && !renderUpright) {
|
||||||
ms.translate(0, -.09375, 0);
|
ms.translate(0, -.09375, 0);
|
||||||
ms.mulPose(Vector3f.XP.rotationDegrees(90));
|
ms.mulPose(Axis.XP.rotationDegrees(90));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (blockItem) {
|
if (blockItem) {
|
||||||
|
@ -294,7 +293,7 @@ public class BeltRenderer extends SafeTileEntityRenderer<BeltTileEntity> {
|
||||||
|
|
||||||
if (!renderUpright) {
|
if (!renderUpright) {
|
||||||
if (!blockItem)
|
if (!blockItem)
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(10));
|
ms.mulPose(Axis.YP.rotationDegrees(10));
|
||||||
ms.translate(0, blockItem ? 1 / 64d : 1 / 16d, 0);
|
ms.translate(0, blockItem ? 1 / 64d : 1 / 16d, 0);
|
||||||
} else
|
} else
|
||||||
ms.translate(0, 0, -1 / 16f);
|
ms.translate(0, 0, -1 / 16f);
|
||||||
|
|
|
@ -4,7 +4,8 @@ import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import com.mojang.math.Vector3f;
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.simibubi.create.AllItems;
|
import com.simibubi.create.AllItems;
|
||||||
import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock;
|
import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock;
|
||||||
import com.simibubi.create.foundation.config.AllConfigs;
|
import com.simibubi.create.foundation.config.AllConfigs;
|
||||||
|
|
|
@ -4,7 +4,7 @@ import com.jozufozu.flywheel.api.Instancer;
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AllBlockPartials;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
|
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.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
|
||||||
import net.minecraft.core.Direction.AxisDirection;
|
import net.minecraft.core.Direction.AxisDirection;
|
||||||
|
|
||||||
public class BracketedKineticTileInstance extends SingleRotatingInstance {
|
public class BracketedKineticTileInstance extends SingleRotatingInstance {
|
||||||
|
@ -34,7 +33,7 @@ public class BracketedKineticTileInstance extends SingleRotatingInstance {
|
||||||
// mesh properly
|
// mesh properly
|
||||||
|
|
||||||
float speed = blockEntity.getSpeed();
|
float speed = blockEntity.getSpeed();
|
||||||
Axis axis = KineticTileEntityRenderer.getRotationAxisOf(blockEntity);
|
Direction.Axis axis = KineticTileEntityRenderer.getRotationAxisOf(blockEntity);
|
||||||
BlockPos pos = blockEntity.getBlockPos();
|
BlockPos pos = blockEntity.getBlockPos();
|
||||||
float offset = BracketedKineticTileRenderer.getShaftAngleOffset(axis, pos);
|
float offset = BracketedKineticTileRenderer.getShaftAngleOffset(axis, pos);
|
||||||
Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE);
|
Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE);
|
||||||
|
@ -50,19 +49,19 @@ public class BracketedKineticTileInstance extends SingleRotatingInstance {
|
||||||
if (!ICogWheel.isLargeCog(blockEntity.getBlockState()))
|
if (!ICogWheel.isLargeCog(blockEntity.getBlockState()))
|
||||||
return super.getModel();
|
return super.getModel();
|
||||||
|
|
||||||
Axis axis = KineticTileEntityRenderer.getRotationAxisOf(blockEntity);
|
Direction.Axis axis = KineticTileEntityRenderer.getRotationAxisOf(blockEntity);
|
||||||
Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE);
|
Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE);
|
||||||
return getRotatingMaterial().getModel(AllBlockPartials.SHAFTLESS_LARGE_COGWHEEL, blockState, facing,
|
return getRotatingMaterial().getModel(AllBlockPartials.SHAFTLESS_LARGE_COGWHEEL, blockState, facing,
|
||||||
() -> this.rotateToAxis(axis));
|
() -> this.rotateToAxis(axis));
|
||||||
}
|
}
|
||||||
|
|
||||||
private PoseStack rotateToAxis(Axis axis) {
|
private PoseStack rotateToAxis(Direction.Axis axis) {
|
||||||
Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE);
|
Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE);
|
||||||
PoseStack poseStack = new PoseStack();
|
PoseStack poseStack = new PoseStack();
|
||||||
TransformStack.cast(poseStack)
|
TransformStack.cast(poseStack)
|
||||||
.centre()
|
.centre()
|
||||||
.rotateToFace(facing)
|
.rotateToFace(facing)
|
||||||
.multiply(Vector3f.XN.rotationDegrees(-90))
|
.multiply(Axis.XN.rotationDegrees(-90))
|
||||||
.unCentre();
|
.unCentre();
|
||||||
return poseStack;
|
return poseStack;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||||
import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType;
|
import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType;
|
||||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
|
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
@ -123,7 +124,7 @@ public class BracketedTileEntityBehaviour extends TileEntityBehaviour {
|
||||||
@Override
|
@Override
|
||||||
public void read(CompoundTag nbt, boolean clientPacket) {
|
public void read(CompoundTag nbt, boolean clientPacket) {
|
||||||
if (nbt.contains("Bracket"))
|
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"))
|
if (clientPacket && nbt.contains("Redraw"))
|
||||||
getWorld().sendBlockUpdated(getPos(), tileEntity.getBlockState(), tileEntity.getBlockState(), 16);
|
getWorld().sendBlockUpdated(getPos(), tileEntity.getBlockState(), tileEntity.getBlockState(), 16);
|
||||||
super.read(nbt, clientPacket);
|
super.read(nbt, clientPacket);
|
||||||
|
|
|
@ -8,7 +8,7 @@ import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.jozufozu.flywheel.core.PartialModel;
|
import com.jozufozu.flywheel.core.PartialModel;
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AllBlockPartials;
|
||||||
import com.simibubi.create.content.contraptions.base.IRotate;
|
import com.simibubi.create.content.contraptions.base.IRotate;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
|
@ -99,7 +99,7 @@ public class EncasedCogInstance extends KineticTileInstance<KineticTileEntity> {
|
||||||
TransformStack.cast(poseStack)
|
TransformStack.cast(poseStack)
|
||||||
.centre()
|
.centre()
|
||||||
.rotateToFace(facing)
|
.rotateToFace(facing)
|
||||||
.multiply(Vector3f.XN.rotationDegrees(90))
|
.multiply(Axis.XN.rotationDegrees(90))
|
||||||
.unCentre();
|
.unCentre();
|
||||||
return poseStack;
|
return poseStack;
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.simibubi.create.content.contraptions.relays.gauge;
|
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.AllTileEntities;
|
||||||
import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock;
|
import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock;
|
||||||
import com.simibubi.create.content.contraptions.base.IRotate;
|
import com.simibubi.create.content.contraptions.base.IRotate;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.simibubi.create.content.contraptions.wrench;
|
package com.simibubi.create.content.contraptions.wrench;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.CustomRenderedItemModelRenderer;
|
||||||
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
|
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
|
||||||
import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueHandler;
|
import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueHandler;
|
||||||
|
@ -21,7 +21,7 @@ public class WrenchItemRenderer extends CustomRenderedItemModelRenderer<WrenchMo
|
||||||
|
|
||||||
float xOffset = -1/16f;
|
float xOffset = -1/16f;
|
||||||
ms.translate(-xOffset, 0, 0);
|
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);
|
ms.translate(xOffset, 0, 0);
|
||||||
|
|
||||||
renderer.render(model.getPartial("gear"), light);
|
renderer.render(model.getPartial("gear"), light);
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
package com.simibubi.create.content.curiosities.bell;
|
package com.simibubi.create.content.curiosities.bell;
|
||||||
|
|
||||||
|
import org.joml.Quaternionf;
|
||||||
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.backend.ShadersModHandler;
|
import com.jozufozu.flywheel.backend.ShadersModHandler;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Quaternion;
|
import com.mojang.math.Axis;
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
|
|
||||||
import net.minecraft.client.Camera;
|
import net.minecraft.client.Camera;
|
||||||
import net.minecraft.client.multiplayer.ClientLevel;
|
import net.minecraft.client.multiplayer.ClientLevel;
|
||||||
|
@ -27,11 +29,11 @@ public class CustomRotationParticle extends SimpleAnimatedParticle {
|
||||||
this.setSprite(sprite.get(loopFrame, loopLength));
|
this.setSprite(sprite.get(loopFrame, loopLength));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Quaternion getCustomRotation(Camera camera, float partialTicks) {
|
public Quaternionf getCustomRotation(Camera camera, float partialTicks) {
|
||||||
Quaternion quaternion = new Quaternion(camera.rotation());
|
Quaternionf quaternion = new Quaternionf(camera.rotation());
|
||||||
if (roll != 0.0F) {
|
if (roll != 0.0F) {
|
||||||
float angle = Mth.lerp(partialTicks, oRoll, roll);
|
float angle = Mth.lerp(partialTicks, oRoll, roll);
|
||||||
quaternion.mul(Vector3f.ZP.rotation(angle));
|
quaternion.mul(Axis.ZP.rotation(angle));
|
||||||
}
|
}
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
@ -51,10 +53,10 @@ public class CustomRotationParticle extends SimpleAnimatedParticle {
|
||||||
};
|
};
|
||||||
float scale = getQuadSize(partialTicks);
|
float scale = getQuadSize(partialTicks);
|
||||||
|
|
||||||
Quaternion rotation = getCustomRotation(camera, partialTicks);
|
Quaternionf rotation = getCustomRotation(camera, partialTicks);
|
||||||
for(int i = 0; i < 4; ++i) {
|
for(int i = 0; i < 4; ++i) {
|
||||||
Vector3f vertex = vertices[i];
|
Vector3f vertex = vertices[i];
|
||||||
vertex.transform(rotation);
|
vertex.rotate(rotation);
|
||||||
vertex.mul(scale);
|
vertex.mul(scale);
|
||||||
vertex.add(originX, originY, originZ);
|
vertex.add(originX, originY, originZ);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
package com.simibubi.create.content.curiosities.bell;
|
package com.simibubi.create.content.curiosities.bell;
|
||||||
|
|
||||||
import com.mojang.math.Quaternion;
|
import org.joml.Quaternionf;
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
|
import com.mojang.math.Axis;
|
||||||
import com.simibubi.create.AllParticleTypes;
|
import com.simibubi.create.AllParticleTypes;
|
||||||
|
|
||||||
import net.minecraft.client.Camera;
|
import net.minecraft.client.Camera;
|
||||||
|
@ -36,8 +37,8 @@ public class SoulBaseParticle extends CustomRotationParticle {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Quaternion getCustomRotation(Camera camera, float partialTicks) {
|
public Quaternionf getCustomRotation(Camera camera, float partialTicks) {
|
||||||
return Vector3f.XP.rotationDegrees(90);
|
return Axis.XP.rotationDegrees(90);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Data extends BasicParticleData<SoulBaseParticle> {
|
public static class Data extends BasicParticleData<SoulBaseParticle> {
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
package com.simibubi.create.content.curiosities.bell;
|
package com.simibubi.create.content.curiosities.bell;
|
||||||
|
|
||||||
|
import org.joml.Quaternionf;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Quaternion;
|
import com.mojang.math.Axis;
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
import com.simibubi.create.AllParticleTypes;
|
import com.simibubi.create.AllParticleTypes;
|
||||||
|
|
||||||
import net.minecraft.client.Camera;
|
import net.minecraft.client.Camera;
|
||||||
|
@ -11,6 +12,7 @@ import net.minecraft.client.particle.SpriteSet;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.particles.ParticleOptions;
|
import net.minecraft.core.particles.ParticleOptions;
|
||||||
import net.minecraft.core.particles.ParticleType;
|
import net.minecraft.core.particles.ParticleType;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
|
|
||||||
public class SoulParticle extends CustomRotationParticle {
|
public class SoulParticle extends CustomRotationParticle {
|
||||||
|
|
||||||
|
@ -94,10 +96,10 @@ public class SoulParticle extends CustomRotationParticle {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Quaternion getCustomRotation(Camera camera, float partialTicks) {
|
public Quaternionf getCustomRotation(Camera camera, float partialTicks) {
|
||||||
if (isPerimeter)
|
if (isPerimeter)
|
||||||
return Vector3f.XP.rotationDegrees(90);
|
return Axis.XP.rotationDegrees(90);
|
||||||
return new Quaternion(0, -camera.getYRot(), 0, true);
|
return new Quaternionf().rotationXYZ(0, -camera.getYRot() * Mth.DEG_TO_RAD, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Data extends BasicParticleData<SoulParticle> {
|
public static class Data extends BasicParticleData<SoulParticle> {
|
||||||
|
|
|
@ -2,7 +2,8 @@ package com.simibubi.create.content.curiosities.deco;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.mojang.math.Vector3f;
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
||||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||||
|
|
|
@ -2,9 +2,10 @@ package com.simibubi.create.content.curiosities.symmetry;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
import com.simibubi.create.AllItems;
|
import com.simibubi.create.AllItems;
|
||||||
import com.simibubi.create.content.curiosities.symmetry.mirror.EmptyMirror;
|
import com.simibubi.create.content.curiosities.symmetry.mirror.EmptyMirror;
|
||||||
import com.simibubi.create.content.curiosities.symmetry.mirror.SymmetryMirror;
|
import com.simibubi.create.content.curiosities.symmetry.mirror.SymmetryMirror;
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package com.simibubi.create.content.curiosities.symmetry;
|
package com.simibubi.create.content.curiosities.symmetry;
|
||||||
|
|
||||||
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.CrossPlaneMirror;
|
||||||
import com.simibubi.create.content.curiosities.symmetry.mirror.EmptyMirror;
|
import com.simibubi.create.content.curiosities.symmetry.mirror.EmptyMirror;
|
||||||
import com.simibubi.create.content.curiosities.symmetry.mirror.PlaneMirror;
|
import com.simibubi.create.content.curiosities.symmetry.mirror.PlaneMirror;
|
||||||
|
@ -136,7 +138,7 @@ public class SymmetryWandScreen extends AbstractSimiScreen {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
ms.translate(x + 26, y + 39, 20);
|
ms.translate(x + 26, y + 39, 20);
|
||||||
ms.scale(16, 16, 16);
|
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);
|
currentElement.applyModelTransform(ms);
|
||||||
// RenderSystem.multMatrix(ms.peek().getModel());
|
// RenderSystem.multMatrix(ms.peek().getModel());
|
||||||
GuiGameElement.of(currentElement.getModel())
|
GuiGameElement.of(currentElement.getModel())
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.simibubi.create.content.curiosities.symmetry.client;
|
package com.simibubi.create.content.curiosities.symmetry.client;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.CustomRenderedItemModelRenderer;
|
||||||
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
|
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
|
||||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||||
|
@ -29,7 +29,7 @@ public class SymmetryWandItemRenderer extends CustomRenderedItemModelRenderer<Sy
|
||||||
float angle = worldTime * -10 % 360;
|
float angle = worldTime * -10 % 360;
|
||||||
|
|
||||||
ms.translate(0, floating, 0);
|
ms.translate(0, floating, 0);
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(angle));
|
ms.mulPose(Axis.YP.rotationDegrees(angle));
|
||||||
|
|
||||||
renderer.renderGlowing(model.getPartial("bits"), maxLight);
|
renderer.renderGlowing(model.getPartial("bits"), maxLight);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.inventory.CraftingContainer;
|
import net.minecraft.world.inventory.CraftingContainer;
|
||||||
import net.minecraft.world.item.DyeColor;
|
import net.minecraft.world.item.DyeColor;
|
||||||
import net.minecraft.world.item.ItemStack;
|
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.CustomRecipe;
|
||||||
import net.minecraft.world.item.crafting.RecipeSerializer;
|
import net.minecraft.world.item.crafting.RecipeSerializer;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
@ -15,8 +16,8 @@ import net.minecraftforge.common.Tags;
|
||||||
|
|
||||||
public class ToolboxDyeingRecipe extends CustomRecipe {
|
public class ToolboxDyeingRecipe extends CustomRecipe {
|
||||||
|
|
||||||
public ToolboxDyeingRecipe(ResourceLocation rl) {
|
public ToolboxDyeingRecipe(ResourceLocation rl, CraftingBookCategory category) {
|
||||||
super(rl);
|
super(rl, category);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -30,6 +30,7 @@ import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.sounds.SoundEvents;
|
import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
|
@ -99,7 +100,7 @@ public class BlueprintEntity extends HangingEntity
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Packet<?> getAddEntityPacket() {
|
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||||
return NetworkHooks.getEntitySpawningPacket(this);
|
return NetworkHooks.getEntitySpawningPacket(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
package com.simibubi.create.content.curiosities.tools;
|
package com.simibubi.create.content.curiosities.tools;
|
||||||
|
|
||||||
|
import org.joml.Matrix3f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.core.PartialModel;
|
import com.jozufozu.flywheel.core.PartialModel;
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.math.Matrix3f;
|
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.content.curiosities.tools.BlueprintEntity.BlueprintSection;
|
import com.simibubi.create.content.curiosities.tools.BlueprintEntity.BlueprintSection;
|
||||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||||
|
@ -62,9 +63,8 @@ public class BlueprintRenderer extends EntityRenderer<BlueprintEntity> {
|
||||||
TransformStack.cast(ms)
|
TransformStack.cast(ms)
|
||||||
.rotateY(vertical ? 0 : -yaw)
|
.rotateY(vertical ? 0 : -yaw)
|
||||||
.rotateX(fakeNormalXRotation);
|
.rotateX(fakeNormalXRotation);
|
||||||
Matrix3f copy = ms.last()
|
Matrix3f copy = new Matrix3f(ms.last()
|
||||||
.normal()
|
.normal());
|
||||||
.copy();
|
|
||||||
|
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
|
@ -80,7 +80,7 @@ public class BlueprintRenderer extends EntityRenderer<BlueprintEntity> {
|
||||||
PoseStack squashedMS = new PoseStack();
|
PoseStack squashedMS = new PoseStack();
|
||||||
squashedMS.last()
|
squashedMS.last()
|
||||||
.pose()
|
.pose()
|
||||||
.multiply(ms.last()
|
.mul(ms.last()
|
||||||
.pose());
|
.pose());
|
||||||
|
|
||||||
for (int x = 0; x < entity.size; x++) {
|
for (int x = 0; x < entity.size; x++) {
|
||||||
|
@ -102,7 +102,7 @@ public class BlueprintRenderer extends EntityRenderer<BlueprintEntity> {
|
||||||
|
|
||||||
squashedMS.last()
|
squashedMS.last()
|
||||||
.normal()
|
.normal()
|
||||||
.load(copy);
|
.set(copy);
|
||||||
|
|
||||||
Minecraft.getInstance()
|
Minecraft.getInstance()
|
||||||
.getItemRenderer()
|
.getItemRenderer()
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package com.simibubi.create.content.curiosities.tools;
|
package com.simibubi.create.content.curiosities.tools;
|
||||||
|
|
||||||
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.CreateCustomRenderedItemModel;
|
||||||
import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer;
|
import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer;
|
||||||
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
|
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
|
||||||
|
@ -42,7 +44,7 @@ public class SandPaperItemRenderer extends CustomRenderedItemModelRenderer<SandP
|
||||||
ms.scale(.75f, .75f, .75f);
|
ms.scale(.75f, .75f, .75f);
|
||||||
} else {
|
} else {
|
||||||
int modifier = leftHand ? -1 : 1;
|
int modifier = leftHand ? -1 : 1;
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(modifier * 40));
|
ms.mulPose(Axis.YP.rotationDegrees(modifier * 40));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reverse bobbing
|
// Reverse bobbing
|
||||||
|
@ -68,9 +70,9 @@ public class SandPaperItemRenderer extends CustomRenderedItemModelRenderer<SandP
|
||||||
if (itemInUseCount > 0) {
|
if (itemInUseCount > 0) {
|
||||||
int modifier = leftHand ? -1 : 1;
|
int modifier = leftHand ? -1 : 1;
|
||||||
ms.translate(modifier * .5f, 0, -.25f);
|
ms.translate(modifier * .5f, 0, -.25f);
|
||||||
ms.mulPose(Vector3f.ZP.rotationDegrees(modifier * 40));
|
ms.mulPose(Axis.ZP.rotationDegrees(modifier * 40));
|
||||||
ms.mulPose(Vector3f.XP.rotationDegrees(modifier * 10));
|
ms.mulPose(Axis.XP.rotationDegrees(modifier * 10));
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(modifier * 90));
|
ms.mulPose(Axis.YP.rotationDegrees(modifier * 90));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ package com.simibubi.create.content.curiosities.weapons;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.CreateClient;
|
||||||
import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer;
|
import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer;
|
||||||
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
|
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
|
||||||
|
@ -44,7 +44,7 @@ public class PotatoCannonItemRenderer extends CustomRenderedItemModelRenderer<Po
|
||||||
|
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
ms.translate(0, offset, 0);
|
ms.translate(0, offset, 0);
|
||||||
ms.mulPose(Vector3f.ZP.rotationDegrees(angle));
|
ms.mulPose(Axis.ZP.rotationDegrees(angle));
|
||||||
ms.translate(0, -offset, 0);
|
ms.translate(0, -offset, 0);
|
||||||
renderer.render(model.getPartial("cog"), light);
|
renderer.render(model.getPartial("cog"), light);
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
|
|
|
@ -15,6 +15,7 @@ import net.minecraft.core.particles.ParticleTypes;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
import net.minecraft.network.protocol.game.ClientboundGameEventPacket;
|
import net.minecraft.network.protocol.game.ClientboundGameEventPacket;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.world.damagesource.DamageSource;
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
|
@ -333,7 +334,7 @@ public class PotatoProjectileEntity extends AbstractHurtingProjectile implements
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Packet<?> getAddEntityPacket() {
|
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||||
return NetworkHooks.getEntitySpawningPacket(this);
|
return NetworkHooks.getEntitySpawningPacket(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ package com.simibubi.create.content.curiosities.zapper;
|
||||||
|
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.Minecraft;
|
||||||
import net.minecraft.client.player.AbstractClientPlayer;
|
import net.minecraft.client.player.AbstractClientPlayer;
|
||||||
|
@ -108,15 +108,15 @@ public abstract class ShootableGadgetRenderHandler {
|
||||||
float f6 = Mth.sin(f1 * (float) Math.PI);
|
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.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(Axis.YP.rotationDegrees(flip * 75.0F));
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(flip * f6 * 70.0F));
|
ms.mulPose(Axis.YP.rotationDegrees(flip * f6 * 70.0F));
|
||||||
ms.mulPose(Vector3f.ZP.rotationDegrees(flip * f5 * -20.0F));
|
ms.mulPose(Axis.ZP.rotationDegrees(flip * f5 * -20.0F));
|
||||||
ms.translate(flip * -1.0F, 3.6F, 3.5F);
|
ms.translate(flip * -1.0F, 3.6F, 3.5F);
|
||||||
ms.mulPose(Vector3f.ZP.rotationDegrees(flip * 120.0F));
|
ms.mulPose(Axis.ZP.rotationDegrees(flip * 120.0F));
|
||||||
ms.mulPose(Vector3f.XP.rotationDegrees(200.0F));
|
ms.mulPose(Axis.XP.rotationDegrees(200.0F));
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(flip * -135.0F));
|
ms.mulPose(Axis.YP.rotationDegrees(flip * -135.0F));
|
||||||
ms.translate(flip * 5.6F, 0.0F, 0.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);
|
transformHand(ms, flip, equipProgress, recoil, pt);
|
||||||
if (rightHand)
|
if (rightHand)
|
||||||
playerrenderer.renderRightHand(ms, buffer, light, player);
|
playerrenderer.renderRightHand(ms, buffer, light, player);
|
||||||
|
@ -127,8 +127,8 @@ public abstract class ShootableGadgetRenderHandler {
|
||||||
// Render gadget
|
// Render gadget
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
ms.translate(flip * (f2 + 0.64F - .1f), f3 + -0.4F + equipProgress * -0.6F, f4 + -0.72F - 0.1f + recoil);
|
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(Axis.YP.rotationDegrees(flip * f6 * 70.0F));
|
||||||
ms.mulPose(Vector3f.ZP.rotationDegrees(flip * f5 * -20.0F));
|
ms.mulPose(Axis.ZP.rotationDegrees(flip * f5 * -20.0F));
|
||||||
transformTool(ms, flip, equipProgress, recoil, pt);
|
transformTool(ms, flip, equipProgress, recoil, pt);
|
||||||
firstPersonRenderer.renderItem(mc.player, heldItem,
|
firstPersonRenderer.renderItem(mc.player, heldItem,
|
||||||
rightHand ? ItemTransforms.TransformType.FIRST_PERSON_RIGHT_HAND
|
rightHand ? ItemTransforms.TransformType.FIRST_PERSON_RIGHT_HAND
|
||||||
|
|
|
@ -20,6 +20,7 @@ import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.client.model.HumanoidModel.ArmPose;
|
import net.minecraft.client.model.HumanoidModel.ArmPose;
|
||||||
import net.minecraft.client.player.AbstractClientPlayer;
|
import net.minecraft.client.player.AbstractClientPlayer;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
import net.minecraft.nbt.Tag;
|
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) {
|
public void appendHoverText(ItemStack stack, Level worldIn, List<Component> tooltip, TooltipFlag flagIn) {
|
||||||
if (stack.hasTag() && stack.getTag()
|
if (stack.hasTag() && stack.getTag()
|
||||||
.contains("BlockUsed")) {
|
.contains("BlockUsed")) {
|
||||||
MutableComponent usedBlock = NbtUtils.readBlockState(stack.getTag()
|
MutableComponent usedBlock = NbtUtils.readBlockState(worldIn.holderLookup(Registries.BLOCK), stack.getTag()
|
||||||
.getCompound("BlockUsed"))
|
.getCompound("BlockUsed"))
|
||||||
.getBlock()
|
.getBlock()
|
||||||
.getName();
|
.getName();
|
||||||
|
@ -140,7 +141,7 @@ public abstract class ZapperItem extends Item implements CustomArmPoseItem {
|
||||||
|
|
||||||
BlockState stateToUse = Blocks.AIR.defaultBlockState();
|
BlockState stateToUse = Blocks.AIR.defaultBlockState();
|
||||||
if (nbt.contains("BlockUsed"))
|
if (nbt.contains("BlockUsed"))
|
||||||
stateToUse = NbtUtils.readBlockState(nbt.getCompound("BlockUsed"));
|
stateToUse = NbtUtils.readBlockState(world.holderLookup(Registries.BLOCK), nbt.getCompound("BlockUsed"));
|
||||||
stateToUse = BlockHelper.setZeroAge(stateToUse);
|
stateToUse = BlockHelper.setZeroAge(stateToUse);
|
||||||
CompoundTag data = null;
|
CompoundTag data = null;
|
||||||
if (AllBlockTags.SAFE_NBT.matches(stateToUse) && nbt.contains("BlockData", Tag.TAG_COMPOUND)) {
|
if (AllBlockTags.SAFE_NBT.matches(stateToUse) && nbt.contains("BlockData", Tag.TAG_COMPOUND)) {
|
||||||
|
|
|
@ -6,7 +6,7 @@ import java.util.Random;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AllSoundEvents;
|
||||||
import com.simibubi.create.CreateClient;
|
import com.simibubi.create.CreateClient;
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ public class ZapperRenderHandler extends ShootableGadgetRenderHandler {
|
||||||
@Override
|
@Override
|
||||||
protected void transformTool(PoseStack ms, float flip, float equipProgress, float recoil, float pt) {
|
protected void transformTool(PoseStack ms, float flip, float equipProgress, float recoil, float pt) {
|
||||||
ms.translate(flip * -0.1f, 0.1f, -0.4f);
|
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
|
@Override
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.curiosities.zapper;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.AbstractSimiScreen;
|
||||||
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
||||||
import com.simibubi.create.foundation.gui.AllIcons;
|
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) {
|
protected void renderBlock(PoseStack ms, int x, int y) {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
ms.translate(x + 32, y + 42, 120);
|
ms.translate(x + 32, y + 42, 120);
|
||||||
ms.mulPose(new Vector3f(1f, 0, 0).rotationDegrees(-25f));
|
ms.mulPose(Axis.XP.rotationDegrees(-25f));
|
||||||
ms.mulPose(new Vector3f(0, 1f, 0).rotationDegrees(-45f));
|
ms.mulPose(Axis.YP.rotationDegrees(-45f));
|
||||||
ms.scale(20, 20, 20);
|
ms.scale(20, 20, 20);
|
||||||
|
|
||||||
BlockState state = Blocks.AIR.defaultBlockState();
|
BlockState state = Blocks.AIR.defaultBlockState();
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.curiosities.zapper.terrainzapper;
|
||||||
import static java.lang.Math.max;
|
import static java.lang.Math.max;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.content.curiosities.zapper.ZapperItemRenderer;
|
||||||
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
|
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
|
||||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||||
|
@ -56,7 +56,7 @@ public class WorldshaperItemRenderer extends ZapperItemRenderer<WorldshaperModel
|
||||||
angle %= 360;
|
angle %= 360;
|
||||||
float offset = -.155f;
|
float offset = -.155f;
|
||||||
ms.translate(0, offset, 0);
|
ms.translate(0, offset, 0);
|
||||||
ms.mulPose(Vector3f.ZP.rotationDegrees(angle));
|
ms.mulPose(Axis.ZP.rotationDegrees(angle));
|
||||||
ms.translate(0, -offset, 0);
|
ms.translate(0, -offset, 0);
|
||||||
renderer.render(model.getPartial("accelerator"), light);
|
renderer.render(model.getPartial("accelerator"), light);
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,7 @@ public class WorldshaperScreen extends ZapperScreen {
|
||||||
.plainCopy())
|
.plainCopy())
|
||||||
.calling(state -> {
|
.calling(state -> {
|
||||||
currentBrushParams[finalIndex] = 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.setState(currentBrushParams[index]);
|
||||||
input.onChanged();
|
input.onChanged();
|
||||||
|
|
|
@ -4,7 +4,7 @@ import java.util.Random;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
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.BeltHelper;
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack;
|
import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack;
|
||||||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
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.block.model.ItemTransforms.TransformType;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||||
import net.minecraft.client.renderer.entity.ItemRenderer;
|
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.util.Mth;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
@ -59,7 +59,7 @@ public class DepotRenderer extends SafeTileEntityRenderer<DepotTileEntity> {
|
||||||
.getNormal()).scale(.5f - offset);
|
.getNormal()).scale(.5f - offset);
|
||||||
ms.translate(offsetVec.x, offsetVec.y, offsetVec.z);
|
ms.translate(offsetVec.x, offsetVec.y, offsetVec.z);
|
||||||
boolean alongX = tis.insertedFrom.getClockWise()
|
boolean alongX = tis.insertedFrom.getClockWise()
|
||||||
.getAxis() == Axis.X;
|
.getAxis() == Direction.Axis.X;
|
||||||
if (!alongX)
|
if (!alongX)
|
||||||
sideOffset *= -1;
|
sideOffset *= -1;
|
||||||
ms.translate(alongX ? sideOffset : 0, 0, alongX ? 0 : sideOffset);
|
ms.translate(alongX ? sideOffset : 0, 0, alongX ? 0 : sideOffset);
|
||||||
|
@ -117,7 +117,7 @@ public class DepotRenderer extends SafeTileEntityRenderer<DepotTileEntity> {
|
||||||
Vec3 vectorForOffset = itemPosition;
|
Vec3 vectorForOffset = itemPosition;
|
||||||
Vec3 diff = vectorForOffset.subtract(positionVec);
|
Vec3 diff = vectorForOffset.subtract(positionVec);
|
||||||
float yRot = (float) (Mth.atan2(diff.x, diff.z) + Math.PI);
|
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);
|
ms.translate(0, 3 / 32d, -1 / 16f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.simibubi.create.content.logistics.block.depot;
|
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.AllBlocks;
|
||||||
import com.simibubi.create.AllItems;
|
import com.simibubi.create.AllItems;
|
||||||
import com.simibubi.create.CreateClient;
|
import com.simibubi.create.CreateClient;
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
package com.simibubi.create.content.logistics.block.flap;
|
package com.simibubi.create.content.logistics.block.flap;
|
||||||
|
|
||||||
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.InstanceData;
|
import com.jozufozu.flywheel.api.InstanceData;
|
||||||
import com.jozufozu.flywheel.core.materials.FlatLit;
|
import com.jozufozu.flywheel.core.materials.FlatLit;
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
|
|
||||||
import net.minecraft.client.renderer.LightTexture;
|
import net.minecraft.client.renderer.LightTexture;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
|
|
@ -100,7 +100,7 @@ public class ArmRenderer extends KineticTileEntityRenderer {
|
||||||
|
|
||||||
ms.last()
|
ms.last()
|
||||||
.pose()
|
.pose()
|
||||||
.multiply(msLocal.last()
|
.mul(msLocal.last()
|
||||||
.pose());
|
.pose());
|
||||||
|
|
||||||
itemRenderer.renderStatic(item, TransformType.FIXED, light, overlay, ms, buffer, 0);
|
itemRenderer.renderStatic(item, TransformType.FIXED, light, overlay, ms, buffer, 0);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.simibubi.create.content.logistics.block.redstone;
|
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.AllTileEntities;
|
||||||
import com.simibubi.create.foundation.block.ITE;
|
import com.simibubi.create.foundation.block.ITE;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ import java.util.List;
|
||||||
|
|
||||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
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.CompoundTag;
|
||||||
import net.minecraft.nbt.Tag;
|
import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
|
@ -45,7 +45,7 @@ public class DimensionPalette {
|
||||||
DimensionPalette palette = new DimensionPalette();
|
DimensionPalette palette = new DimensionPalette();
|
||||||
int length = buffer.readInt();
|
int length = buffer.readInt();
|
||||||
for (int i = 0; i < length; i++)
|
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;
|
return palette;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ public class DimensionPalette {
|
||||||
public static DimensionPalette read(CompoundTag tag) {
|
public static DimensionPalette read(CompoundTag tag) {
|
||||||
DimensionPalette palette = new DimensionPalette();
|
DimensionPalette palette = new DimensionPalette();
|
||||||
NBTHelper.iterateCompoundList(tag.getList("DimensionPalette", Tag.TAG_COMPOUND), c -> palette.gatheredDims
|
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;
|
return palette;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
package com.simibubi.create.content.logistics.trains.entity;
|
package com.simibubi.create.content.logistics.trains.entity;
|
||||||
|
|
||||||
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||||
import com.jozufozu.flywheel.backend.instancing.entity.EntityInstance;
|
import com.jozufozu.flywheel.backend.instancing.entity.EntityInstance;
|
||||||
import com.jozufozu.flywheel.util.AnimationTickHolder;
|
import com.jozufozu.flywheel.util.AnimationTickHolder;
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.math.Vector3f;
|
|
||||||
import com.simibubi.create.foundation.utility.Couple;
|
import com.simibubi.create.foundation.utility.Couple;
|
||||||
import com.simibubi.create.foundation.utility.Iterate;
|
import com.simibubi.create.foundation.utility.Iterate;
|
||||||
|
|
||||||
|
|
|
@ -64,8 +64,8 @@ import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
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;
|
||||||
|
import net.minecraft.world.level.Level.ExplosionInteraction;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import net.minecraftforge.common.ForgeHooks;
|
import net.minecraftforge.common.ForgeHooks;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
@ -601,7 +601,7 @@ public class Train {
|
||||||
double combinedSpeed = Math.abs(speed) + Math.abs(train.speed);
|
double combinedSpeed = Math.abs(speed) + Math.abs(train.speed);
|
||||||
if (combinedSpeed > .2f) {
|
if (combinedSpeed > .2f) {
|
||||||
Vec3 v = collision.getSecond();
|
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();
|
crash();
|
||||||
|
|
|
@ -2,12 +2,13 @@ package com.simibubi.create.content.logistics.trains.management.display;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.font.GlyphInfo;
|
import com.mojang.blaze3d.font.GlyphInfo;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack.Pose;
|
import com.mojang.blaze3d.vertex.PoseStack.Pose;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Matrix4f;
|
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
|
||||||
|
|
|
@ -17,7 +17,7 @@ import com.simibubi.create.foundation.gui.widget.ScrollInput;
|
||||||
import com.simibubi.create.foundation.networking.AllPackets;
|
import com.simibubi.create.foundation.networking.AllPackets;
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
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.network.chat.MutableComponent;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ public class AssemblyScreen extends AbstractStationScreen {
|
||||||
int y = guiTop;
|
int y = guiTop;
|
||||||
int by = y + background.height - 24;
|
int by = y + background.height - 24;
|
||||||
|
|
||||||
Widget widget = renderables.get(0);
|
Renderable widget = renderables.get(0);
|
||||||
if (widget instanceof IconButton ib) {
|
if (widget instanceof IconButton ib) {
|
||||||
ib.setIcon(AllIcons.I_PRIORITY_VERY_LOW);
|
ib.setIcon(AllIcons.I_PRIORITY_VERY_LOW);
|
||||||
ib.setToolTip(Lang.translateDirect("station.close"));
|
ib.setToolTip(Lang.translateDirect("station.close"));
|
||||||
|
|
|
@ -2,8 +2,9 @@ package com.simibubi.create.content.logistics.trains.management.edgePoint.statio
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.math.Matrix4f;
|
|
||||||
|
|
||||||
import net.minecraft.client.StringSplitter;
|
import net.minecraft.client.StringSplitter;
|
||||||
import net.minecraft.client.gui.Font;
|
import net.minecraft.client.gui.Font;
|
||||||
|
|
|
@ -3,9 +3,10 @@ package com.simibubi.create.content.logistics.trains.management.edgePoint.statio
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Matrix4f;
|
|
||||||
import com.simibubi.create.AllTileEntities;
|
import com.simibubi.create.AllTileEntities;
|
||||||
import com.simibubi.create.Create;
|
import com.simibubi.create.Create;
|
||||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.TrackTargetingBehaviour;
|
import com.simibubi.create.content.logistics.trains.management.edgePoint.TrackTargetingBehaviour;
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class StationScreen extends AbstractStationScreen {
|
||||||
|
|
||||||
Consumer<String> onTextChanged;
|
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,
|
nameBox = new EditBox(new NoShadowFontWrapper(font), x + 23, y + 4, background.width - 20, 10,
|
||||||
Components.literal(station.name));
|
Components.literal(station.name));
|
||||||
nameBox.setBordered(false);
|
nameBox.setBordered(false);
|
||||||
|
@ -67,7 +67,7 @@ public class StationScreen extends AbstractStationScreen {
|
||||||
nameBox.changeFocus(false);
|
nameBox.changeFocus(false);
|
||||||
nameBox.mouseClicked(0, 0, 0);
|
nameBox.mouseClicked(0, 0, 0);
|
||||||
nameBox.setResponder(onTextChanged);
|
nameBox.setResponder(onTextChanged);
|
||||||
nameBox.x = nameBoxX(nameBox.getValue(), nameBox);
|
nameBox.setX(nameBoxX(nameBox.getValue(), nameBox));
|
||||||
addRenderableWidget(nameBox);
|
addRenderableWidget(nameBox);
|
||||||
|
|
||||||
Runnable assemblyCallback = () -> {
|
Runnable assemblyCallback = () -> {
|
||||||
|
@ -92,7 +92,7 @@ public class StationScreen extends AbstractStationScreen {
|
||||||
.withCallback(() -> AllPackets.channel.sendToServer(StationEditPacket.dropSchedule(te.getBlockPos())));
|
.withCallback(() -> AllPackets.channel.sendToServer(StationEditPacket.dropSchedule(te.getBlockPos())));
|
||||||
addRenderableWidget(dropScheduleButton);
|
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 = new EditBox(font, x + 23, y + 47, background.width - 75, 10, Components.immutableEmpty());
|
||||||
trainNameBox.setBordered(false);
|
trainNameBox.setBordered(false);
|
||||||
trainNameBox.setMaxLength(35);
|
trainNameBox.setMaxLength(35);
|
||||||
|
@ -151,7 +151,7 @@ public class StationScreen extends AbstractStationScreen {
|
||||||
|
|
||||||
trainNameBox.active = true;
|
trainNameBox.active = true;
|
||||||
trainNameBox.setValue(imminentTrain.name.getString());
|
trainNameBox.setValue(imminentTrain.name.getString());
|
||||||
trainNameBox.x = nameBoxX(trainNameBox.getValue(), trainNameBox);
|
trainNameBox.setX(nameBoxX(trainNameBox.getValue(), trainNameBox));
|
||||||
addRenderableWidget(trainNameBox);
|
addRenderableWidget(trainNameBox);
|
||||||
|
|
||||||
int trainIconWidth = getTrainIconWidth(imminentTrain);
|
int trainIconWidth = getTrainIconWidth(imminentTrain);
|
||||||
|
|
|
@ -14,7 +14,7 @@ public class WideIconButton extends IconButton {
|
||||||
@Override
|
@Override
|
||||||
protected void drawBg(PoseStack matrixStack, AllGuiTextures button) {
|
protected void drawBg(PoseStack matrixStack, AllGuiTextures button) {
|
||||||
super.drawBg(matrixStack, 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import org.joml.Matrix4f;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
import org.lwjgl.opengl.GL30;
|
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.platform.InputConstants;
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.math.Matrix4f;
|
|
||||||
import com.simibubi.create.Create;
|
import com.simibubi.create.Create;
|
||||||
import com.simibubi.create.content.logistics.trains.GlobalRailwayManager;
|
import com.simibubi.create.content.logistics.trains.GlobalRailwayManager;
|
||||||
import com.simibubi.create.content.logistics.trains.TrackGraph;
|
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.Minecraft;
|
||||||
import net.minecraft.client.gui.Font;
|
import net.minecraft.client.gui.Font;
|
||||||
import net.minecraft.client.gui.components.EditBox;
|
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.client.renderer.Rect2i;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
@ -368,7 +368,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
else {
|
else {
|
||||||
renderBackground(matrixStack);
|
renderBackground(matrixStack);
|
||||||
renderBg(matrixStack, partialTicks, mouseX, mouseY);
|
renderBg(matrixStack, partialTicks, mouseX, mouseY);
|
||||||
for (Widget widget : this.renderables)
|
for (Renderable widget : this.renderables)
|
||||||
widget.render(matrixStack, mouseX, mouseY, partialTicks);
|
widget.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||||
renderForeground(matrixStack, mouseX, mouseY, partialTicks);
|
renderForeground(matrixStack, mouseX, mouseY, partialTicks);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import java.util.EnumSet;
|
||||||
import com.jozufozu.flywheel.api.MaterialManager;
|
import com.jozufozu.flywheel.api.MaterialManager;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Vector3f;
|
import com.mojang.math.Axis;
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.AllTileEntities;
|
import com.simibubi.create.AllTileEntities;
|
||||||
|
@ -26,7 +26,6 @@ import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.BlockGetter;
|
import net.minecraft.world.level.BlockGetter;
|
||||||
|
@ -49,7 +48,7 @@ import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
public class StandardBogeyBlock extends Block
|
public class StandardBogeyBlock extends Block
|
||||||
implements IBogeyBlock, ITE<StandardBogeyTileEntity>, ProperWaterloggedBlock, ISpecialBlockItemRequirement {
|
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;
|
private final boolean large;
|
||||||
|
|
||||||
public StandardBogeyBlock(Properties p_i48440_1_, boolean large) {
|
public StandardBogeyBlock(Properties p_i48440_1_, boolean large) {
|
||||||
|
@ -69,7 +68,7 @@ public class StandardBogeyBlock extends Block
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EnumSet<Direction> getStickySurfaces(BlockGetter world, BlockPos pos, BlockState state) {
|
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
|
@Override
|
||||||
|
@ -108,12 +107,12 @@ public class StandardBogeyBlock extends Block
|
||||||
public BlockState getMatchingBogey(Direction upDirection, boolean axisAlongFirst) {
|
public BlockState getMatchingBogey(Direction upDirection, boolean axisAlongFirst) {
|
||||||
if (upDirection != Direction.UP)
|
if (upDirection != Direction.UP)
|
||||||
return null;
|
return null;
|
||||||
return defaultBlockState().setValue(AXIS, axisAlongFirst ? Axis.X : Axis.Z);
|
return defaultBlockState().setValue(AXIS, axisAlongFirst ? Direction.Axis.X : Direction.Axis.Z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isTrackAxisAlongFirstCoordinate(BlockState state) {
|
public boolean isTrackAxisAlongFirstCoordinate(BlockState state) {
|
||||||
return state.getValue(AXIS) == Axis.X;
|
return state.getValue(AXIS) == Direction.Axis.X;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -122,8 +121,8 @@ public class StandardBogeyBlock extends Block
|
||||||
int light, int overlay) {
|
int light, int overlay) {
|
||||||
if (state != null) {
|
if (state != null) {
|
||||||
ms.translate(.5f, .5f, .5f);
|
ms.translate(.5f, .5f, .5f);
|
||||||
if (state.getValue(AXIS) == Axis.X)
|
if (state.getValue(AXIS) == Direction.Axis.X)
|
||||||
ms.mulPose(Vector3f.YP.rotationDegrees(90));
|
ms.mulPose(Axis.YP.rotationDegrees(90));
|
||||||
}
|
}
|
||||||
|
|
||||||
ms.translate(0, -1.5 - 1 / 128f, 0);
|
ms.translate(0, -1.5 - 1 / 128f, 0);
|
||||||
|
@ -133,7 +132,7 @@ public class StandardBogeyBlock extends Block
|
||||||
|
|
||||||
for (int i : Iterate.zeroAndOne)
|
for (int i : Iterate.zeroAndOne)
|
||||||
CachedBufferer.block(AllBlocks.SHAFT.getDefaultState()
|
CachedBufferer.block(AllBlocks.SHAFT.getDefaultState()
|
||||||
.setValue(ShaftBlock.AXIS, Axis.Z))
|
.setValue(ShaftBlock.AXIS, Direction.Axis.Z))
|
||||||
.translate(-.5f, .25f, i * -1)
|
.translate(-.5f, .25f, i * -1)
|
||||||
.centre()
|
.centre()
|
||||||
.rotateZ(wheelAngle)
|
.rotateZ(wheelAngle)
|
||||||
|
@ -168,7 +167,7 @@ public class StandardBogeyBlock extends Block
|
||||||
private void renderLargeBogey(float wheelAngle, PoseStack ms, int light, VertexConsumer vb, BlockState air) {
|
private void renderLargeBogey(float wheelAngle, PoseStack ms, int light, VertexConsumer vb, BlockState air) {
|
||||||
for (int i : Iterate.zeroAndOne)
|
for (int i : Iterate.zeroAndOne)
|
||||||
CachedBufferer.block(AllBlocks.SHAFT.getDefaultState()
|
CachedBufferer.block(AllBlocks.SHAFT.getDefaultState()
|
||||||
.setValue(ShaftBlock.AXIS, Axis.X))
|
.setValue(ShaftBlock.AXIS, Direction.Axis.X))
|
||||||
.translate(-.5f, .25f, .5f + i * -2)
|
.translate(-.5f, .25f, .5f + i * -2)
|
||||||
.centre()
|
.centre()
|
||||||
.rotateX(wheelAngle)
|
.rotateX(wheelAngle)
|
||||||
|
|
|
@ -25,7 +25,7 @@ import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction.Axis;
|
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.CompoundTag;
|
||||||
import net.minecraft.nbt.ListTag;
|
import net.minecraft.nbt.ListTag;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
|
@ -203,7 +203,7 @@ public class TrackTileEntity extends SmartTileEntity implements ITransformableTE
|
||||||
|
|
||||||
if (tag.contains("BoundLocation"))
|
if (tag.contains("BoundLocation"))
|
||||||
boundLocation = Pair.of(
|
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")));
|
NbtUtils.readBlockPos(tag.getCompound("BoundLocation")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,8 @@ import javax.annotation.Nullable;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
import net.minecraft.core.Registry;
|
|
||||||
import net.minecraft.core.RegistryAccess;
|
import net.minecraft.core.RegistryAccess;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.server.level.ChunkHolder;
|
import net.minecraft.server.level.ChunkHolder;
|
||||||
import net.minecraft.sounds.SoundEvent;
|
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_) {}
|
SoundEvent p_220367_, SoundSource p_220368_, float p_220369_, float p_220370_, long p_220371_) {}
|
||||||
|
|
||||||
@Override
|
@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_) {}
|
float p_220376_, float p_220377_, long p_220378_) {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -213,7 +213,7 @@ public class SchematicChunkSource extends ChunkSource {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final DummyLevel DUMMY_LEVEL = new DummyLevel(null, null, RegistryAccess.BUILTIN.get()
|
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);
|
.getHolderOrThrow(BuiltinDimensionTypes.OVERWORLD), null, false, false, 0, 0);
|
||||||
|
|
||||||
public EmptierChunk(RegistryAccess registryAccess) {
|
public EmptierChunk(RegistryAccess registryAccess) {
|
||||||
|
|
|
@ -129,7 +129,7 @@ public class SchematicTableScreen extends AbstractSimiContainerScreen<SchematicT
|
||||||
|
|
||||||
extraAreas = ImmutableList.of(
|
extraAreas = ImmutableList.of(
|
||||||
new Rect2i(x + background.width, y + background.height - 40, 48, 48),
|
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())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import com.jozufozu.flywheel.backend.Backend;
|
||||||
import com.jozufozu.flywheel.core.model.ModelUtil;
|
import com.jozufozu.flywheel.core.model.ModelUtil;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import com.mojang.math.Vector3f;
|
import com.mojang.math.Axis;
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.content.schematics.block.LaunchedItem.ForBelt;
|
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(blockLocation.x, blockLocation.y, blockLocation.z);
|
||||||
|
|
||||||
ms.translate(.125f, .125f, .125f);
|
ms.translate(.125f, .125f, .125f);
|
||||||
ms.mulPose(new Vector3f(0, 1, 0).rotationDegrees(360 * t));
|
ms.mulPose(Axis.YP.rotationDegrees(360 * t));
|
||||||
ms.mulPose(new Vector3f(1, 0, 0).rotationDegrees(360 * t));
|
ms.mulPose(Axis.XP.rotationDegrees(360 * t));
|
||||||
ms.translate(-.125f, -.125f, -.125f);
|
ms.translate(-.125f, -.125f, -.125f);
|
||||||
|
|
||||||
if (launched instanceof ForBlockState) {
|
if (launched instanceof ForBlockState) {
|
||||||
|
|
|
@ -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.content.logistics.trains.entity.CarriageEntityHandler;
|
||||||
import com.simibubi.create.foundation.ModFilePackResources;
|
import com.simibubi.create.foundation.ModFilePackResources;
|
||||||
import com.simibubi.create.foundation.command.AllCommands;
|
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.ServerSpeedProvider;
|
||||||
import com.simibubi.create.foundation.utility.WorldAttached;
|
import com.simibubi.create.foundation.utility.WorldAttached;
|
||||||
import com.simibubi.create.foundation.utility.recipe.RecipeFinder;
|
import com.simibubi.create.foundation.utility.recipe.RecipeFinder;
|
||||||
|
@ -203,8 +204,11 @@ public class CommonEvents {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
IModFile modFile = modFileInfo.getFile();
|
IModFile modFile = modFileInfo.getFile();
|
||||||
event.addRepositorySource((consumer, constructor) -> {
|
event.addRepositorySource(consumer -> {
|
||||||
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));
|
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);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ public class ModFilePackResources extends PathPackResources {
|
||||||
protected final String sourcePath;
|
protected final String sourcePath;
|
||||||
|
|
||||||
public ModFilePackResources(String name, IModFile modFile, 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.modFile = modFile;
|
||||||
this.sourcePath = sourcePath;
|
this.sourcePath = sourcePath;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.simibubi.create.foundation.collision;
|
package com.simibubi.create.foundation.collision;
|
||||||
|
|
||||||
import com.mojang.math.Matrix4f;
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
@ -142,7 +142,7 @@ public class Matrix3d {
|
||||||
conversionBuffer[9] = (float) m21;
|
conversionBuffer[9] = (float) m21;
|
||||||
conversionBuffer[10] = (float) m22;
|
conversionBuffer[10] = (float) m22;
|
||||||
|
|
||||||
return new Matrix4f(conversionBuffer);
|
return new Matrix4f().setTransposed(conversionBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
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);
|
super.render(ms, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks);
|
||||||
|
|
||||||
button.x = x + width - 108;
|
button.setX(x + width - 108);
|
||||||
button.y = y + 10;
|
button.setY(y + 10);
|
||||||
button.setHeight(height - 20);
|
button.setHeight(height - 20);
|
||||||
button.render(ms, mouseX, mouseY, partialTicks);
|
button.render(ms, mouseX, mouseY, partialTicks);
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue