some restructuring

This commit is contained in:
GiantLuigi4 2023-11-11 00:06:56 -05:00
parent a4b4162fa9
commit 074cedc85c
78 changed files with 195 additions and 153 deletions

View File

@ -21,6 +21,11 @@ import net.montoyo.wd.core.JSServerRequest;
import net.montoyo.wd.data.GuiData; import net.montoyo.wd.data.GuiData;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.*;
import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.data.Rotation;
import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import java.util.UUID; import java.util.UUID;

View File

@ -51,7 +51,7 @@ import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.net.client_bound.S2CMessageServerInfo; import net.montoyo.wd.net.client_bound.S2CMessageServerInfo;
import net.montoyo.wd.utilities.DistSafety; import net.montoyo.wd.utilities.DistSafety;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import java.io.*; import java.io.*;
import java.net.MalformedURLException; import java.net.MalformedURLException;

View File

@ -27,8 +27,8 @@ import net.montoyo.wd.entity.KeyboardBlockEntity;
import net.montoyo.wd.item.ItemLinker; import net.montoyo.wd.item.ItemLinker;
import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.net.client_bound.S2CMessageCloseGui; import net.montoyo.wd.net.client_bound.S2CMessageCloseGui;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import static net.montoyo.wd.block.KeyboardBlockLeft.KEYBOARD_AABBS; import static net.montoyo.wd.block.KeyboardBlockLeft.KEYBOARD_AABBS;

View File

@ -35,6 +35,11 @@ import net.montoyo.wd.data.SetURLData;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.item.ItemLaserPointer; import net.montoyo.wd.item.ItemLaserPointer;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.*;
import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.math.Vector3f;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.serialization.Util;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class ScreenBlock extends BaseEntityBlock { public class ScreenBlock extends BaseEntityBlock {

View File

@ -75,6 +75,11 @@ import net.montoyo.wd.miniserv.client.Client;
import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.net.server_bound.C2SMessageMinepadUrl; import net.montoyo.wd.net.server_bound.C2SMessageMinepadUrl;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.*;
import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.data.Rotation;
import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import org.cef.CefSettings; import org.cef.CefSettings;
import org.cef.browser.CefBrowser; import org.cef.browser.CefBrowser;
import org.cef.browser.CefFrame; import org.cef.browser.CefFrame;

View File

@ -8,7 +8,7 @@ import net.montoyo.wd.miniserv.Constants;
import net.montoyo.wd.miniserv.client.Client; import net.montoyo.wd.miniserv.client.Client;
import net.montoyo.wd.miniserv.client.ClientTaskGetFile; import net.montoyo.wd.miniserv.client.ClientTaskGetFile;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import org.cef.callback.CefCallback; import org.cef.callback.CefCallback;
import org.cef.handler.CefResourceHandler; import org.cef.handler.CefResourceHandler;
import org.cef.misc.IntRef; import org.cef.misc.IntRef;

View File

@ -20,10 +20,10 @@ import net.montoyo.wd.client.gui.loading.FillControl;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.net.server_bound.C2SMessageScreenCtrl; import net.montoyo.wd.net.server_bound.C2SMessageScreenCtrl;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.TypeData; import net.montoyo.wd.utilities.serialization.TypeData;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFW;
import org.vivecraft.client_vr.gameplay.VRPlayer; import org.vivecraft.client_vr.gameplay.VRPlayer;
import org.vivecraft.client_vr.gameplay.screenhandlers.KeyboardHandler; import org.vivecraft.client_vr.gameplay.screenhandlers.KeyboardHandler;

View File

@ -4,7 +4,6 @@
package net.montoyo.wd.client.gui; package net.montoyo.wd.client.gui;
import com.cinemamod.mcef.MCEF;
import com.cinemamod.mcef.MCEFBrowser; import com.cinemamod.mcef.MCEFBrowser;
import com.mojang.blaze3d.platform.InputConstants; import com.mojang.blaze3d.platform.InputConstants;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
@ -16,8 +15,7 @@ import net.minecraft.network.chat.Component;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
import net.montoyo.wd.WebDisplays; import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.client.ClientProxy; import net.montoyo.wd.client.ClientProxy;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import org.cef.browser.CefBrowserOsr;
import org.cef.misc.CefCursorType; import org.cef.misc.CefCursorType;
import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFW;

View File

@ -7,16 +7,11 @@ package net.montoyo.wd.client.gui;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.client.ClientProxy;
import net.montoyo.wd.client.gui.controls.Button; import net.montoyo.wd.client.gui.controls.Button;
import net.montoyo.wd.client.gui.controls.TextField; import net.montoyo.wd.client.gui.controls.TextField;
import net.montoyo.wd.client.gui.loading.FillControl; import net.montoyo.wd.client.gui.loading.FillControl;
import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.net.server_bound.C2SMessageRedstoneCtrl; import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.BlockSide;
import net.montoyo.wd.utilities.Util;
import net.montoyo.wd.utilities.Vector3i;
import javax.annotation.Nullable; import javax.annotation.Nullable;

View File

@ -20,6 +20,10 @@ import net.montoyo.wd.item.WDItem;
import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.net.server_bound.C2SMessageScreenCtrl; import net.montoyo.wd.net.server_bound.C2SMessageScreenCtrl;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.*;
import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.data.Rotation;
import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFW;
import javax.annotation.Nullable; import javax.annotation.Nullable;

View File

@ -23,9 +23,11 @@ import net.montoyo.wd.miniserv.Constants;
import net.montoyo.wd.miniserv.client.*; import net.montoyo.wd.miniserv.client.*;
import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.*;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import net.montoyo.wd.utilities.serialization.Util;
import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFW;
import org.lwjgl.opengl.GL;
import org.lwjgl.opengl.GL11;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.swing.filechooser.FileSystemView; import javax.swing.filechooser.FileSystemView;

View File

@ -20,9 +20,9 @@ import net.montoyo.wd.item.ItemMinePad2;
import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.net.server_bound.C2SMessageMinepadUrl; import net.montoyo.wd.net.server_bound.C2SMessageMinepadUrl;
import net.montoyo.wd.net.server_bound.C2SMessageScreenCtrl; import net.montoyo.wd.net.server_bound.C2SMessageScreenCtrl;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
import java.io.IOException; import java.io.IOException;
import java.util.Map; import java.util.Map;

View File

@ -8,7 +8,6 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.Screen;
@ -27,6 +26,10 @@ import net.montoyo.wd.client.gui.loading.JsonOWrapper;
import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.net.server_bound.C2SMessageACQuery; import net.montoyo.wd.net.server_bound.C2SMessageACQuery;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.*;
import net.montoyo.wd.utilities.data.Bounds;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.io.IOException; import java.io.IOException;

View File

@ -14,20 +14,18 @@ import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.GameRenderer;
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.client.renderer.ShaderInstance;
import net.minecraft.client.resources.language.I18n; import net.minecraft.client.resources.language.I18n;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
import net.montoyo.wd.client.gui.WDScreen; import net.montoyo.wd.client.gui.WDScreen;
import net.montoyo.wd.client.gui.loading.JsonOWrapper; import net.montoyo.wd.client.gui.loading.JsonOWrapper;
import net.montoyo.wd.utilities.Bounds; import net.montoyo.wd.utilities.data.Bounds;
import org.joml.Matrix4f; import org.joml.Matrix4f;
import java.util.Arrays; import java.util.Arrays;
import static com.mojang.math.Axis.XP; import static com.mojang.math.Axis.XP;
import static org.lwjgl.opengl.GL11.*;
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public abstract class Control { public abstract class Control {

View File

@ -7,18 +7,14 @@ package net.montoyo.wd.client.gui.controls;
import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexFormat; import com.mojang.blaze3d.vertex.VertexFormat;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.GuiGraphics;
import net.montoyo.wd.client.gui.loading.JsonOWrapper; import net.montoyo.wd.client.gui.loading.JsonOWrapper;
import net.montoyo.wd.utilities.Bounds; import net.montoyo.wd.utilities.data.Bounds;
import org.lwjgl.opengl.GL11;
import java.util.Arrays; import java.util.Arrays;
import static org.lwjgl.opengl.GL11.*;
public class ControlGroup extends Container { public class ControlGroup extends Container {
private int width; private int width;

View File

@ -6,7 +6,7 @@ package net.montoyo.wd.client.gui.controls;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.montoyo.wd.client.gui.loading.JsonOWrapper; import net.montoyo.wd.client.gui.loading.JsonOWrapper;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import net.montoyo.wd.utilities.VideoType; import net.montoyo.wd.utilities.VideoType;
import java.net.MalformedURLException; import java.net.MalformedURLException;

View File

@ -19,9 +19,9 @@ import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.model.data.ModelData; import net.minecraftforge.client.model.data.ModelData;
import net.minecraftforge.client.model.data.ModelProperty; import net.minecraftforge.client.model.data.ModelProperty;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Vector3f; import net.montoyo.wd.utilities.math.Vector3f;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;

View File

@ -12,8 +12,8 @@ import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.Vector3f; import net.montoyo.wd.utilities.math.Vector3f;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import static com.mojang.math.Axis.*; import static com.mojang.math.Axis.*;

View File

@ -9,7 +9,7 @@ import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkEvent; import net.minecraftforge.network.NetworkEvent;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import java.util.Objects; import java.util.Objects;
import java.util.function.Function; import java.util.function.Function;

View File

@ -9,7 +9,7 @@ import net.minecraftforge.fml.loading.FMLEnvironment;
import net.minecraftforge.network.NetworkEvent; import net.minecraftforge.network.NetworkEvent;
import net.montoyo.wd.controls.builtin.*; import net.montoyo.wd.controls.builtin.*;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import java.lang.reflect.Method; import java.lang.reflect.Method;

View File

@ -10,7 +10,7 @@ import net.montoyo.wd.controls.ScreenControl;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import java.util.function.Function; import java.util.function.Function;

View File

@ -9,8 +9,8 @@ import net.minecraftforge.network.NetworkEvent;
import net.montoyo.wd.controls.ScreenControl; import net.montoyo.wd.controls.ScreenControl;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Vector2i; import net.montoyo.wd.utilities.math.Vector2i;
import java.util.function.Function; import java.util.function.Function;

View File

@ -11,7 +11,7 @@ import net.montoyo.wd.controls.ScreenControl;
import net.montoyo.wd.core.JSServerRequest; import net.montoyo.wd.core.JSServerRequest;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import java.util.function.Function; import java.util.function.Function;

View File

@ -10,7 +10,7 @@ import net.montoyo.wd.controls.ScreenControl;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import java.util.function.Function; import java.util.function.Function;

View File

@ -10,8 +10,8 @@ import net.minecraftforge.network.NetworkEvent;
import net.montoyo.wd.controls.ScreenControl; import net.montoyo.wd.controls.ScreenControl;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Vector2i; import net.montoyo.wd.utilities.math.Vector2i;
import java.util.function.Function; import java.util.function.Function;

View File

@ -12,7 +12,7 @@ import net.montoyo.wd.controls.ScreenControl;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import java.util.function.Function; import java.util.function.Function;

View File

@ -11,8 +11,8 @@ import net.montoyo.wd.controls.ScreenControl;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.NameUUIDPair; import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import java.util.function.Function; import java.util.function.Function;

View File

@ -9,8 +9,8 @@ import net.minecraftforge.network.NetworkEvent;
import net.montoyo.wd.controls.ScreenControl; import net.montoyo.wd.controls.ScreenControl;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.NameUUIDPair; import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import java.util.function.Function; import java.util.function.Function;

View File

@ -10,9 +10,9 @@ import net.montoyo.wd.controls.ScreenControl;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Rotation; import net.montoyo.wd.utilities.data.Rotation;
import net.montoyo.wd.utilities.Vector2i; import net.montoyo.wd.utilities.math.Vector2i;
import java.util.function.Function; import java.util.function.Function;

View File

@ -10,8 +10,8 @@ import net.montoyo.wd.controls.ScreenControl;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
import java.util.function.Function; import java.util.function.Function;

View File

@ -10,7 +10,7 @@ import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.controls.ScreenControl; import net.montoyo.wd.controls.ScreenControl;
import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import java.util.function.Function; import java.util.function.Function;

View File

@ -7,8 +7,8 @@ package net.montoyo.wd.core;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
public interface IPeripheral { public interface IPeripheral {
boolean connect(Level world, BlockPos blockPos, BlockState blockState, Vector3i screenPos, BlockSide screenSide); boolean connect(Level world, BlockPos blockPos, BlockState blockState, Vector3i screenPos, BlockSide screenSide);

View File

@ -6,7 +6,7 @@
// //
//import net.montoyo.mcef.api.IJSQueryCallback; //import net.montoyo.mcef.api.IJSQueryCallback;
//import net.montoyo.wd.entity.TileEntityScreen; //import net.montoyo.wd.entity.TileEntityScreen;
//import net.montoyo.wd.utilities.BlockSide; //import net.montoyo.wd.utilities.orientation.BlockSide;
// //
//import javax.annotation.Nonnull; //import javax.annotation.Nonnull;
// //

View File

@ -7,7 +7,7 @@ package net.montoyo.wd.core;
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.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;

View File

@ -5,7 +5,7 @@
package net.montoyo.wd.core; package net.montoyo.wd.core;
import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.FriendlyByteBuf;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
public enum JSServerRequest { public enum JSServerRequest {
CLEAR_REDSTONE, CLEAR_REDSTONE,

View File

@ -13,9 +13,9 @@ import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
import net.montoyo.wd.client.gui.GuiKeyboard; import net.montoyo.wd.client.gui.GuiKeyboard;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
public class KeyboardData extends GuiData { public class KeyboardData extends GuiData {
public Vector3i pos; public Vector3i pos;

View File

@ -13,7 +13,7 @@ import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
import net.montoyo.wd.client.gui.GuiRedstoneCtrl; import net.montoyo.wd.client.gui.GuiRedstoneCtrl;
import net.montoyo.wd.net.BufferUtils; import net.montoyo.wd.net.BufferUtils;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
public class RedstoneCtrlData extends GuiData { public class RedstoneCtrlData extends GuiData {
public ResourceLocation dimension; public ResourceLocation dimension;

View File

@ -17,10 +17,10 @@ import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.net.BufferUtils; import net.montoyo.wd.net.BufferUtils;
import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.net.client_bound.S2CMessageOpenGui; import net.montoyo.wd.net.client_bound.S2CMessageOpenGui;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.NameUUIDPair; import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
public class ScreenConfigData extends GuiData { public class ScreenConfigData extends GuiData {
public boolean onlyUpdate; public boolean onlyUpdate;

View File

@ -12,8 +12,8 @@ import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
import net.montoyo.wd.client.gui.GuiServer; import net.montoyo.wd.client.gui.GuiServer;
import net.montoyo.wd.net.BufferUtils; import net.montoyo.wd.net.BufferUtils;
import net.montoyo.wd.utilities.NameUUIDPair; import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
public class ServerData extends GuiData { public class ServerData extends GuiData {
public Vector3i pos; public Vector3i pos;

View File

@ -14,9 +14,9 @@ import net.minecraftforge.api.distmarker.OnlyIn;
import net.montoyo.wd.client.gui.GuiSetURL2; import net.montoyo.wd.client.gui.GuiSetURL2;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.net.BufferUtils; import net.montoyo.wd.net.BufferUtils;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
public class SetURLData extends GuiData { public class SetURLData extends GuiData {
public Vector3i pos; public Vector3i pos;

View File

@ -13,7 +13,11 @@ import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.core.IComputerArgs; import net.montoyo.wd.core.IComputerArgs;
import net.montoyo.wd.core.IUpgrade; import net.montoyo.wd.core.IUpgrade;
import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.data.Rotation;
import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import net.montoyo.wd.utilities.serialization.TypeData;
import net.montoyo.wd.utilities.serialization.Util;
import java.io.IOException; import java.io.IOException;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;

View File

@ -16,9 +16,9 @@ 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.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunk;
import net.montoyo.wd.core.IPeripheral; import net.montoyo.wd.core.IPeripheral;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;

View File

@ -16,7 +16,7 @@ import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.data.KeyboardData; import net.montoyo.wd.data.KeyboardData;
import net.montoyo.wd.registry.TileRegistry; import net.montoyo.wd.registry.TileRegistry;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
public class KeyboardBlockEntity extends AbstractPeripheralBlockEntity { public class KeyboardBlockEntity extends AbstractPeripheralBlockEntity {
private static final String RANDOM_CHARS = "AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbn0123456789"; //Yes I have an AZERTY keyboard, u care? private static final String RANDOM_CHARS = "AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbn0123456789"; //Yes I have an AZERTY keyboard, u care?

View File

@ -15,7 +15,7 @@ import net.minecraft.world.level.block.state.BlockState;
import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.data.RedstoneCtrlData; import net.montoyo.wd.data.RedstoneCtrlData;
import net.montoyo.wd.registry.TileRegistry; import net.montoyo.wd.registry.TileRegistry;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import java.io.IOException; import java.io.IOException;

View File

@ -13,7 +13,7 @@ import net.minecraft.world.level.block.state.BlockState;
import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.data.SetURLData; import net.montoyo.wd.data.SetURLData;
import net.montoyo.wd.registry.TileRegistry; import net.montoyo.wd.registry.TileRegistry;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
public class RemoteControlBlockEntity extends AbstractPeripheralBlockEntity { public class RemoteControlBlockEntity extends AbstractPeripheralBlockEntity {
public RemoteControlBlockEntity(BlockPos arg2, BlockState arg3) { public RemoteControlBlockEntity(BlockPos arg2, BlockState arg3) {

View File

@ -41,6 +41,14 @@ import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.net.client_bound.S2CMessageAddScreen; import net.montoyo.wd.net.client_bound.S2CMessageAddScreen;
import net.montoyo.wd.net.client_bound.S2CMessageScreenUpdate; import net.montoyo.wd.net.client_bound.S2CMessageScreenUpdate;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.*;
import net.montoyo.wd.utilities.math.MutableAABB;
import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.math.Vector3f;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.data.Rotation;
import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import net.montoyo.wd.utilities.serialization.TypeData;
import org.cef.browser.CefBrowser; import org.cef.browser.CefBrowser;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@ -196,6 +204,7 @@ public class ScreenBlockEntity extends BlockEntity {
final Direction facing = VALUES[side.reverse().ordinal()]; final Direction facing = VALUES[side.reverse().ordinal()];
final ScreenIterator it = new ScreenIterator(start, side, size); final ScreenIterator it = new ScreenIterator(start, side, size);
// TODO: cache chunk
while (it.hasNext()) { while (it.hasNext()) {
int idx = it.getIndex(); int idx = it.getIndex();
redstoneStatus.set(idx, world.getSignal(it.next(), facing)); redstoneStatus.set(idx, world.getSignal(it.next(), facing));
@ -246,6 +255,7 @@ public class ScreenBlockEntity extends BlockEntity {
if (scr != null) { if (scr != null) {
ScreenIterator it = new ScreenIterator(getBlockPos(), side, scr.size); ScreenIterator it = new ScreenIterator(getBlockPos(), side, scr.size);
// TODO: cache chunk
while (it.hasNext()) while (it.hasNext())
func.accept(it.next()); func.accept(it.next());
} }

View File

@ -13,8 +13,8 @@ import net.minecraft.world.level.block.state.BlockState;
import net.montoyo.wd.WebDisplays; import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.data.ServerData; import net.montoyo.wd.data.ServerData;
import net.montoyo.wd.registry.TileRegistry; import net.montoyo.wd.registry.TileRegistry;
import net.montoyo.wd.utilities.NameUUIDPair; import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
public class ServerBlockEntity extends BlockEntity { public class ServerBlockEntity extends BlockEntity {
private NameUUIDPair owner; private NameUUIDPair owner;

View File

@ -20,10 +20,10 @@ import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.registry.BlockRegistry; import net.montoyo.wd.registry.BlockRegistry;
import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.net.server_bound.C2SMessageScreenCtrl; import net.montoyo.wd.net.server_bound.C2SMessageScreenCtrl;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Multiblock; import net.montoyo.wd.utilities.Multiblock;
import net.montoyo.wd.utilities.Vector2i; import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;

View File

@ -18,10 +18,10 @@ import net.montoyo.wd.block.ScreenBlock;
import net.montoyo.wd.core.IPeripheral; import net.montoyo.wd.core.IPeripheral;
import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Multiblock; import net.montoyo.wd.utilities.Multiblock;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;

View File

@ -16,6 +16,9 @@ import net.montoyo.wd.block.ScreenBlock;
import net.montoyo.wd.config.CommonConfig; import net.montoyo.wd.config.CommonConfig;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.*;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.serialization.Util;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;

View File

@ -13,10 +13,10 @@ import net.minecraft.world.level.block.entity.BlockEntity;
import net.montoyo.wd.block.ScreenBlock; import net.montoyo.wd.block.ScreenBlock;
import net.montoyo.wd.data.ScreenConfigData; import net.montoyo.wd.data.ScreenConfigData;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.Multiblock; import net.montoyo.wd.utilities.Multiblock;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class ItemScreenConfigurator extends Item implements WDItem { public class ItemScreenConfigurator extends Item implements WDItem {

View File

@ -10,7 +10,7 @@ import net.minecraft.world.item.ItemStack;
import net.montoyo.wd.core.DefaultUpgrade; import net.montoyo.wd.core.DefaultUpgrade;
import net.montoyo.wd.core.IUpgrade; import net.montoyo.wd.core.IUpgrade;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;

View File

@ -9,7 +9,7 @@ import net.minecraft.world.entity.player.Player;
import net.montoyo.wd.miniserv.*; import net.montoyo.wd.miniserv.*;
import net.montoyo.wd.net.server_bound.C2SMessageMiniservConnect; import net.montoyo.wd.net.server_bound.C2SMessageMiniservConnect;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import javax.crypto.*; import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;

View File

@ -8,7 +8,7 @@ import net.montoyo.wd.miniserv.Constants;
import net.montoyo.wd.miniserv.OutgoingPacket; import net.montoyo.wd.miniserv.OutgoingPacket;
import net.montoyo.wd.miniserv.PacketID; import net.montoyo.wd.miniserv.PacketID;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;

View File

@ -6,7 +6,7 @@ package net.montoyo.wd.miniserv.server;
import net.montoyo.wd.WebDisplays; import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;

View File

@ -6,7 +6,7 @@ package net.montoyo.wd.miniserv.server;
import net.montoyo.wd.miniserv.*; import net.montoyo.wd.miniserv.*;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import java.io.*; import java.io.*;
import java.nio.channels.ClosedChannelException; import java.nio.channels.ClosedChannelException;

View File

@ -1,7 +1,7 @@
package net.montoyo.wd.net; package net.montoyo.wd.net;
import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.FriendlyByteBuf;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
import java.util.Arrays; import java.util.Arrays;
import java.util.function.Consumer; import java.util.function.Consumer;

View File

@ -8,7 +8,7 @@ import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.network.NetworkEvent; import net.minecraftforge.network.NetworkEvent;
import net.montoyo.wd.WebDisplays; import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.net.Packet; import net.montoyo.wd.net.Packet;
import net.montoyo.wd.utilities.NameUUIDPair; import net.montoyo.wd.utilities.serialization.NameUUIDPair;
public class S2CMessageACResult extends Packet { public class S2CMessageACResult extends Packet {
private static NameUUIDPair[] result; private static NameUUIDPair[] result;

View File

@ -13,6 +13,11 @@ import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.net.Packet; import net.montoyo.wd.net.Packet;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.*;
import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.data.Rotation;
import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -9,7 +9,7 @@ import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.network.NetworkEvent; import net.minecraftforge.network.NetworkEvent;
import net.montoyo.wd.WebDisplays; import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.net.Packet; import net.montoyo.wd.net.Packet;
import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.data.BlockSide;
import java.util.Arrays; import java.util.Arrays;

View File

@ -17,7 +17,11 @@ import net.montoyo.wd.controls.builtin.*;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.net.BufferUtils; import net.montoyo.wd.net.BufferUtils;
import net.montoyo.wd.net.Packet; import net.montoyo.wd.net.Packet;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.data.Rotation;
import net.montoyo.wd.utilities.serialization.NameUUIDPair;
// TODO: use registry based approach // TODO: use registry based approach
public class S2CMessageScreenUpdate extends Packet { public class S2CMessageScreenUpdate extends Packet {

View File

@ -13,7 +13,7 @@ import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.net.Packet; import net.montoyo.wd.net.Packet;
import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.WDNetworkRegistry;
import net.montoyo.wd.net.client_bound.S2CMessageACResult; import net.montoyo.wd.net.client_bound.S2CMessageACResult;
import net.montoyo.wd.utilities.NameUUIDPair; import net.montoyo.wd.utilities.serialization.NameUUIDPair;
import java.util.Arrays; import java.util.Arrays;

View File

@ -15,8 +15,8 @@ import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.entity.RedstoneControlBlockEntity; import net.montoyo.wd.entity.RedstoneControlBlockEntity;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.net.Packet; import net.montoyo.wd.net.Packet;
import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.serialization.Util;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.math.Vector3i;
public class C2SMessageRedstoneCtrl extends Packet implements Runnable { public class C2SMessageRedstoneCtrl extends Packet implements Runnable {
private Player player; private Player player;

View File

@ -20,7 +20,11 @@ import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.entity.ScreenBlockEntity; import net.montoyo.wd.entity.ScreenBlockEntity;
import net.montoyo.wd.net.BufferUtils; import net.montoyo.wd.net.BufferUtils;
import net.montoyo.wd.net.Packet; import net.montoyo.wd.net.Packet;
import net.montoyo.wd.utilities.*; import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
import net.montoyo.wd.utilities.data.Rotation;
import net.montoyo.wd.utilities.serialization.NameUUIDPair;
// TODO: this is a mess; a registry based approach would likely be more readable // TODO: this is a mess; a registry based approach would likely be more readable
public class C2SMessageScreenCtrl extends Packet { public class C2SMessageScreenCtrl extends Packet {

View File

@ -7,9 +7,11 @@ package net.montoyo.wd.utilities;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelAccessor;
import net.montoyo.wd.registry.BlockRegistry; import net.montoyo.wd.registry.BlockRegistry;
import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
public abstract class Multiblock { public abstract class Multiblock {
public enum OverrideAction { public enum OverrideAction {
NONE, NONE,
SIMULATE, SIMULATE,
@ -26,9 +28,9 @@ public abstract class Multiblock {
} }
public boolean apply(Vector3i bp, boolean originalResult) { public boolean apply(Vector3i bp, boolean originalResult) {
if(action == OverrideAction.NONE || !bp.equals(pos)) if (action == OverrideAction.NONE || !bp.equals(pos))
return originalResult; return originalResult;
else if(action == OverrideAction.SIMULATE) else if (action == OverrideAction.SIMULATE)
return true; return true;
else //action == OverrideAction.IGNORE else //action == OverrideAction.IGNORE
return false; return false;
@ -39,9 +41,8 @@ public abstract class Multiblock {
public static final BlockOverride NULL_OVERRIDE = new BlockOverride(null, OverrideAction.NONE); public static final BlockOverride NULL_OVERRIDE = new BlockOverride(null, OverrideAction.NONE);
//Modifies pos //Modifies pos
public static void findOrigin(LevelAccessor world, Vector3i pos, BlockSide side, BlockOverride override) public static void findOrigin(LevelAccessor world, Vector3i pos, BlockSide side, BlockOverride override) {
{ if (override == null)
if(override == null)
override = NULL_OVERRIDE; override = NULL_OVERRIDE;
BlockPos.MutableBlockPos bp = new BlockPos.MutableBlockPos(); BlockPos.MutableBlockPos bp = new BlockPos.MutableBlockPos();
@ -50,7 +51,7 @@ public abstract class Multiblock {
do { do {
pos.add(side.left); pos.add(side.left);
pos.toBlock(bp); pos.toBlock(bp);
} while(override.apply(pos, world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get())); } while (override.apply(pos, world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get()));
pos.add(side.right); pos.add(side.right);
@ -58,14 +59,13 @@ public abstract class Multiblock {
do { do {
pos.add(side.down); pos.add(side.down);
pos.toBlock(bp); pos.toBlock(bp);
} while(override.apply(pos, world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get())); } while (override.apply(pos, world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get()));
pos.add(side.up); pos.add(side.up);
} }
//Origin stays constant //Origin stays constant
public static Vector2i measure(LevelAccessor world, Vector3i origin, BlockSide side) public static Vector2i measure(LevelAccessor world, Vector3i origin, BlockSide side) {
{
Vector2i ret = new Vector2i(); Vector2i ret = new Vector2i();
Vector3i pos = origin.clone(); Vector3i pos = origin.clone();
@ -77,7 +77,7 @@ public abstract class Multiblock {
pos.add(side.up); pos.add(side.up);
pos.toBlock(bp); pos.toBlock(bp);
ret.y++; ret.y++;
} while(world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get()); } while (world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get());
pos.add(side.down); pos.add(side.down);
@ -86,33 +86,32 @@ public abstract class Multiblock {
pos.add(side.right); pos.add(side.right);
pos.toBlock(bp); pos.toBlock(bp);
ret.x++; ret.x++;
} while(world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get()); } while (world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get());
return ret; return ret;
} }
//Origin and size stays constant. //Origin and size stays constant.
//Returns null if structure is okay, otherwise the erroring block pos. //Returns null if structure is okay, otherwise the erroring block pos.
public static Vector3i check(LevelAccessor world, Vector3i origin, Vector2i size, BlockSide side) public static Vector3i check(LevelAccessor world, Vector3i origin, Vector2i size, BlockSide side) {
{
Vector3i pos = origin.clone(); Vector3i pos = origin.clone();
BlockPos.MutableBlockPos bp = new BlockPos.MutableBlockPos(); BlockPos.MutableBlockPos bp = new BlockPos.MutableBlockPos();
//Check inner //Check inner
for(int y = 0; y < size.y; y++) { for (int y = 0; y < size.y; y++) {
for(int x = 0; x < size.x; x++) { for (int x = 0; x < size.x; x++) {
pos.toBlock(bp); pos.toBlock(bp);
if(!(world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get())) if (!(world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get()))
return pos; //Hole return pos; //Hole
pos.add(side.forward); pos.add(side.forward);
pos.toBlock(bp); pos.toBlock(bp);
if(world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get()) if (world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get())
return pos; //Back should be empty return pos; //Back should be empty
pos.addMul(side.backward, 2); pos.addMul(side.backward, 2);
pos.toBlock(bp); pos.toBlock(bp);
if(world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get()) if (world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get())
return pos; //Front should be empty return pos; //Front should be empty
pos.add(side.forward); pos.add(side.forward);
@ -127,9 +126,9 @@ public abstract class Multiblock {
pos.set(origin); pos.set(origin);
pos.add(side.left); pos.add(side.left);
for(int y = 0; y < size.y; y++) { for (int y = 0; y < size.y; y++) {
pos.toBlock(bp); pos.toBlock(bp);
if(world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get()) if (world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get())
return pos; //Left edge should be empty return pos; //Left edge should be empty
pos.add(side.up); pos.add(side.up);
@ -139,9 +138,9 @@ public abstract class Multiblock {
pos.set(origin); pos.set(origin);
pos.addMul(side.right, size.x); pos.addMul(side.right, size.x);
for(int y = 0; y < size.y; y++) { for (int y = 0; y < size.y; y++) {
pos.toBlock(bp); pos.toBlock(bp);
if(world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get()) if (world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get())
return pos; //Left edge should be empty return pos; //Left edge should be empty
pos.add(side.up); pos.add(side.up);
@ -151,9 +150,9 @@ public abstract class Multiblock {
pos.set(origin); pos.set(origin);
pos.add(side.down); pos.add(side.down);
for(int x = 0; x < size.x; x++) { for (int x = 0; x < size.x; x++) {
pos.toBlock(bp); pos.toBlock(bp);
if(world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get()) if (world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get())
return pos; //Left edge should be empty return pos; //Left edge should be empty
pos.add(side.right); pos.add(side.right);
@ -163,9 +162,9 @@ public abstract class Multiblock {
pos.set(origin); pos.set(origin);
pos.addMul(side.up, size.y); pos.addMul(side.up, size.y);
for(int x = 0; x < size.x; x++) { for (int x = 0; x < size.x; x++) {
pos.toBlock(bp); pos.toBlock(bp);
if(world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get()) if (world.getBlockState(bp).getBlock() == BlockRegistry.SCREEN_BLOCk.get())
return pos; //Left edge should be empty return pos; //Left edge should be empty
pos.add(side.right); pos.add(side.right);
@ -174,5 +173,4 @@ public abstract class Multiblock {
//All good. //All good.
return null; return null;
} }
} }

View File

@ -18,14 +18,14 @@ public final class NibbleArray {
data = d; data = d;
} }
public final int get(int idx) { public int get(int idx) {
if ((idx & 1) == 0) if ((idx & 1) == 0)
return (data[idx >> 1] >> 4) & 0x0F; //MSB return (data[idx >> 1] >> 4) & 0x0F; //MSB
else else
return data[idx >> 1] & 0x0F; //LSB return data[idx >> 1] & 0x0F; //LSB
} }
public final void set(int idx, int val) { public void set(int idx, int val) {
val &= 0x0F; val &= 0x0F;
if ((idx & 1) == 0) { if ((idx & 1) == 0) {

View File

@ -5,12 +5,14 @@
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.montoyo.wd.utilities.math.Vector2i;
import net.montoyo.wd.utilities.math.Vector3i;
import net.montoyo.wd.utilities.data.BlockSide;
import java.util.Iterator; import java.util.Iterator;
public final class ScreenIterator implements Iterator<BlockPos> { public final class ScreenIterator implements Iterator<BlockPos> {
private final Vector3i vec1; private final Vector3i from, to;
private final Vector3i vec2;
private final BlockSide side; private final BlockSide side;
private final Vector2i size; private final Vector2i size;
private final BlockPos.MutableBlockPos blockPos; private final BlockPos.MutableBlockPos blockPos;
@ -19,31 +21,31 @@ public final class ScreenIterator implements Iterator<BlockPos> {
private boolean hasNext = true; private boolean hasNext = true;
public ScreenIterator(BlockPos pos, BlockSide side, Vector2i size) { public ScreenIterator(BlockPos pos, BlockSide side, Vector2i size) {
vec1 = new Vector3i(pos); from = new Vector3i(pos);
vec2 = vec1.clone(); to = from.clone();
this.side = side; this.side = side;
this.size = size; this.size = size;
blockPos = new BlockPos.MutableBlockPos(); blockPos = new BlockPos.MutableBlockPos();
} }
@Override @Override
public final boolean hasNext() { public boolean hasNext() {
return hasNext; return hasNext;
} }
@Override @Override
public final BlockPos next() { public BlockPos next() {
vec2.toBlock(blockPos); to.toBlock(blockPos);
if (++x >= size.x) { if (++x >= size.x) {
if (++y >= size.y) if (++y >= size.y)
hasNext = false; hasNext = false;
else { else {
x = 0; x = 0;
vec2.set(vec1.add(side.up)); to.set(from.add(side.up));
} }
} else } else
vec2.add(side.right); to.add(side.right);
return blockPos; return blockPos;
} }

View File

@ -2,7 +2,9 @@
* Copyright (C) 2018 BARBOTIN Nicolas * Copyright (C) 2018 BARBOTIN Nicolas
*/ */
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities.data;
import net.montoyo.wd.utilities.math.Vector3i;
public enum BlockSide { public enum BlockSide {
BOTTOM(new Vector3i(0, 0, -1), new Vector3i(1, 0, 0), new Vector3i(0, -1, 0)), BOTTOM(new Vector3i(0, 0, -1), new Vector3i(1, 0, 0), new Vector3i(0, -1, 0)),

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas * Copyright (C) 2018 BARBOTIN Nicolas
*/ */
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities.data;
public final class Bounds { public final class Bounds {
public final int minX; public final int minX;

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas * Copyright (C) 2018 BARBOTIN Nicolas
*/ */
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities.data;
public enum Rotation { public enum Rotation {
ROT_0(0.0f, false), ROT_0(0.0f, false),

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas * Copyright (C) 2018 BARBOTIN Nicolas
*/ */
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities.math;
import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.AABB;

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas * Copyright (C) 2018 BARBOTIN Nicolas
*/ */
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities.math;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas * Copyright (C) 2018 BARBOTIN Nicolas
*/ */
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities.math;
public final class Vector3f { public final class Vector3f {
public float x; public float x;

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas * Copyright (C) 2018 BARBOTIN Nicolas
*/ */
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities.math;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas * Copyright (C) 2018 BARBOTIN Nicolas
*/ */
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities.serialization;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;

View File

@ -2,10 +2,9 @@
* Copyright (C) 2018 BARBOTIN Nicolas * Copyright (C) 2018 BARBOTIN Nicolas
*/ */
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities.serialization;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import io.netty.buffer.ByteBuf;
import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.FriendlyByteBuf;
import java.util.UUID; import java.util.UUID;

View File

@ -2,7 +2,7 @@
* Copyright (C) 2019 BARBOTIN Nicolas * Copyright (C) 2019 BARBOTIN Nicolas
*/ */
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities.serialization;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas * Copyright (C) 2018 BARBOTIN Nicolas
*/ */
package net.montoyo.wd.utilities; package net.montoyo.wd.utilities.serialization;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;