Added creative mode tab. Replaced player.level with level(). Replaced mojang.math with org.joml.

Using new SoundEvent.createVariableRangeEvent.
This commit is contained in:
Christian Knaapen
2023-07-29 18:02:30 +02:00
parent 4158ed254d
commit ee9b61f7fe
40 changed files with 133 additions and 100 deletions

View File

@@ -155,7 +155,7 @@ jar {
"Specification-Title": "effortlessbuilding", "Specification-Title": "effortlessbuilding",
"Specification-Vendor": "requios", "Specification-Vendor": "requios",
"Specification-Version": "1", "Specification-Version": "1",
"Implementation-Title": project.jar.baseName, "Implementation-Title": project.jar.archiveBaseName,
"Implementation-Version": project.jar.archiveVersion, "Implementation-Version": project.jar.archiveVersion,
"Implementation-Vendor" :"requios", "Implementation-Vendor" :"requios",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
@@ -167,7 +167,7 @@ task jarJarRelease {
group = 'jarjar' group = 'jarjar'
doLast { doLast {
tasks.jarJar { tasks.jarJar {
classifier = '' archiveClassifier = ''
} }
} }
finalizedBy tasks.jarJar finalizedBy tasks.jarJar

View File

@@ -3,7 +3,7 @@ package nl.requios.effortlessbuilding;
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.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix4f; import org.joml.Matrix4f;
import net.minecraft.client.gui.GuiComponent; import net.minecraft.client.gui.GuiComponent;
import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;

View File

@@ -5,6 +5,7 @@ import net.minecraft.world.InteractionHand;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraftforge.common.CreativeModeTabRegistry;
import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.event.RegisterCommandsEvent; import net.minecraftforge.event.RegisterCommandsEvent;
import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.TickEvent;

View File

@@ -0,0 +1,21 @@
package nl.requios.effortlessbuilding;
import net.minecraft.world.item.CreativeModeTab;
public class EBCreativeModeTab implements CreativeModeTab.DisplayItemsGenerator {
@Override
public void accept(CreativeModeTab.ItemDisplayParameters pParameters, CreativeModeTab.Output pOutput) {
pOutput.accept(EffortlessBuilding.RANDOMIZER_BAG_ITEM.get());
pOutput.accept(EffortlessBuilding.GOLDEN_RANDOMIZER_BAG_ITEM.get());
pOutput.accept(EffortlessBuilding.DIAMOND_RANDOMIZER_BAG_ITEM.get());
pOutput.accept(EffortlessBuilding.REACH_UPGRADE_1_ITEM.get());
pOutput.accept(EffortlessBuilding.REACH_UPGRADE_2_ITEM.get());
pOutput.accept(EffortlessBuilding.REACH_UPGRADE_3_ITEM.get());
pOutput.accept(EffortlessBuilding.MUSCLES_ITEM.get());
pOutput.accept(EffortlessBuilding.ELASTIC_HAND_ITEM.get());
pOutput.accept(EffortlessBuilding.BUILDING_TECHNIQUES_BOOK_ITEM.get());
}
}

View File

@@ -1,11 +1,15 @@
package nl.requios.effortlessbuilding; package nl.requios.effortlessbuilding;
import com.mojang.serialization.Codec; import com.mojang.serialization.Codec;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.flag.FeatureFlagSet;
import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.MenuType; import net.minecraft.world.inventory.MenuType;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.loot.IGlobalLootModifier; import net.minecraftforge.common.loot.IGlobalLootModifier;
@@ -54,6 +58,7 @@ public class EffortlessBuilding {
private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID);
private static final DeferredRegister<MenuType<?>> CONTAINERS = DeferredRegister.create(ForgeRegistries.MENU_TYPES, EffortlessBuilding.MODID); private static final DeferredRegister<MenuType<?>> CONTAINERS = DeferredRegister.create(ForgeRegistries.MENU_TYPES, EffortlessBuilding.MODID);
public static final DeferredRegister<Codec<? extends IGlobalLootModifier>> LOOT_MODIFIERS = DeferredRegister.create(ForgeRegistries.Keys.GLOBAL_LOOT_MODIFIER_SERIALIZERS, EffortlessBuilding.MODID); public static final DeferredRegister<Codec<? extends IGlobalLootModifier>> LOOT_MODIFIERS = DeferredRegister.create(ForgeRegistries.Keys.GLOBAL_LOOT_MODIFIER_SERIALIZERS, EffortlessBuilding.MODID);
private static final DeferredRegister<CreativeModeTab> CREATIVE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, EffortlessBuilding.MODID);
public static final RegistryObject<Item> RANDOMIZER_BAG_ITEM = ITEMS.register("randomizer_bag", RandomizerBagItem::new); public static final RegistryObject<Item> RANDOMIZER_BAG_ITEM = ITEMS.register("randomizer_bag", RandomizerBagItem::new);
public static final RegistryObject<Item> GOLDEN_RANDOMIZER_BAG_ITEM = ITEMS.register("golden_randomizer_bag", GoldenRandomizerBagItem::new); public static final RegistryObject<Item> GOLDEN_RANDOMIZER_BAG_ITEM = ITEMS.register("golden_randomizer_bag", GoldenRandomizerBagItem::new);
@@ -69,6 +74,12 @@ public class EffortlessBuilding {
public static final RegistryObject<MenuType<GoldenRandomizerBagContainer>> GOLDEN_RANDOMIZER_BAG_CONTAINER = CONTAINERS.register("golden_randomizer_bag", () -> registerContainer(GoldenRandomizerBagContainer::new)); public static final RegistryObject<MenuType<GoldenRandomizerBagContainer>> GOLDEN_RANDOMIZER_BAG_CONTAINER = CONTAINERS.register("golden_randomizer_bag", () -> registerContainer(GoldenRandomizerBagContainer::new));
public static final RegistryObject<MenuType<DiamondRandomizerBagContainer>> DIAMOND_RANDOMIZER_BAG_CONTAINER = CONTAINERS.register("diamond_randomizer_bag", () -> registerContainer(DiamondRandomizerBagContainer::new)); public static final RegistryObject<MenuType<DiamondRandomizerBagContainer>> DIAMOND_RANDOMIZER_BAG_CONTAINER = CONTAINERS.register("diamond_randomizer_bag", () -> registerContainer(DiamondRandomizerBagContainer::new));
public static final RegistryObject<CreativeModeTab> CREATIVE_TAB = CREATIVE_TABS.register("effortlessbuilding",
() -> CreativeModeTab.builder()
.title(Component.translatable("key.effortlessbuilding.category"))
.icon(() -> new ItemStack(RANDOMIZER_BAG_ITEM.get()))
.displayItems(new EBCreativeModeTab())
.build());
public EffortlessBuilding() { public EffortlessBuilding() {
instance = this; instance = this;
@@ -87,6 +98,8 @@ public class EffortlessBuilding {
var singleItemLootModifier = SingleItemLootModifier.CODEC; //load this class to register the loot modifier var singleItemLootModifier = SingleItemLootModifier.CODEC; //load this class to register the loot modifier
LOOT_MODIFIERS.register(FMLJavaModLoadingContext.get().getModEventBus()); LOOT_MODIFIERS.register(FMLJavaModLoadingContext.get().getModEventBus());
CREATIVE_TABS.register(FMLJavaModLoadingContext.get().getModEventBus());
//Register config //Register config
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, CommonConfig.spec); ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, CommonConfig.spec);
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ClientConfig.spec); ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ClientConfig.spec);
@@ -100,7 +113,7 @@ public class EffortlessBuilding {
} }
public static <T extends AbstractContainerMenu> MenuType<T> registerContainer(IContainerFactory<T> fact){ public static <T extends AbstractContainerMenu> MenuType<T> registerContainer(IContainerFactory<T> fact){
MenuType<T> type = new MenuType<T>(fact); MenuType<T> type = new MenuType<T>(fact, FeatureFlagSet.of());
return type; return type;
} }

View File

@@ -1,6 +1,6 @@
package nl.requios.effortlessbuilding.buildmode; package nl.requios.effortlessbuilding.buildmode;
import com.mojang.math.Vector4f; import org.joml.Vector4f;
public enum BuildModeCategoryEnum { public enum BuildModeCategoryEnum {
BASIC(new Vector4f(0f, .5f, 1f, .8f)), BASIC(new Vector4f(0f, .5f, 1f, .8f)),

View File

@@ -109,7 +109,7 @@ public class BuildModes {
if (!skipRaytrace) { if (!skipRaytrace) {
//collision within a 1 block radius to selected is fine //collision within a 1 block radius to selected is fine
ClipContext rayTraceContext = new ClipContext(start, lineBound, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, player); ClipContext rayTraceContext = new ClipContext(start, lineBound, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, player);
HitResult rayTraceResult = player.level.clip(rayTraceContext); HitResult rayTraceResult = player.level().clip(rayTraceContext);
intersects = rayTraceResult != null && rayTraceResult.getType() == HitResult.Type.BLOCK && intersects = rayTraceResult != null && rayTraceResult.getType() == HitResult.Type.BLOCK &&
planeBound.subtract(rayTraceResult.getLocation()).lengthSqr() > 4; planeBound.subtract(rayTraceResult.getLocation()).lengthSqr() > 4;
} }

View File

@@ -103,7 +103,7 @@ public class ModeOptions {
case CIRCLE_START_CORNER -> circleStart = ActionEnum.CIRCLE_START_CORNER; case CIRCLE_START_CORNER -> circleStart = ActionEnum.CIRCLE_START_CORNER;
} }
if (player.level.isClientSide && if (player.level().isClientSide &&
action != ActionEnum.OPEN_MODIFIER_SETTINGS && action != ActionEnum.OPEN_MODIFIER_SETTINGS &&
action != ActionEnum.OPEN_PLAYER_SETTINGS && action != ActionEnum.OPEN_PLAYER_SETTINGS &&
action != ActionEnum.PREVIOUS_BUILD_MODE && action != ActionEnum.PREVIOUS_BUILD_MODE &&

View File

@@ -120,11 +120,11 @@ public class RadialMirror extends BaseModifier {
BlockState newBlockState = blockState; BlockState newBlockState = blockState;
if (startAngleToCenter < -0.751 * Math.PI || startAngleToCenter > 0.749 * Math.PI) { if (startAngleToCenter < -0.751 * Math.PI || startAngleToCenter > 0.749 * Math.PI) {
newBlockState = blockState.rotate(player.level, startPos, Rotation.CLOCKWISE_180); newBlockState = blockState.rotate(player.level(), startPos, Rotation.CLOCKWISE_180);
} else if (startAngleToCenter < -0.251 * Math.PI) { } else if (startAngleToCenter < -0.251 * Math.PI) {
newBlockState = blockState.rotate(player.level, startPos, Rotation.COUNTERCLOCKWISE_90); newBlockState = blockState.rotate(player.level(), startPos, Rotation.COUNTERCLOCKWISE_90);
} else if (startAngleToCenter > 0.249 * Math.PI) { } else if (startAngleToCenter > 0.249 * Math.PI) {
newBlockState = blockState.rotate(player.level, startPos, Rotation.CLOCKWISE_90); newBlockState = blockState.rotate(player.level(), startPos, Rotation.CLOCKWISE_90);
} }
return newBlockState; return newBlockState;
@@ -135,17 +135,17 @@ public class RadialMirror extends BaseModifier {
double angleToCenter = Mth.atan2(relVec.x, relVec.z); //between -PI and PI double angleToCenter = Mth.atan2(relVec.x, relVec.z); //between -PI and PI
if (angleToCenter < -0.751 * Math.PI || angleToCenter > 0.749 * Math.PI) { if (angleToCenter < -0.751 * Math.PI || angleToCenter > 0.749 * Math.PI) {
newBlockState = blockState.rotate(player.level, startPos, Rotation.CLOCKWISE_180); newBlockState = blockState.rotate(player.level(), startPos, Rotation.CLOCKWISE_180);
if (alternate) { if (alternate) {
newBlockState = newBlockState.mirror(Mirror.FRONT_BACK); newBlockState = newBlockState.mirror(Mirror.FRONT_BACK);
} }
} else if (angleToCenter < -0.251 * Math.PI) { } else if (angleToCenter < -0.251 * Math.PI) {
newBlockState = blockState.rotate(player.level, startPos, Rotation.CLOCKWISE_90); newBlockState = blockState.rotate(player.level(), startPos, Rotation.CLOCKWISE_90);
if (alternate) { if (alternate) {
newBlockState = newBlockState.mirror(Mirror.LEFT_RIGHT); newBlockState = newBlockState.mirror(Mirror.LEFT_RIGHT);
} }
} else if (angleToCenter > 0.249 * Math.PI) { } else if (angleToCenter > 0.249 * Math.PI) {
newBlockState = blockState.rotate(player.level, startPos, Rotation.COUNTERCLOCKWISE_90); newBlockState = blockState.rotate(player.level(), startPos, Rotation.COUNTERCLOCKWISE_90);
if (alternate) { if (alternate) {
newBlockState = newBlockState.mirror(Mirror.LEFT_RIGHT); newBlockState = newBlockState.mirror(Mirror.LEFT_RIGHT);
} }

View File

@@ -3,7 +3,7 @@ package nl.requios.effortlessbuilding.create.foundation.gui;
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.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix4f; import org.joml.Matrix4f;
import nl.requios.effortlessbuilding.create.Create; import nl.requios.effortlessbuilding.create.Create;
import nl.requios.effortlessbuilding.create.foundation.gui.element.DelegatedStencilElement; import nl.requios.effortlessbuilding.create.foundation.gui.element.DelegatedStencilElement;
import nl.requios.effortlessbuilding.create.foundation.gui.element.ScreenElement; import nl.requios.effortlessbuilding.create.foundation.gui.element.ScreenElement;

View File

@@ -1,8 +1,8 @@
package nl.requios.effortlessbuilding.create.foundation.gui; package nl.requios.effortlessbuilding.create.foundation.gui;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.math.Matrix4f; import org.joml.Matrix4f;
import com.mojang.math.Vector3f; import org.joml.Vector3f;
public class CustomLightingSettings implements ILightingSettings { public class CustomLightingSettings implements ILightingSettings {

View File

@@ -3,7 +3,7 @@ package nl.requios.effortlessbuilding.create.foundation.gui;
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.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.Tesselator;
import com.mojang.math.Matrix4f; import org.joml.Matrix4f;
import net.minecraft.client.gui.Font; import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;

View File

@@ -6,8 +6,8 @@ import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.platform.Window; import com.mojang.blaze3d.platform.Window;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.*; import com.mojang.blaze3d.vertex.*;
import com.mojang.math.Matrix4f; import org.joml.Matrix4f;
import com.mojang.math.Vector3f; import org.joml.Vector3f;
import nl.requios.effortlessbuilding.create.foundation.utility.Color; import nl.requios.effortlessbuilding.create.foundation.utility.Color;
import nl.requios.effortlessbuilding.create.foundation.utility.Couple; import nl.requios.effortlessbuilding.create.foundation.utility.Couple;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;

View File

@@ -2,7 +2,7 @@ package nl.requios.effortlessbuilding.create.foundation.gui.element;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.*; import com.mojang.blaze3d.vertex.*;
import com.mojang.math.Matrix4f; import org.joml.Matrix4f;
import nl.requios.effortlessbuilding.create.foundation.utility.Color; import nl.requios.effortlessbuilding.create.foundation.utility.Color;
import nl.requios.effortlessbuilding.create.foundation.utility.Couple; import nl.requios.effortlessbuilding.create.foundation.utility.Couple;
import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.GameRenderer;

View File

@@ -7,7 +7,7 @@ import com.mojang.blaze3d.platform.GlStateManager.SourceFactor;
import com.mojang.blaze3d.platform.Lighting; import com.mojang.blaze3d.platform.Lighting;
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 org.joml.Vector3f;
//import nl.requios.effortlessbuilding.create.foundation.fluid.FluidRenderer; //import nl.requios.effortlessbuilding.create.foundation.fluid.FluidRenderer;
import nl.requios.effortlessbuilding.create.foundation.gui.ILightingSettings; import nl.requios.effortlessbuilding.create.foundation.gui.ILightingSettings;
import nl.requios.effortlessbuilding.create.foundation.gui.UIRenderHelper; import nl.requios.effortlessbuilding.create.foundation.gui.UIRenderHelper;

View File

@@ -14,11 +14,11 @@ import com.jozufozu.flywheel.util.transform.Transform;
import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.BufferBuilder;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix3f; import org.joml.Matrix3f;
import com.mojang.math.Matrix4f; import org.joml.Matrix4f;
import com.mojang.math.Quaternion; import org.joml.Quaternionf;
import com.mojang.math.Vector3f; import org.joml.Vector3f;
import com.mojang.math.Vector4f; import org.joml.Vector4f;
import nl.requios.effortlessbuilding.create.foundation.block.render.SpriteShiftEntry; import nl.requios.effortlessbuilding.create.foundation.block.render.SpriteShiftEntry;
import nl.requios.effortlessbuilding.create.foundation.utility.Color; import nl.requios.effortlessbuilding.create.foundation.utility.Color;
@@ -264,7 +264,7 @@ public class SuperByteBuffer implements Transform<SuperByteBuffer>, TStack<Super
} }
@Override @Override
public SuperByteBuffer multiply(Quaternion quaternion) { public SuperByteBuffer multiply(Quaternionf quaternion) {
transforms.mulPose(quaternion); transforms.mulPose(quaternion);
return this; return this;
} }
@@ -321,7 +321,7 @@ public class SuperByteBuffer implements Transform<SuperByteBuffer>, TStack<Super
return this; return this;
} }
public SuperByteBuffer rotateCentered(Quaternion q) { public SuperByteBuffer rotateCentered(Quaternionf q) {
translate(.5f, .5f, .5f).multiply(q) translate(.5f, .5f, .5f).multiply(q)
.translate(-.5f, -.5f, -.5f); .translate(-.5f, -.5f, -.5f);
return this; return this;

View File

@@ -6,8 +6,8 @@ import com.jozufozu.flywheel.config.BackendType;
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld; 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.math.Matrix4f; import org.joml.Matrix4f;
import com.mojang.math.Vector4f; import org.joml.Vector4f;
import nl.requios.effortlessbuilding.create.Create; import nl.requios.effortlessbuilding.create.Create;
import nl.requios.effortlessbuilding.create.foundation.utility.AnimationTickHolder; import nl.requios.effortlessbuilding.create.foundation.utility.AnimationTickHolder;
import nl.requios.effortlessbuilding.create.foundation.utility.RegisteredObjects; import nl.requios.effortlessbuilding.create.foundation.utility.RegisteredObjects;

View File

@@ -1,7 +1,7 @@
package nl.requios.effortlessbuilding.create.foundation.utility; package nl.requios.effortlessbuilding.create.foundation.utility;
import com.google.common.hash.Hashing; import com.google.common.hash.Hashing;
import com.mojang.math.Vector3f; import org.joml.Vector3f;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;

View File

@@ -2,7 +2,7 @@ package nl.requios.effortlessbuilding.create.foundation.utility;
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.Matrix4f; import org.joml.Matrix4f;
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.renderer.LightTexture; import net.minecraft.client.renderer.LightTexture;

View File

@@ -1,7 +1,7 @@
package nl.requios.effortlessbuilding.create.foundation.utility; package nl.requios.effortlessbuilding.create.foundation.utility;
import com.mojang.math.Quaternion; import org.joml.Quaternionf;
import com.mojang.math.Vector3f; import org.joml.Vector3f;
import net.minecraft.client.Camera; import net.minecraft.client.Camera;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
@@ -237,7 +237,7 @@ public class VecHelper {
*/ */
Camera ari = Minecraft.getInstance().gameRenderer.getMainCamera(); Camera ari = Minecraft.getInstance().gameRenderer.getMainCamera();
Vec3 camera_pos = ari.getPosition(); Vec3 camera_pos = ari.getPosition();
Quaternion camera_rotation_conj = ari.rotation() Quaternionf camera_rotation_conj = ari.rotation()
.copy(); .copy();
camera_rotation_conj.conj(); camera_rotation_conj.conj();
@@ -257,12 +257,12 @@ public class VecHelper {
float f = distwalked_modified - playerentity.walkDistO; float f = distwalked_modified - playerentity.walkDistO;
float f1 = -(distwalked_modified + f * partialTicks); float f1 = -(distwalked_modified + f * partialTicks);
float f2 = Mth.lerp(partialTicks, playerentity.oBob, playerentity.bob); float f2 = Mth.lerp(partialTicks, playerentity.oBob, playerentity.bob);
Quaternion q2 = Quaternionf q2 =
new Quaternion(Vector3f.XP, Math.abs(Mth.cos(f1 * (float) Math.PI - 0.2F) * f2) * 5.0F, true); new Quaternionf(Vector3f.XP, Math.abs(Mth.cos(f1 * (float) Math.PI - 0.2F) * f2) * 5.0F, true);
q2.conj(); q2.conj();
result3f.transform(q2); result3f.transform(q2);
Quaternion q1 = new Quaternion(Vector3f.ZP, Mth.sin(f1 * (float) Math.PI) * f2 * 3.0F, true); Quaternionf q1 = new Quaternionf(Vector3f.ZP, Mth.sin(f1 * (float) Math.PI) * f2 * 3.0F, true);
q1.conj(); q1.conj();
result3f.transform(q1); result3f.transform(q1);

View File

@@ -3,7 +3,7 @@ package nl.requios.effortlessbuilding.create.foundation.utility.outliner;
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.Matrix3f; import org.joml.Matrix3f;
import nl.requios.effortlessbuilding.create.AllSpecialTextures; import nl.requios.effortlessbuilding.create.AllSpecialTextures;
import nl.requios.effortlessbuilding.create.foundation.render.RenderTypes; import nl.requios.effortlessbuilding.create.foundation.render.RenderTypes;
import nl.requios.effortlessbuilding.create.foundation.render.SuperRenderTypeBuffer; import nl.requios.effortlessbuilding.create.foundation.render.SuperRenderTypeBuffer;

View File

@@ -141,7 +141,7 @@ public class DiamondRandomizerBagContainer extends AbstractContainerMenu {
@Override @Override
public void removed(Player player) { public void removed(Player player) {
super.removed(player); super.removed(player);
if (!player.level.isClientSide) { if (!player.level().isClientSide) {
broadcastChanges(); broadcastChanges();
} }
} }

View File

@@ -139,7 +139,7 @@ public class GoldenRandomizerBagContainer extends AbstractContainerMenu {
@Override @Override
public void removed(Player player) { public void removed(Player player) {
super.removed(player); super.removed(player);
if (!player.level.isClientSide) { if (!player.level().isClientSide) {
broadcastChanges(); broadcastChanges();
} }
} }

View File

@@ -139,7 +139,7 @@ public class RandomizerBagContainer extends AbstractContainerMenu {
@Override @Override
public void removed(Player player) { public void removed(Player player) {
super.removed(player); super.removed(player);
if (!player.level.isClientSide) { if (!player.level().isClientSide) {
broadcastChanges(); broadcastChanges();
} }
} }

View File

@@ -2,7 +2,7 @@ package nl.requios.effortlessbuilding.gui.buildmode;
import com.mojang.blaze3d.vertex.*; import com.mojang.blaze3d.vertex.*;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.math.Vector4f; import org.joml.Vector4f;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.GameRenderer;
@@ -476,7 +476,7 @@ public class RadialMenu extends Screen {
public static void playRadialMenuSound() { public static void playRadialMenuSound() {
final float volume = 0.1f; final float volume = 0.1f;
if (volume >= 0.0001f) { if (volume >= 0.0001f) {
SimpleSoundInstance sound = new SimpleSoundInstance(SoundEvents.UI_BUTTON_CLICK, SoundSource.MASTER, volume, SimpleSoundInstance sound = new SimpleSoundInstance(SoundEvents.UI_BUTTON_CLICK.get(), SoundSource.MASTER, volume,
1.0f, RandomSource.create(), Minecraft.getInstance().player.blockPosition()); 1.0f, RandomSource.create(), Minecraft.getInstance().player.blockPosition());
Minecraft.getInstance().getSoundManager().play(sound); Minecraft.getInstance().getSoundManager().play(sound);
} }

View File

@@ -50,7 +50,7 @@ public abstract class AbstractRandomizerBagItem extends Item {
private static final Random rand = new Random(currentSeed); private static final Random rand = new Random(currentSeed);
public AbstractRandomizerBagItem() { public AbstractRandomizerBagItem() {
super(new Item.Properties().tab(CreativeModeTab.TAB_TOOLS).stacksTo(1)); super(new Item.Properties().stacksTo(1));
} }
public abstract int getInventorySize(); public abstract int getInventorySize();

View File

@@ -25,7 +25,7 @@ import java.util.List;
@MethodsReturnNonnullByDefault @MethodsReturnNonnullByDefault
public class PowerLevelItem extends Item { public class PowerLevelItem extends Item {
public PowerLevelItem() { public PowerLevelItem() {
super(new Item.Properties().tab(CreativeModeTab.TAB_TOOLS)); super(new Item.Properties());
} }
@Override @Override
@@ -39,7 +39,7 @@ public class PowerLevelItem extends Item {
EffortlessBuilding.log(player, "Upgraded power level to " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel()); EffortlessBuilding.log(player, "Upgraded power level to " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel());
player.setItemInHand(hand, ItemStack.EMPTY); player.setItemInHand(hand, ItemStack.EMPTY);
SoundEvent soundEvent = new SoundEvent(new ResourceLocation("entity.player.levelup")); SoundEvent soundEvent = SoundEvent.createVariableRangeEvent(new ResourceLocation("entity.player.levelup"));
player.playSound(soundEvent, 1f, 1f); player.playSound(soundEvent, 1f, 1f);
return InteractionResultHolder.consume(player.getItemInHand(hand)); return InteractionResultHolder.consume(player.getItemInHand(hand));
@@ -48,7 +48,7 @@ public class PowerLevelItem extends Item {
EffortlessBuilding.log(player, "Already reached maximum power level!"); EffortlessBuilding.log(player, "Already reached maximum power level!");
SoundEvent soundEvent = new SoundEvent(new ResourceLocation("item.armor.equip_leather")); SoundEvent soundEvent = SoundEvent.createVariableRangeEvent(new ResourceLocation("item.armor.equip_leather"));
player.playSound(soundEvent, 1f, 1f); player.playSound(soundEvent, 1f, 1f);
return InteractionResultHolder.fail(player.getItemInHand(hand)); return InteractionResultHolder.fail(player.getItemInHand(hand));

View File

@@ -27,7 +27,7 @@ import net.minecraft.world.InteractionResultHolder;
public class ReachUpgrade1Item extends Item { public class ReachUpgrade1Item extends Item {
public ReachUpgrade1Item() { public ReachUpgrade1Item() {
super(new Item.Properties().tab(CreativeModeTab.TAB_TOOLS).stacksTo(1)); super(new Item.Properties().stacksTo(1));
} }
@Override @Override
@@ -42,7 +42,7 @@ public class ReachUpgrade1Item extends Item {
EffortlessBuilding.log(player, "Upgraded power level to " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel()); EffortlessBuilding.log(player, "Upgraded power level to " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel());
player.setItemInHand(hand, ItemStack.EMPTY); player.setItemInHand(hand, ItemStack.EMPTY);
SoundEvent soundEvent = new SoundEvent(new ResourceLocation("entity.player.levelup")); SoundEvent soundEvent = SoundEvent.createVariableRangeEvent(new ResourceLocation("entity.player.levelup"));
player.playSound(soundEvent, 1f, 1f); player.playSound(soundEvent, 1f, 1f);
return InteractionResultHolder.consume(player.getItemInHand(hand)); return InteractionResultHolder.consume(player.getItemInHand(hand));
@@ -51,7 +51,7 @@ public class ReachUpgrade1Item extends Item {
EffortlessBuilding.log(player, "Already used this upgrade! Current power level is " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel() + "."); EffortlessBuilding.log(player, "Already used this upgrade! Current power level is " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel() + ".");
SoundEvent soundEvent = new SoundEvent(new ResourceLocation("item.armor.equip_leather")); SoundEvent soundEvent = SoundEvent.createVariableRangeEvent(new ResourceLocation("item.armor.equip_leather"));
player.playSound(soundEvent, 1f, 1f); player.playSound(soundEvent, 1f, 1f);
} }

View File

@@ -28,7 +28,7 @@ import net.minecraft.world.InteractionResultHolder;
public class ReachUpgrade2Item extends Item { public class ReachUpgrade2Item extends Item {
public ReachUpgrade2Item() { public ReachUpgrade2Item() {
super(new Item.Properties().tab(CreativeModeTab.TAB_TOOLS).stacksTo(1)); super(new Item.Properties().stacksTo(1));
} }
@Override @Override
@@ -43,7 +43,7 @@ public class ReachUpgrade2Item extends Item {
EffortlessBuilding.log(player, "Upgraded power level to " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel()); EffortlessBuilding.log(player, "Upgraded power level to " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel());
player.setItemInHand(hand, ItemStack.EMPTY); player.setItemInHand(hand, ItemStack.EMPTY);
SoundEvent soundEvent = new SoundEvent(new ResourceLocation("entity.player.levelup")); SoundEvent soundEvent = SoundEvent.createVariableRangeEvent(new ResourceLocation("entity.player.levelup"));
player.playSound(soundEvent, 1f, 1f); player.playSound(soundEvent, 1f, 1f);
return InteractionResultHolder.consume(player.getItemInHand(hand)); return InteractionResultHolder.consume(player.getItemInHand(hand));
@@ -52,7 +52,7 @@ public class ReachUpgrade2Item extends Item {
EffortlessBuilding.log(player, "Use Reach Upgrade 1 first."); EffortlessBuilding.log(player, "Use Reach Upgrade 1 first.");
SoundEvent soundEvent = new SoundEvent(new ResourceLocation("item.armor.equip_leather")); SoundEvent soundEvent = SoundEvent.createVariableRangeEvent(new ResourceLocation("item.armor.equip_leather"));
player.playSound(soundEvent, 1f, 1f); player.playSound(soundEvent, 1f, 1f);
@@ -60,7 +60,7 @@ public class ReachUpgrade2Item extends Item {
EffortlessBuilding.log(player, "Already used this upgrade! Current power level is " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel() + "."); EffortlessBuilding.log(player, "Already used this upgrade! Current power level is " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel() + ".");
SoundEvent soundEvent = new SoundEvent(new ResourceLocation("item.armor.equip_leather")); SoundEvent soundEvent = SoundEvent.createVariableRangeEvent(new ResourceLocation("item.armor.equip_leather"));
player.playSound(soundEvent, 1f, 1f); player.playSound(soundEvent, 1f, 1f);
} }

View File

@@ -28,7 +28,7 @@ import net.minecraft.world.InteractionResultHolder;
public class ReachUpgrade3Item extends Item { public class ReachUpgrade3Item extends Item {
public ReachUpgrade3Item() { public ReachUpgrade3Item() {
super(new Item.Properties().tab(CreativeModeTab.TAB_TOOLS).stacksTo(1)); super(new Item.Properties().stacksTo(1));
} }
@Override @Override
@@ -43,7 +43,7 @@ public class ReachUpgrade3Item extends Item {
EffortlessBuilding.log(player, "Upgraded power level to " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel()); EffortlessBuilding.log(player, "Upgraded power level to " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel());
player.setItemInHand(hand, ItemStack.EMPTY); player.setItemInHand(hand, ItemStack.EMPTY);
SoundEvent soundEvent = new SoundEvent(new ResourceLocation("entity.player.levelup")); SoundEvent soundEvent = SoundEvent.createVariableRangeEvent(new ResourceLocation("entity.player.levelup"));
player.playSound(soundEvent, 1f, 1f); player.playSound(soundEvent, 1f, 1f);
return InteractionResultHolder.consume(player.getItemInHand(hand)); return InteractionResultHolder.consume(player.getItemInHand(hand));
@@ -53,7 +53,7 @@ public class ReachUpgrade3Item extends Item {
if (currentLevel == 0) EffortlessBuilding.log(player, "Use Reach Upgrade 1 and 2 first."); if (currentLevel == 0) EffortlessBuilding.log(player, "Use Reach Upgrade 1 and 2 first.");
if (currentLevel == 1) EffortlessBuilding.log(player, "Use Reach Upgrade 2 first."); if (currentLevel == 1) EffortlessBuilding.log(player, "Use Reach Upgrade 2 first.");
SoundEvent soundEvent = new SoundEvent(new ResourceLocation("item.armor.equip_leather")); SoundEvent soundEvent = SoundEvent.createVariableRangeEvent(new ResourceLocation("item.armor.equip_leather"));
player.playSound(soundEvent, 1f, 1f); player.playSound(soundEvent, 1f, 1f);
@@ -61,7 +61,7 @@ public class ReachUpgrade3Item extends Item {
EffortlessBuilding.log(player, "Already used this upgrade! Current power level is " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel() + "."); EffortlessBuilding.log(player, "Already used this upgrade! Current power level is " + EffortlessBuildingClient.POWER_LEVEL.getPowerLevel() + ".");
SoundEvent soundEvent = new SoundEvent(new ResourceLocation("item.armor.equip_leather")); SoundEvent soundEvent = SoundEvent.createVariableRangeEvent(new ResourceLocation("item.armor.equip_leather"));
player.playSound(soundEvent, 1f, 1f); player.playSound(soundEvent, 1f, 1f);
} }

View File

@@ -148,10 +148,10 @@ public class BlockPreviews {
if (EffortlessBuildingClient.BUILDER_CHAIN.getLookingAtNear() != null) return; if (EffortlessBuildingClient.BUILDER_CHAIN.getLookingAtNear() != null) return;
AABB aabb = new AABB(pos); AABB aabb = new AABB(pos);
if (player.level.isLoaded(pos)) { if (player.level().isLoaded(pos)) {
var blockState = player.level.getBlockState(pos); var blockState = player.level().getBlockState(pos);
if (!blockState.isAir()) { if (!blockState.isAir()) {
aabb = blockState.getShape(player.level, pos).bounds().move(pos); aabb = blockState.getShape(player.level(), pos).bounds().move(pos);
} }
} }

View File

@@ -3,7 +3,7 @@ package nl.requios.effortlessbuilding.render;
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 net.minecraft.client.renderer.MultiBufferSource.BufferSource; import net.minecraft.client.renderer.MultiBufferSource.BufferSource;
import com.mojang.math.Matrix4f; import org.joml.Matrix4f;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;

View File

@@ -88,7 +88,7 @@ public class BuilderChain {
player.swing(InteractionHand.MAIN_HAND); player.swing(InteractionHand.MAIN_HAND);
blocks.skipFirst = buildMode == BuildModeEnum.DISABLED; blocks.skipFirst = buildMode == BuildModeEnum.DISABLED;
long placeTime = player.level.getGameTime(); long placeTime = player.level().getGameTime();
if (blocks.size() > 1) placeTime += ClientConfig.visuals.appearAnimationLength.get(); if (blocks.size() > 1) placeTime += ClientConfig.visuals.appearAnimationLength.get();
PacketHandler.INSTANCE.sendToServer(new ServerPlaceBlocksPacket(blocks, placeTime)); PacketHandler.INSTANCE.sendToServer(new ServerPlaceBlocksPacket(blocks, placeTime));
} }
@@ -112,7 +112,7 @@ public class BuilderChain {
blocks.setStartPos(new BlockEntry(startPosForBreaking)); blocks.setStartPos(new BlockEntry(startPosForBreaking));
EffortlessBuildingClient.BUILD_MODIFIERS.findCoordinates(blocks, player); EffortlessBuildingClient.BUILD_MODIFIERS.findCoordinates(blocks, player);
EffortlessBuildingClient.BUILDER_FILTER.filterOnCoordinates(blocks, player); EffortlessBuildingClient.BUILDER_FILTER.filterOnCoordinates(blocks, player);
findExistingBlockStates(player.level); findExistingBlockStates(player.level());
EffortlessBuildingClient.BUILDER_FILTER.filterOnExistingBlockStates(blocks, player); EffortlessBuildingClient.BUILDER_FILTER.filterOnExistingBlockStates(blocks, player);
} }
@@ -231,7 +231,7 @@ public class BuilderChain {
//Offset in direction of sidehit if not quickreplace and not replaceable //Offset in direction of sidehit if not quickreplace and not replaceable
boolean shouldOffsetStartPosition = EffortlessBuildingClient.BUILD_SETTINGS.shouldOffsetStartPosition(); boolean shouldOffsetStartPosition = EffortlessBuildingClient.BUILD_SETTINGS.shouldOffsetStartPosition();
boolean replaceable = player.level.getBlockState(startPos).getMaterial().isReplaceable(); boolean replaceable = player.level().getBlockState(startPos).getMaterial().isReplaceable();
boolean becomesDoubleSlab = SurvivalHelper.doesBecomeDoubleSlab(player, startPos); boolean becomesDoubleSlab = SurvivalHelper.doesBecomeDoubleSlab(player, startPos);
if (!shouldOffsetStartPosition && !replaceable && !becomesDoubleSlab) { if (!shouldOffsetStartPosition && !replaceable && !becomesDoubleSlab) {
startPos = startPos.relative(lookingAt.getDirection()); startPos = startPos.relative(lookingAt.getDirection());
@@ -281,7 +281,7 @@ public class BuilderChain {
} }
//Find new blockstate //Find new blockstate
blockEntry.setItemAndFindNewBlockState(itemStack, player.level, originalDirection, clickedFace, relativeHitVec); blockEntry.setItemAndFindNewBlockState(itemStack, player.level(), originalDirection, clickedFace, relativeHitVec);
//Filter on new blockstate //Filter on new blockstate
if (EffortlessBuildingClient.BUILDER_FILTER.filterOnNewBlockState(blockEntry, player)) { if (EffortlessBuildingClient.BUILDER_FILTER.filterOnNewBlockState(blockEntry, player)) {
@@ -320,9 +320,9 @@ public class BuilderChain {
if (blocks.getLastBlockEntry() != null && blocks.getLastBlockEntry().newBlockState != null) { if (blocks.getLastBlockEntry() != null && blocks.getLastBlockEntry().newBlockState != null) {
var lastBlockState = blocks.getLastBlockEntry().newBlockState; var lastBlockState = blocks.getLastBlockEntry().newBlockState;
SoundType soundType = lastBlockState.getBlock().getSoundType(lastBlockState, player.level, blocks.lastPos, player); SoundType soundType = lastBlockState.getBlock().getSoundType(lastBlockState, player.level(), blocks.lastPos, player);
SoundEvent soundEvent = buildingState == BuildingState.BREAKING ? soundType.getBreakSound() : soundType.getPlaceSound(); SoundEvent soundEvent = buildingState == BuildingState.BREAKING ? soundType.getBreakSound() : soundType.getPlaceSound();
player.level.playSound(player, player.blockPosition(), soundEvent, SoundSource.BLOCKS, 0.3f, 0.8f); player.level().playSound(player, player.blockPosition(), soundEvent, SoundSource.BLOCKS, 0.3f, 0.8f);
} }
} }
} }

View File

@@ -14,7 +14,7 @@ import nl.requios.effortlessbuilding.utilities.SurvivalHelper;
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public class BuilderFilter { public class BuilderFilter {
public void filterOnCoordinates(BlockSet blocks, Player player) { public void filterOnCoordinates(BlockSet blocks, Player player) {
var world = player.level; var world = player.level();
var iter = blocks.entrySet().iterator(); var iter = blocks.entrySet().iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
var pos = iter.next().getValue().blockPos; var pos = iter.next().getValue().blockPos;
@@ -43,7 +43,7 @@ public class BuilderFilter {
if (placing && !buildSettings.shouldReplaceFiltered()) { if (placing && !buildSettings.shouldReplaceFiltered()) {
if (!buildSettings.shouldReplaceAir() && blockState.isAir()) remove = true; if (!buildSettings.shouldReplaceAir() && blockState.isAir()) remove = true;
boolean isReplaceable = blockState.getMaterial().isReplaceable(); boolean isReplaceable = blockState.getMaterial().isReplaceable();
// boolean isSolid = blockState.isRedstoneConductor(player.level, blockEntry.blockPos); // boolean isSolid = blockState.isRedstoneConductor(player.level(), blockEntry.blockPos);
if (!buildSettings.shouldReplaceBlocks() && !isReplaceable) remove = true; if (!buildSettings.shouldReplaceBlocks() && !isReplaceable) remove = true;
} }
@@ -78,7 +78,7 @@ public class BuilderFilter {
boolean remove = false; boolean remove = false;
if (placing && !PlaceChecker.shouldPlaceBlock(player.level, blockEntry)) remove = true; if (placing && !PlaceChecker.shouldPlaceBlock(player.level(), blockEntry)) remove = true;
return remove; return remove;
} }

View File

@@ -34,7 +34,7 @@ public class ServerBlockPlacer {
//Iterator to prevent concurrent modification exception //Iterator to prevent concurrent modification exception
for (var iterator = delayedEntries.iterator(); iterator.hasNext(); ) { for (var iterator = delayedEntries.iterator(); iterator.hasNext(); ) {
DelayedEntry entry = iterator.next(); DelayedEntry entry = iterator.next();
long gameTime = entry.player.level.getGameTime(); long gameTime = entry.player.level().getGameTime();
if (gameTime >= entry.placeTime) { if (gameTime >= entry.placeTime) {
applyBlockSet(entry.player, entry.blocks); applyBlockSet(entry.player, entry.blocks);
iterator.remove(); iterator.remove();
@@ -104,7 +104,7 @@ public class ServerBlockPlacer {
private boolean applyBlockEntry(Player player, BlockEntry block) { private boolean applyBlockEntry(Player player, BlockEntry block) {
block.existingBlockState = player.level.getBlockState(block.blockPos); block.existingBlockState = player.level().getBlockState(block.blockPos);
boolean breaking = BlockUtilities.isNullOrAir(block.newBlockState); boolean breaking = BlockUtilities.isNullOrAir(block.newBlockState);
if (!validateBlockEntry(player, block, breaking)) return false; if (!validateBlockEntry(player, block, breaking)) return false;
@@ -139,7 +139,7 @@ public class ServerBlockPlacer {
if (!validateBlockEntry(player, tempBlockEntry, breaking)) return false; if (!validateBlockEntry(player, tempBlockEntry, breaking)) return false;
//Update newBlockState for future redo's //Update newBlockState for future redo's
block.newBlockState = player.level.getBlockState(block.blockPos); block.newBlockState = player.level().getBlockState(block.blockPos);
boolean success; boolean success;
isPlacingOrBreakingBlocks = true; isPlacingOrBreakingBlocks = true;
@@ -236,7 +236,7 @@ public class ServerBlockPlacer {
private boolean validateBlockEntry(Player player, BlockEntry block, boolean breaking) { private boolean validateBlockEntry(Player player, BlockEntry block, boolean breaking) {
if (!player.level.isLoaded(block.blockPos)) return false; if (!player.level().isLoaded(block.blockPos)) return false;
if (breaking && BlockUtilities.isNullOrAir(block.existingBlockState)) return false; if (breaking && BlockUtilities.isNullOrAir(block.existingBlockState)) return false;

View File

@@ -100,7 +100,7 @@ public class UndoRedo {
// //
// //add to undo stack // //add to undo stack
// public static void addUndo(Player player, UndoRedoBlockSet blockSet) { // public static void addUndo(Player player, UndoRedoBlockSet blockSet) {
// Map<UUID, FixedStack<UndoRedoBlockSet>> undoStacks = player.level.isClientSide ? undoStacksClient : undoStacksServer; // Map<UUID, FixedStack<UndoRedoBlockSet>> undoStacks = player.level().isClientSide ? undoStacksClient : undoStacksServer;
// //
// //Assert coordinates is as long as previous and new blockstate lists // //Assert coordinates is as long as previous and new blockstate lists
// if (blockSet.getCoordinates().size() != blockSet.getPreviousBlockStates().size() || // if (blockSet.getCoordinates().size() != blockSet.getPreviousBlockStates().size() ||
@@ -127,7 +127,7 @@ public class UndoRedo {
// } // }
// //
// private static void addRedo(Player player, UndoRedoBlockSet blockSet) { // private static void addRedo(Player player, UndoRedoBlockSet blockSet) {
// Map<UUID, FixedStack<UndoRedoBlockSet>> redoStacks = player.level.isClientSide ? redoStacksClient : redoStacksServer; // Map<UUID, FixedStack<UndoRedoBlockSet>> redoStacks = player.level().isClientSide ? redoStacksClient : redoStacksServer;
// //
// //(No asserts necessary, it's private) // //(No asserts necessary, it's private)
// //
@@ -140,7 +140,7 @@ public class UndoRedo {
// } // }
// //
// public static boolean undo(Player player) { // public static boolean undo(Player player) {
// Map<UUID, FixedStack<UndoRedoBlockSet>> undoStacks = player.level.isClientSide ? undoStacksClient : undoStacksServer; // Map<UUID, FixedStack<UndoRedoBlockSet>> undoStacks = player.level().isClientSide ? undoStacksClient : undoStacksServer;
// //
// if (!undoStacks.containsKey(player.getUUID())) return false; // if (!undoStacks.containsKey(player.getUUID())) return false;
// //
@@ -156,7 +156,7 @@ public class UndoRedo {
// //Find up to date itemstacks in player inventory // //Find up to date itemstacks in player inventory
// List<ItemStack> itemStacks = findItemStacksInInventory(player, previousBlockStates); // List<ItemStack> itemStacks = findItemStacksInInventory(player, previousBlockStates);
// //
// if (player.level.isClientSide) { // if (player.level().isClientSide) {
//// BlockPreviews.onBlocksBroken(coordinates, itemStacks, newBlockStates, blockSet.getSecondPos(), blockSet.getFirstPos()); //// BlockPreviews.onBlocksBroken(coordinates, itemStacks, newBlockStates, blockSet.getSecondPos(), blockSet.getFirstPos());
// } else { // } else {
// //break all those blocks, reset to what they were // //break all those blocks, reset to what they were
@@ -172,7 +172,7 @@ public class UndoRedo {
// previousBlockState = ((BlockItem) itemStack.getItem()).getBlock().defaultBlockState(); // previousBlockState = ((BlockItem) itemStack.getItem()).getBlock().defaultBlockState();
// } // }
// //
// if (player.level.isLoaded(coordinate)) { // if (player.level().isLoaded(coordinate)) {
// //check itemstack empty // //check itemstack empty
// if (itemStack.isEmpty() && !player.isCreative()) { // if (itemStack.isEmpty() && !player.isCreative()) {
// itemStack = findItemStackInInventory(player, previousBlockStates.get(i)); // itemStack = findItemStackInInventory(player, previousBlockStates.get(i));
@@ -185,9 +185,9 @@ public class UndoRedo {
// previousBlockState = Blocks.AIR.defaultBlockState(); // previousBlockState = Blocks.AIR.defaultBlockState();
// } // }
// } // }
// if (itemStack.isEmpty()) SurvivalHelper.breakBlock(player.level, player, coordinate, true); // if (itemStack.isEmpty()) SurvivalHelper.breakBlock(player.level(), player, coordinate, true);
// //if previousBlockState is air, placeBlock will set it to air // //if previousBlockState is air, placeBlock will set it to air
// SurvivalHelper.placeBlock(player.level, player, coordinate, previousBlockState, itemStack, true, false, false); // SurvivalHelper.placeBlock(player.level(), player, coordinate, previousBlockState, itemStack, true, false, false);
// } // }
// } // }
// } // }
@@ -199,7 +199,7 @@ public class UndoRedo {
// } // }
// //
// public static boolean redo(Player player) { // public static boolean redo(Player player) {
// Map<UUID, FixedStack<UndoRedoBlockSet>> redoStacks = player.level.isClientSide ? redoStacksClient : redoStacksServer; // Map<UUID, FixedStack<UndoRedoBlockSet>> redoStacks = player.level().isClientSide ? redoStacksClient : redoStacksServer;
// //
// if (!redoStacks.containsKey(player.getUUID())) return false; // if (!redoStacks.containsKey(player.getUUID())) return false;
// //
@@ -215,7 +215,7 @@ public class UndoRedo {
// //Find up to date itemstacks in player inventory // //Find up to date itemstacks in player inventory
// List<ItemStack> itemStacks = findItemStacksInInventory(player, newBlockStates); // List<ItemStack> itemStacks = findItemStacksInInventory(player, newBlockStates);
// //
// if (player.level.isClientSide) { // if (player.level().isClientSide) {
//// BlockPreviews.onBlocksPlaced(coordinates, itemStacks, newBlockStates, blockSet.getFirstPos(), blockSet.getSecondPos()); //// BlockPreviews.onBlocksPlaced(coordinates, itemStacks, newBlockStates, blockSet.getFirstPos(), blockSet.getSecondPos());
// } else { // } else {
// //place blocks // //place blocks
@@ -231,7 +231,7 @@ public class UndoRedo {
// newBlockState = ((BlockItem) itemStack.getItem()).getBlock().defaultBlockState(); // newBlockState = ((BlockItem) itemStack.getItem()).getBlock().defaultBlockState();
// } // }
// //
// if (player.level.isLoaded(coordinate)) { // if (player.level().isLoaded(coordinate)) {
// //check itemstack empty // //check itemstack empty
// if (itemStack.isEmpty() && !player.isCreative()) { // if (itemStack.isEmpty() && !player.isCreative()) {
// itemStack = findItemStackInInventory(player, newBlockStates.get(i)); // itemStack = findItemStackInInventory(player, newBlockStates.get(i));
@@ -244,8 +244,8 @@ public class UndoRedo {
// newBlockState = Blocks.AIR.defaultBlockState(); // newBlockState = Blocks.AIR.defaultBlockState();
// } // }
// } // }
// if (itemStack.isEmpty()) SurvivalHelper.breakBlock(player.level, player, coordinate, true); // if (itemStack.isEmpty()) SurvivalHelper.breakBlock(player.level(), player, coordinate, true);
// SurvivalHelper.placeBlock(player.level, player, coordinate, newBlockState, itemStack, true, false, false); // SurvivalHelper.placeBlock(player.level(), player, coordinate, newBlockState, itemStack, true, false, false);
// } // }
// } // }
// } // }
@@ -286,8 +286,8 @@ public class UndoRedo {
//then anything it drops //then anything it drops
if (itemStack.isEmpty()) { if (itemStack.isEmpty()) {
//Cannot check drops on clientside because loot tables are server only //Cannot check drops on clientside because loot tables are server only
if (!player.level.isClientSide) { if (!player.level().isClientSide) {
List<ItemStack> itemsDropped = Block.getDrops(blockState, (ServerLevel) player.level, BlockPos.ZERO, null); List<ItemStack> itemsDropped = Block.getDrops(blockState, (ServerLevel) player.level(), BlockPos.ZERO, null);
for (ItemStack itemStackDropped : itemsDropped) { for (ItemStack itemStackDropped : itemsDropped) {
if (itemStackDropped.getItem() instanceof BlockItem) { if (itemStackDropped.getItem() instanceof BlockItem) {
Block block = ((BlockItem) itemStackDropped.getItem()).getBlock(); Block block = ((BlockItem) itemStackDropped.getItem()).getBlock();

View File

@@ -35,7 +35,7 @@ public class BlockPlacerHelper {
} }
} }
boolean brokeBlock = BlockHelper.destroyBlockAs(player.level, blockEntry.blockPos, player, usedTool, 0f, stack -> { boolean brokeBlock = BlockHelper.destroyBlockAs(player.level(), blockEntry.blockPos, player, usedTool, 0f, stack -> {
if (!player.isCreative()) { if (!player.isCreative()) {
ItemHandlerHelper.giveItemToPlayer(player, stack); ItemHandlerHelper.giveItemToPlayer(player, stack);
} }
@@ -46,7 +46,7 @@ public class BlockPlacerHelper {
//ForgeHooks::onPlaceItemIntoWorld, removed itemstack usage //ForgeHooks::onPlaceItemIntoWorld, removed itemstack usage
public static boolean placeBlock(Player player, BlockEntry blockEntry) { public static boolean placeBlock(Player player, BlockEntry blockEntry) {
Level level = player.level; Level level = player.level();
var itemStack = new ItemStack(blockEntry.item); var itemStack = new ItemStack(blockEntry.item);
level.captureBlockSnapshots = true; level.captureBlockSnapshots = true;

View File

@@ -43,13 +43,13 @@ public class ClientBlockUtilities {
if (blockEntry == null || blockEntry.newBlockState == null) if (blockEntry == null || blockEntry.newBlockState == null)
return; return;
SoundType soundType = blockEntry.newBlockState.getBlock().getSoundType(blockEntry.newBlockState, player.level, blockEntry.blockPos, player); SoundType soundType = blockEntry.newBlockState.getBlock().getSoundType(blockEntry.newBlockState, player.level(), blockEntry.blockPos, player);
SoundEvent soundEvent = breaking ? soundType.getBreakSound() : soundType.getPlaceSound(); SoundEvent soundEvent = breaking ? soundType.getBreakSound() : soundType.getPlaceSound();
player.level.playSound(player, player.blockPosition(), soundEvent, SoundSource.BLOCKS, 0.6f, soundType.getPitch()); player.level().playSound(player, player.blockPosition(), soundEvent, SoundSource.BLOCKS, 0.6f, soundType.getPitch());
} }
public static BlockHitResult getLookingAtFar(Player player) { public static BlockHitResult getLookingAtFar(Player player) {
Level world = player.level; Level world = player.level();
//base distance off of player ability (config) //base distance off of player ability (config)
float raytraceRange = EffortlessBuildingClient.POWER_LEVEL.getPlacementReach(player); float raytraceRange = EffortlessBuildingClient.POWER_LEVEL.getPlacementReach(player);

View File

@@ -43,7 +43,7 @@ public class SurvivalHelper {
public static boolean doesBecomeDoubleSlab(Player player, BlockPos pos) { public static boolean doesBecomeDoubleSlab(Player player, BlockPos pos) {
BlockState placedBlockState = player.level.getBlockState(pos); BlockState placedBlockState = player.level().getBlockState(pos);
ItemStack itemstack = player.getItemInHand(InteractionHand.MAIN_HAND); ItemStack itemstack = player.getItemInHand(InteractionHand.MAIN_HAND);
if (CompatHelper.isItemBlockProxy(itemstack)) if (CompatHelper.isItemBlockProxy(itemstack))

View File

@@ -1,8 +1,6 @@
{ {
"pack": { "pack": {
"description": "examplemod resources", "description": "Effortless Building resources",
"pack_format": 10, "pack_format": 15
"forge:resource_pack_format": 9,
"forge:data_pack_format": 10
} }
} }