push what I have so far
This commit is contained in:
parent
a4f0b2642c
commit
e7c8fcb0df
|
|
@ -66,8 +66,6 @@ public class WebDisplays {
|
||||||
|
|
||||||
public static final String MOD_VERSION = "1.1";
|
public static final String MOD_VERSION = "1.1";
|
||||||
|
|
||||||
public static WebDisplays INSTANCE;
|
|
||||||
|
|
||||||
public static SharedProxy PROXY = DistExecutor.<SharedProxy>runForDist(() -> ClientProxy::new, () -> SharedProxy::new);
|
public static SharedProxy PROXY = DistExecutor.<SharedProxy>runForDist(() -> ClientProxy::new, () -> SharedProxy::new);
|
||||||
|
|
||||||
public static WDCreativeTab CREATIVE_TAB;
|
public static WDCreativeTab CREATIVE_TAB;
|
||||||
|
|
@ -235,6 +233,16 @@ public class WebDisplays {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onWorldLeave(WorldEvent.Unload ev) throws IOException {
|
||||||
|
if(ev.getWorld() instanceof Level level) {
|
||||||
|
if (ev.getWorld().isClientSide() || level.dimension() != Level.OVERWORLD)
|
||||||
|
return;
|
||||||
|
Server sw = Server.getInstance();
|
||||||
|
sw.stopServer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onWorldSave(WorldEvent.Save ev) {
|
public void onWorldSave(WorldEvent.Save ev) {
|
||||||
if(ev.getWorld() instanceof Level level) {
|
if(ev.getWorld() instanceof Level level) {
|
||||||
|
|
@ -286,7 +294,7 @@ public class WebDisplays {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onServerStop(ServerStoppingEvent ev) {
|
public static void onServerStop(ServerStoppingEvent ev) throws IOException {
|
||||||
Server.getInstance().stopServer();
|
Server.getInstance().stopServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -380,7 +388,7 @@ public class WebDisplays {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getNextAvailablePadID() {
|
public static int getNextAvailablePadID() {
|
||||||
return INSTANCE.lastPadId++;
|
return new WebDisplays().lastPadId++;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SoundEvent registerSound(RegistryEvent.Register<SoundEvent> ev, String resName) {
|
private static SoundEvent registerSound(RegistryEvent.Register<SoundEvent> ev, String resName) {
|
||||||
|
|
@ -397,18 +405,18 @@ public class WebDisplays {
|
||||||
CriteriaTriggers.register(c);
|
CriteriaTriggers.register(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isOpenComputersAvailable() {
|
// public static boolean isOpenComputersAvailable() {
|
||||||
return INSTANCE.hasOC;
|
// return INSTANCE.hasOC;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public static boolean isComputerCraftAvailable() {
|
// public static boolean isComputerCraftAvailable() {
|
||||||
return INSTANCE.hasCC;
|
// return INSTANCE.hasCC;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public static boolean isSiteBlacklisted(String url) {
|
public static boolean isSiteBlacklisted(String url) {
|
||||||
try {
|
try {
|
||||||
URL url2 = new URL(Util.addProtocol(url));
|
URL url2 = new URL(Util.addProtocol(url));
|
||||||
return INSTANCE.blacklist.stream().anyMatch(str -> str.equalsIgnoreCase(url2.getHost()));
|
return new ModConfig.Main().blacklist.stream().anyMatch(str -> str.equalsIgnoreCase(url2.getHost()));
|
||||||
} catch(MalformedURLException ex) {
|
} catch(MalformedURLException ex) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ import net.minecraft.world.level.material.FluidState;
|
||||||
import net.minecraft.world.level.material.PushReaction;
|
import net.minecraft.world.level.material.PushReaction;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
import net.montoyo.wd.WebDisplays;
|
import net.montoyo.wd.WebDisplays;
|
||||||
|
import net.montoyo.wd.config.ModConfig;
|
||||||
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.core.ScreenRights;
|
import net.montoyo.wd.core.ScreenRights;
|
||||||
|
|
@ -165,7 +166,7 @@ public class BlockScreen extends Block {
|
||||||
|
|
||||||
Util.toast(player, ChatFormatting.AQUA, "upgradeOk");
|
Util.toast(player, ChatFormatting.AQUA, "upgradeOk");
|
||||||
if(player instanceof ServerPlayer)
|
if(player instanceof ServerPlayer)
|
||||||
WebDisplays.INSTANCE.criterionUpgradeScreen.trigger(((ServerPlayer) player).getAdvancements());
|
new WebDisplays().criterionUpgradeScreen.trigger(((ServerPlayer) player).getAdvancements());
|
||||||
} else
|
} else
|
||||||
Util.toast(player, "upgradeError");
|
Util.toast(player, "upgradeError");
|
||||||
|
|
||||||
|
|
@ -193,8 +194,8 @@ public class BlockScreen extends Block {
|
||||||
return InteractionResult.SUCCESS;
|
return InteractionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(size.x > WebDisplays.INSTANCE.maxScreenX || size.y > WebDisplays.INSTANCE.maxScreenY) {
|
if(size.x > new WebDisplays().maxScreenX || size.y > new WebDisplays().maxScreenY) {
|
||||||
Util.toast(player, "tooBig", WebDisplays.INSTANCE.maxScreenX, WebDisplays.INSTANCE.maxScreenY);
|
Util.toast(player, "tooBig", new WebDisplays().maxScreenX, new WebDisplays().maxScreenY);
|
||||||
return InteractionResult.SUCCESS;
|
return InteractionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,10 @@ import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.screens.Screen;
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import net.minecraft.client.gui.screens.inventory.ContainerScreen;
|
import net.minecraft.client.gui.screens.inventory.ContainerScreen;
|
||||||
import net.minecraft.client.multiplayer.ClientAdvancements;
|
import net.minecraft.client.multiplayer.ClientAdvancements;
|
||||||
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
||||||
|
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||||
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderers;
|
||||||
|
import net.minecraft.client.resources.model.ModelResourceLocation;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.NonNullList;
|
import net.minecraft.core.NonNullList;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
|
@ -30,24 +34,28 @@ import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.ClipContext;
|
import net.minecraft.world.level.ClipContext;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
import net.minecraft.world.phys.HitResult;
|
import net.minecraft.world.phys.HitResult;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.client.event.ModelRegistryEvent;
|
import net.minecraftforge.client.event.ModelRegistryEvent;
|
||||||
import net.minecraftforge.client.event.RenderHandEvent;
|
import net.minecraftforge.client.event.RenderHandEvent;
|
||||||
|
import net.minecraftforge.client.model.IModelLoader;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.event.TickEvent;
|
import net.minecraftforge.event.TickEvent;
|
||||||
import net.minecraftforge.event.world.WorldEvent;
|
import net.minecraftforge.event.world.WorldEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
|
import net.minecraftforge.fml.common.Mod;
|
||||||
|
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||||
|
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||||
import net.montoyo.mcef.api.*;
|
import net.montoyo.mcef.api.*;
|
||||||
import net.montoyo.wd.SharedProxy;
|
import net.montoyo.wd.SharedProxy;
|
||||||
import net.montoyo.wd.WebDisplays;
|
import net.montoyo.wd.WebDisplays;
|
||||||
import net.montoyo.wd.block.BlockScreen;
|
import net.montoyo.wd.block.BlockScreen;
|
||||||
import net.montoyo.wd.client.gui.*;
|
import net.montoyo.wd.client.gui.*;
|
||||||
import net.montoyo.wd.client.gui.loading.GuiLoader;
|
import net.montoyo.wd.client.gui.loading.GuiLoader;
|
||||||
import net.montoyo.wd.client.renderers.IItemRenderer;
|
import net.montoyo.wd.client.renderers.*;
|
||||||
import net.montoyo.wd.client.renderers.LaserPointerRenderer;
|
|
||||||
import net.montoyo.wd.client.renderers.MinePadRenderer;
|
|
||||||
import net.montoyo.wd.core.DefaultUpgrade;
|
import net.montoyo.wd.core.DefaultUpgrade;
|
||||||
import net.montoyo.wd.core.HasAdvancement;
|
import net.montoyo.wd.core.HasAdvancement;
|
||||||
import net.montoyo.wd.core.JSServerRequest;
|
import net.montoyo.wd.core.JSServerRequest;
|
||||||
|
|
@ -55,6 +63,7 @@ import net.montoyo.wd.data.GuiData;
|
||||||
import net.montoyo.wd.entity.TileEntityScreen;
|
import net.montoyo.wd.entity.TileEntityScreen;
|
||||||
import net.montoyo.wd.init.BlockInit;
|
import net.montoyo.wd.init.BlockInit;
|
||||||
import net.montoyo.wd.init.ItemInit;
|
import net.montoyo.wd.init.ItemInit;
|
||||||
|
import net.montoyo.wd.init.TileInit;
|
||||||
import net.montoyo.wd.item.WDItem;
|
import net.montoyo.wd.item.WDItem;
|
||||||
import net.montoyo.wd.miniserv.client.Client;
|
import net.montoyo.wd.miniserv.client.Client;
|
||||||
import net.montoyo.wd.net.Messages;
|
import net.montoyo.wd.net.Messages;
|
||||||
|
|
@ -69,6 +78,7 @@ import java.net.InetSocketAddress;
|
||||||
import java.net.SocketAddress;
|
import java.net.SocketAddress;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@Mod.EventBusSubscriber(modid = "webdisplays", value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||||
public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQueryHandler, ResourceManagerReloadListener {
|
public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQueryHandler, ResourceManagerReloadListener {
|
||||||
|
|
||||||
public class PadData {
|
public class PadData {
|
||||||
|
|
@ -80,7 +90,7 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer
|
||||||
|
|
||||||
private PadData(String url, int id) {
|
private PadData(String url, int id) {
|
||||||
view = mcef.createBrowser(WebDisplays.applyBlacklist(url));
|
view = mcef.createBrowser(WebDisplays.applyBlacklist(url));
|
||||||
view.resize((int) WebDisplays.INSTANCE.padResX, (int) WebDisplays.INSTANCE.padResY);
|
view.resize((int) new WebDisplays().padResX, (int) new WebDisplays().padResY);
|
||||||
isInHotbar = true;
|
isInHotbar = true;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
@ -120,13 +130,15 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer
|
||||||
private int minePadTickCounter = 0;
|
private int minePadTickCounter = 0;
|
||||||
|
|
||||||
/**************************************** INHERITED METHODS ****************************************/
|
/**************************************** INHERITED METHODS ****************************************/
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onClientSetup(FMLClientSetupEvent event) {
|
||||||
|
BlockEntityRenderers.register(TileInit.SCREEN_BLOCK_ENTITY.get(), new ScreenRenderer.ScreenRendererProvider());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void preInit() {
|
public void preInit() {
|
||||||
mc = Minecraft.getInstance();
|
mc = Minecraft.getInstance();
|
||||||
MinecraftForge.EVENT_BUS.register(this);
|
MinecraftForge.EVENT_BUS.register(this);
|
||||||
// registerCustomBlockBaker(new ScreenBaker(), WebDisplays.INSTANCE.blockScreen);
|
|
||||||
|
|
||||||
mcef = MCEFApi.getAPI();
|
mcef = MCEFApi.getAPI();
|
||||||
if(mcef != null)
|
if(mcef != null)
|
||||||
mcef.registerScheme("wd", WDScheme.class, true, false, false, true, true, false, false);
|
mcef.registerScheme("wd", WDScheme.class, true, false, false, true, true, false, false);
|
||||||
|
|
@ -134,7 +146,6 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
//ClientRegistry.bindTileEntitySpecialRenderer(TileEntityScreen.class, new ScreenRenderer());
|
|
||||||
jsDispatcher = new JSQueryDispatcher(this);
|
jsDispatcher = new JSQueryDispatcher(this);
|
||||||
minePadRenderer = new MinePadRenderer();
|
minePadRenderer = new MinePadRenderer();
|
||||||
laserPointerRenderer = new LaserPointerRenderer();
|
laserPointerRenderer = new LaserPointerRenderer();
|
||||||
|
|
@ -476,7 +487,7 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onRegisterModels(ModelRegistryEvent ev) {
|
public void onRegisterModels(ModelRegistryEvent ev) {
|
||||||
final WebDisplays wd = WebDisplays.INSTANCE;
|
final WebDisplays wd = new WebDisplays();
|
||||||
|
|
||||||
//I hope I'm doing this right because it doesn't seem like it...
|
//I hope I'm doing this right because it doesn't seem like it...
|
||||||
// registerItemModel(wd.blockScreen.getItem(), 0, "inventory");
|
// registerItemModel(wd.blockScreen.getItem(), 0, "inventory");
|
||||||
|
|
@ -536,11 +547,11 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer
|
||||||
double dist2 = mc.player.distanceToSqr(tes.getBlockPos().getX(), tes.getBlockPos().getY(), tes.getBlockPos().getZ());
|
double dist2 = mc.player.distanceToSqr(tes.getBlockPos().getX(), tes.getBlockPos().getY(), tes.getBlockPos().getZ());
|
||||||
|
|
||||||
if(tes.isLoaded()) {
|
if(tes.isLoaded()) {
|
||||||
if(dist2 > WebDisplays.INSTANCE.unloadDistance2)
|
if(dist2 > new WebDisplays().unloadDistance2)
|
||||||
tes.unload();
|
tes.unload();
|
||||||
//else if(WebDisplays.INSTANCE.enableSoundDistance)
|
//else if(WebDisplays.INSTANCE.enableSoundDistance)
|
||||||
// tes.updateTrackDistance(dist2, SoundSystemConfig.getMasterGain());
|
// tes.updateTrackDistance(dist2, SoundSystemConfig.getMasterGain());
|
||||||
} else if(dist2 <= WebDisplays.INSTANCE.loadDistance2)
|
} else if(dist2 <= new WebDisplays().loadDistance2)
|
||||||
tes.load();
|
tes.load();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -691,10 +702,10 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateInventory(NonNullList<ItemStack> inv, ItemStack heldStack, int cnt) {
|
private void updateInventory(NonNullList<ItemStack> inv, ItemStack heldStack, int cnt) {
|
||||||
for(int i = 0; i < cnt; i++) {
|
for (int i = 0; i < cnt; i++) {
|
||||||
ItemStack item = inv.get(i);
|
ItemStack item = inv.get(i);
|
||||||
|
|
||||||
if(ItemInit.itemMinePad.isPresent()) {
|
if (ItemInit.itemMinePad.isPresent()) {
|
||||||
if (item.getItem() == ItemInit.itemMinePad.get()) {
|
if (item.getItem() == ItemInit.itemMinePad.get()) {
|
||||||
CompoundTag tag = item.getTag();
|
CompoundTag tag = item.getTag();
|
||||||
|
|
||||||
|
|
@ -705,24 +716,6 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// private void registerCustomBlockBaker(IModelBaker baker, Block block0) {
|
|
||||||
// ModelResourceLocation normalLoc = new ModelResourceLocation(block0.getRegistryName(), "normal");
|
|
||||||
// ResourceModelPair pair = new ResourceModelPair(normalLoc, baker);
|
|
||||||
// modelBakers.add(pair);
|
|
||||||
// ModelLoader.setCustomStateMapper(block0, new StaticStateMapper(normalLoc));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private void registerItemModel(Item item, int meta, String variant) {
|
|
||||||
// ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), variant));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private void registerItemMultiModels(ItemMulti item) {
|
|
||||||
// Enum[] values = item.getEnumValues();
|
|
||||||
//
|
|
||||||
// for(int i = 0; i < values.length; i++)
|
|
||||||
// ModelLoader.setCustomModelResourceLocation(item, i, new ModelResourceLocation(item.getRegistryName().toString() + '_' + values[i], "normal"));
|
|
||||||
// }
|
|
||||||
|
|
||||||
private void updatePad(int id, CompoundTag tag, boolean isSelected) {
|
private void updatePad(int id, CompoundTag tag, boolean isSelected) {
|
||||||
PadData pd = padMap.get(id);
|
PadData pd = padMap.get(id);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -143,8 +143,8 @@ public class GuiMinePad extends WDScreen {
|
||||||
sy = vh - sy;
|
sy = vh - sy;
|
||||||
|
|
||||||
//Scale again according to the webview
|
//Scale again according to the webview
|
||||||
sx = (int) (((double) sx) / ((double) vw) * WebDisplays.INSTANCE.padResX);
|
sx = (int) (((double) sx) / ((double) vw) * new WebDisplays().padResX);
|
||||||
sy = (int) (((double) sy) / ((double) vh) * WebDisplays.INSTANCE.padResY);
|
sy = (int) (((double) sy) / ((double) vh) * new WebDisplays().padResY);
|
||||||
|
|
||||||
if (btn == -1)
|
if (btn == -1)
|
||||||
pad.view.injectMouseMove(sx, sy, 0, false);
|
pad.view.injectMouseMove(sx, sy, 0, false);
|
||||||
|
|
|
||||||
|
|
@ -172,7 +172,7 @@ public class GuiScreenConfig extends WDScreen {
|
||||||
updateMyRights();
|
updateMyRights();
|
||||||
updateRotationStr();
|
updateRotationStr();
|
||||||
|
|
||||||
minecraft.getSoundManager().play(SimpleSoundInstance.forUI(WebDisplays.INSTANCE.soundScreenCfg, 1.0f, 1.0f));
|
minecraft.getSoundManager().play(SimpleSoundInstance.forUI( new WebDisplays().soundScreenCfg, 1.0f, 1.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateRotationStr() {
|
private void updateRotationStr() {
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@ public class GuiServer extends WDScreen {
|
||||||
accessTime = 20;
|
accessTime = 20;
|
||||||
} else {
|
} else {
|
||||||
if(accessSound == null) {
|
if(accessSound == null) {
|
||||||
accessSound = new SimpleSoundInstance(WebDisplays.INSTANCE.soundServer.getLocation(), SoundSource.MASTER, 1.0f, 1.0f, true, 0, SoundInstance.Attenuation.NONE, 0.0f, 0.0f, 0.0f, false);
|
accessSound = new SimpleSoundInstance( new WebDisplays().soundServer.getLocation(), SoundSource.MASTER, 1.0f, 1.0f, true, 0, SoundInstance.Attenuation.NONE, 0.0f, 0.0f, 0.0f, false);
|
||||||
minecraft.getSoundManager().play(accessSound);
|
minecraft.getSoundManager().play(accessSound);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ public final class LaserPointerRenderer implements IItemRenderer {
|
||||||
RenderSystem.disableCull();
|
RenderSystem.disableCull();
|
||||||
RenderSystem.disableTexture();
|
RenderSystem.disableTexture();
|
||||||
|
|
||||||
|
poseStack.pushPose();
|
||||||
//Laser pointer
|
//Laser pointer
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glTranslatef(handSideSign * -0.4f * sinSqrtSwingProg1, (float) (0.2f * Math.sin(sqrtSwingProg * PI * 2.0f)), (float) (-0.2f * Math.sin(swingProgress * PI)));
|
glTranslatef(handSideSign * -0.4f * sinSqrtSwingProg1, (float) (0.2f * Math.sin(sqrtSwingProg * PI * 2.0f)), (float) (-0.2f * Math.sin(swingProgress * PI)));
|
||||||
|
|
@ -87,13 +88,15 @@ public final class LaserPointerRenderer implements IItemRenderer {
|
||||||
}
|
}
|
||||||
|
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
poseStack.popPose();
|
||||||
|
|
||||||
if(isOn) {
|
if(isOn) {
|
||||||
|
poseStack.pushPose();
|
||||||
//Actual laser
|
//Actual laser
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glLoadIdentity();
|
glLoadIdentity();
|
||||||
RenderSystem.enableBlend();
|
RenderSystem.enableBlend();
|
||||||
RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.DST_ALPHA);
|
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.DST_ALPHA);
|
||||||
glColor4f(1.0f, 0.0f, 0.0f, 0.5f);
|
glColor4f(1.0f, 0.0f, 0.0f, 0.5f);
|
||||||
RenderSystem.lineWidth(3.0f);
|
RenderSystem.lineWidth(3.0f);
|
||||||
|
|
||||||
|
|
@ -108,6 +111,7 @@ public final class LaserPointerRenderer implements IItemRenderer {
|
||||||
glDrawArrays(GL_LINES, 0, 2);
|
glDrawArrays(GL_LINES, 0, 2);
|
||||||
glDisableClientState(GL_VERTEX_ARRAY);
|
glDisableClientState(GL_VERTEX_ARRAY);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
poseStack.popPose();
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderSystem.enableTexture(); //Fix for shitty minecraft fire
|
RenderSystem.enableTexture(); //Fix for shitty minecraft fire
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import com.mojang.blaze3d.vertex.*;
|
import com.mojang.blaze3d.vertex.*;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
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.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
import net.montoyo.wd.WebDisplays;
|
import net.montoyo.wd.WebDisplays;
|
||||||
import net.montoyo.wd.client.ClientProxy;
|
import net.montoyo.wd.client.ClientProxy;
|
||||||
|
|
@ -21,6 +22,13 @@ import static org.lwjgl.opengl.GL11.*;
|
||||||
|
|
||||||
public class ScreenRenderer implements BlockEntityRenderer<TileEntityScreen> {
|
public class ScreenRenderer implements BlockEntityRenderer<TileEntityScreen> {
|
||||||
|
|
||||||
|
public static class ScreenRendererProvider implements BlockEntityRendererProvider<TileEntityScreen> {
|
||||||
|
@Override
|
||||||
|
public @NotNull BlockEntityRenderer<TileEntityScreen> create(@NotNull Context arg) {
|
||||||
|
return new ScreenRenderer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private final Vector3f mid = new Vector3f();
|
private final Vector3f mid = new Vector3f();
|
||||||
private final Vector3i tmpi = new Vector3i();
|
private final Vector3i tmpi = new Vector3i();
|
||||||
private final Vector3f tmpf = new Vector3f();
|
private final Vector3f tmpf = new Vector3f();
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@ public class TileEntityKeyboard extends TileEntityPeripheralBase {
|
||||||
|
|
||||||
Player owner = level.getPlayerByUUID(scr.owner.uuid);
|
Player owner = level.getPlayerByUUID(scr.owner.uuid);
|
||||||
if(owner != null && owner instanceof ServerPlayer && ent instanceof Ocelot)
|
if(owner != null && owner instanceof ServerPlayer && ent instanceof Ocelot)
|
||||||
WebDisplays.INSTANCE.criterionKeyboardCat.trigger(((ServerPlayer) owner).getAdvancements());
|
new WebDisplays().criterionKeyboardCat.trigger(((ServerPlayer) owner).getAdvancements());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -203,16 +203,16 @@ public class TileEntityScreen extends BlockEntity{
|
||||||
|
|
||||||
|
|
||||||
public void clampResolution() {
|
public void clampResolution() {
|
||||||
if(resolution.x > WebDisplays.INSTANCE.maxResX) {
|
if(resolution.x > new WebDisplays().maxResX) {
|
||||||
float newY = ((float) resolution.y) * ((float) WebDisplays.INSTANCE.maxResX) / ((float) resolution.x);
|
float newY = ((float) resolution.y) * ((float) new WebDisplays().maxResX) / ((float) resolution.x);
|
||||||
resolution.x = WebDisplays.INSTANCE.maxResX;
|
resolution.x = new WebDisplays().maxResX;
|
||||||
resolution.y = (int) newY;
|
resolution.y = (int) newY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(resolution.y > WebDisplays.INSTANCE.maxResY) {
|
if(resolution.y > new WebDisplays().maxResY) {
|
||||||
float newX = ((float) resolution.x) * ((float) WebDisplays.INSTANCE.maxResY) / ((float) resolution.y);
|
float newX = ((float) resolution.x) * ((float) new WebDisplays().maxResY) / ((float) resolution.y);
|
||||||
resolution.x = (int) newX;
|
resolution.x = (int) newX;
|
||||||
resolution.y = WebDisplays.INSTANCE.maxResY;
|
resolution.y = new WebDisplays().maxResY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -289,7 +289,7 @@ public class TileEntityScreen extends BlockEntity{
|
||||||
Screen ret = new Screen();
|
Screen ret = new Screen();
|
||||||
ret.side = side;
|
ret.side = side;
|
||||||
ret.size = size;
|
ret.size = size;
|
||||||
ret.url = WebDisplays.INSTANCE.homePage;
|
ret.url = new WebDisplays().homePage;
|
||||||
ret.friends = new ArrayList<>();
|
ret.friends = new ArrayList<>();
|
||||||
ret.friendRights = ScreenRights.DEFAULTS;
|
ret.friendRights = ScreenRights.DEFAULTS;
|
||||||
ret.otherRights = ScreenRights.DEFAULTS;
|
ret.otherRights = ScreenRights.DEFAULTS;
|
||||||
|
|
@ -661,7 +661,7 @@ public class TileEntityScreen extends BlockEntity{
|
||||||
|
|
||||||
//FIXME: Not called if enableSoundDistance is false
|
//FIXME: Not called if enableSoundDistance is false
|
||||||
public void updateTrackDistance(double d, float masterVolume) {
|
public void updateTrackDistance(double d, float masterVolume) {
|
||||||
final WebDisplays wd = WebDisplays.INSTANCE;
|
final WebDisplays wd = new WebDisplays();
|
||||||
boolean needsComputation = true;
|
boolean needsComputation = true;
|
||||||
int intPart = 0; //Need to initialize those because the compiler is stupid
|
int intPart = 0; //Need to initialize those because the compiler is stupid
|
||||||
int fracPart = 0;
|
int fracPart = 0;
|
||||||
|
|
@ -804,7 +804,7 @@ public class TileEntityScreen extends BlockEntity{
|
||||||
Messages.INSTANCE.send(PacketDistributor.NEAR.with(() -> point(level, getBlockPos())), CMessageScreenUpdate.type(this, side, text));
|
Messages.INSTANCE.send(PacketDistributor.NEAR.with(() -> point(level, getBlockPos())), CMessageScreenUpdate.type(this, side, text));
|
||||||
|
|
||||||
if(soundPos != null)
|
if(soundPos != null)
|
||||||
playSoundAt(WebDisplays.INSTANCE.soundTyping, soundPos, 0.25f, 1.f);
|
playSoundAt( new WebDisplays().soundTyping, soundPos, 0.25f, 1.f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -871,7 +871,7 @@ public class TileEntityScreen extends BlockEntity{
|
||||||
scr.upgrades.add(isCopy);
|
scr.upgrades.add(isCopy);
|
||||||
Messages.INSTANCE.send(PacketDistributor.NEAR.with(() -> point(level, getBlockPos())), CMessageScreenUpdate.upgrade(this, side));
|
Messages.INSTANCE.send(PacketDistributor.NEAR.with(() -> point(level, getBlockPos())), CMessageScreenUpdate.upgrade(this, side));
|
||||||
itemAsUpgrade.onInstall(this, side, player, isCopy);
|
itemAsUpgrade.onInstall(this, side, player, isCopy);
|
||||||
playSoundAt(WebDisplays.INSTANCE.soundUpgradeAdd, getBlockPos(), 1.0f, 1.0f);
|
playSoundAt(new WebDisplays().soundUpgradeAdd, getBlockPos(), 1.0f, 1.0f);
|
||||||
setChanged();
|
setChanged();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -922,7 +922,7 @@ public class TileEntityScreen extends BlockEntity{
|
||||||
dropUpgrade(scr.upgrades.get(idxToRemove), side, player);
|
dropUpgrade(scr.upgrades.get(idxToRemove), side, player);
|
||||||
scr.upgrades.remove(idxToRemove);
|
scr.upgrades.remove(idxToRemove);
|
||||||
Messages.INSTANCE.send(PacketDistributor.NEAR.with(() -> point(level, getBlockPos())), CMessageScreenUpdate.upgrade(this, side));
|
Messages.INSTANCE.send(PacketDistributor.NEAR.with(() -> point(level, getBlockPos())), CMessageScreenUpdate.upgrade(this, side));
|
||||||
playSoundAt(WebDisplays.INSTANCE.soundUpgradeDel, getBlockPos(), 1.0f, 1.0f);
|
playSoundAt(new WebDisplays().soundUpgradeDel, getBlockPos(), 1.0f, 1.0f);
|
||||||
setChanged();
|
setChanged();
|
||||||
} else
|
} else
|
||||||
Log.warning("Tried to remove non-existing upgrade %s to screen %s at %s", safeName(is), side.toString(), getBlockPos().toString());
|
Log.warning("Tried to remove non-existing upgrade %s to screen %s at %s", safeName(is), side.toString(), getBlockPos().toString());
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ public class TileEntityServer extends BlockEntity {
|
||||||
if(level.isClientSide)
|
if(level.isClientSide)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(WebDisplays.INSTANCE.miniservPort == 0)
|
if( new WebDisplays().miniservPort == 0)
|
||||||
Util.toast(ply, "noMiniserv");
|
Util.toast(ply, "noMiniserv");
|
||||||
else if(owner != null && ply instanceof ServerPlayer)
|
else if(owner != null && ply instanceof ServerPlayer)
|
||||||
(new ServerData(getBlockPos(), owner)).sendTo((ServerPlayer) ply);
|
(new ServerData(getBlockPos(), owner)).sendTo((ServerPlayer) ply);
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ public class ItemLinker extends Item implements WDItem {
|
||||||
Util.toast(context.getPlayer(), ChatFormatting.AQUA, "linked");
|
Util.toast(context.getPlayer(), ChatFormatting.AQUA, "linked");
|
||||||
|
|
||||||
if(context.getPlayer() instanceof ServerPlayer)
|
if(context.getPlayer() instanceof ServerPlayer)
|
||||||
WebDisplays.INSTANCE.criterionLinkPeripheral.trigger(((ServerPlayer) context.getPlayer()).getAdvancements());
|
new WebDisplays().criterionLinkPeripheral.trigger(((ServerPlayer) context.getPlayer()).getAdvancements());
|
||||||
} else
|
} else
|
||||||
Util.toast(context.getPlayer(), "linkError");
|
Util.toast(context.getPlayer(), "linkError");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ public class ItemMinePad2 extends Item implements WDItem {
|
||||||
|
|
||||||
private static String getURL(ItemStack is) {
|
private static String getURL(ItemStack is) {
|
||||||
if(is.getTag() == null || !is.getTag().contains("PadURL"))
|
if(is.getTag() == null || !is.getTag().contains("PadURL"))
|
||||||
return WebDisplays.INSTANCE.homePage;
|
return new WebDisplays().homePage;
|
||||||
else
|
else
|
||||||
return is.getTag().getString("PadURL");
|
return is.getTag().getString("PadURL");
|
||||||
}
|
}
|
||||||
|
|
@ -92,7 +92,7 @@ public class ItemMinePad2 extends Item implements WDItem {
|
||||||
|
|
||||||
Player ply = ent.getLevel().getPlayerByUUID(thrower);
|
Player ply = ent.getLevel().getPlayerByUUID(thrower);
|
||||||
if(ply != null && ply instanceof ServerPlayer)
|
if(ply != null && ply instanceof ServerPlayer)
|
||||||
WebDisplays.INSTANCE.criterionPadBreak.trigger(((ServerPlayer) ply).getAdvancements());
|
new WebDisplays().criterionPadBreak.trigger(((ServerPlayer) ply).getAdvancements());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ public class ItemOwnershipThief extends Item implements WDItem {
|
||||||
if(context.getLevel().isClientSide)
|
if(context.getLevel().isClientSide)
|
||||||
return InteractionResult.SUCCESS;
|
return InteractionResult.SUCCESS;
|
||||||
|
|
||||||
if(WebDisplays.INSTANCE.disableOwnershipThief) {
|
if( new WebDisplays().disableOwnershipThief) {
|
||||||
Util.toast(context.getPlayer(), "otDisabled");
|
Util.toast(context.getPlayer(), "otDisabled");
|
||||||
return InteractionResult.SUCCESS;
|
return InteractionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import net.montoyo.wd.utilities.Log;
|
||||||
import net.montoyo.wd.utilities.Util;
|
import net.montoyo.wd.utilities.Util;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.channels.SelectionKey;
|
import java.nio.channels.SelectionKey;
|
||||||
|
|
@ -79,13 +80,14 @@ public class Server implements Runnable {
|
||||||
thread.start();
|
thread.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stopServer() {
|
public void stopServer() throws IOException {
|
||||||
if(getRunning()) {
|
if(getRunning()) {
|
||||||
Thread thread = this.thread;
|
Thread thread = this.thread;
|
||||||
|
|
||||||
synchronized(this) {
|
synchronized(this) {
|
||||||
running = false;
|
running = false;
|
||||||
selector.wakeup();
|
selector.wakeup();
|
||||||
|
server.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
while(thread.isAlive()) {
|
while(thread.isAlive()) {
|
||||||
|
|
@ -234,7 +236,7 @@ public class Server implements Runnable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getMaxQuota() {
|
public long getMaxQuota() {
|
||||||
return WebDisplays.INSTANCE.miniservQuota;
|
return new WebDisplays().miniservQuota;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,29 @@
|
||||||
"forge_marker": 1,
|
"forge_marker": 1,
|
||||||
"uvlock": false,
|
"uvlock": false,
|
||||||
"variants": {
|
"variants": {
|
||||||
"normal": { "model": "webdisplays:block/screen" },
|
"emitting=true,facing=north,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
"inventory": { "model": "webdisplays:block/screen_item" }
|
"emitting=true,facing=south,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=true,facing=east,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=true,facing=west,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=true,facing=up,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=true,facing=down,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=north,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=south,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=east,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=west,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=up,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=down,haste=true" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=true,facing=north,haste=false" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=true,facing=south,haste=false" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=true,facing=east,haste=false" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=true,facing=west,haste=false" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=true,facing=up,haste=false" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=true,facing=down,haste=false" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=north,haste=false" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=south,haste=false" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=east,haste=false" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=west,haste=false" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=up,haste=false" : { "model": "webdisplays:block/screen" },
|
||||||
|
"emitting=false,facing=down,haste=false" : { "model": "webdisplays:block/screen" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user