Fixed 200+ compiler errors. 23 left.

This commit is contained in:
Christian Knaapen
2021-09-01 17:37:09 +02:00
parent 2297c38574
commit 178a4ca4e1
45 changed files with 204 additions and 220 deletions

View File

@@ -6,23 +6,22 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.MenuType;
import net.minecraft.world.item.Item;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.registry.Registry;
import net.minecraft.network.chat.TextComponent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.capabilities.CapabilityManager;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;
import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.fml.network.IContainerFactory;
import net.minecraftforge.fmllegacy.RegistryObject;
import net.minecraftforge.fmllegacy.network.IContainerFactory;
import net.minecraftforge.fmlserverevents.FMLServerStartingEvent;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import nl.requios.effortlessbuilding.capability.ModeCapabilityManager;
@@ -110,9 +109,6 @@ public class EffortlessBuilding {
@SubscribeEvent
public void setup(final FMLCommonSetupEvent event) {
CapabilityManager.INSTANCE.register(ModifierCapabilityManager.IModifierCapability.class, new ModifierCapabilityManager.Storage(), ModifierCapabilityManager.ModifierCapability::new);
CapabilityManager.INSTANCE.register(ModeCapabilityManager.IModeCapability.class, new ModeCapabilityManager.Storage(), ModeCapabilityManager.ModeCapability::new);
PacketHandler.register();
//TODO 1.13 config

View File

@@ -14,7 +14,7 @@ import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.network.PacketDistributor;
import net.minecraftforge.fmllegacy.network.PacketDistributor;
import nl.requios.effortlessbuilding.buildmode.BuildModes;
import nl.requios.effortlessbuilding.buildmode.ModeSettingsManager;
import nl.requios.effortlessbuilding.buildmodifier.BuildModifiers;
@@ -31,7 +31,7 @@ import nl.requios.effortlessbuilding.network.RequestLookAtMessage;
import java.util.List;
@Mod.EventBusSubscriber
@Mod.EventBusSubscriber(modid = EffortlessBuilding.MODID)
public class EventHandler {
@SubscribeEvent

View File

@@ -3,9 +3,13 @@ package nl.requios.effortlessbuilding;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
import net.minecraftforge.common.capabilities.CapabilityManager;
import net.minecraftforge.common.capabilities.RegisterCapabilitiesEvent;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import nl.requios.effortlessbuilding.capability.ModeCapabilityManager;
import nl.requios.effortlessbuilding.capability.ModifierCapabilityManager;
// You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD
// Event bus for receiving Registry Events)
@@ -26,6 +30,12 @@ public class ModEventHandler {
}
}
@SubscribeEvent
public static void registerCapabilities(RegisterCapabilitiesEvent event){
event.register(ModifierCapabilityManager.IModifierCapability.class);
event.register(ModeCapabilityManager.IModeCapability.class);
}
// @SubscribeEvent
// public static void registerContainerTypes(RegistryEvent.Register<ContainerType<?>> event) {
// event.getRegistry().register()

View File

@@ -4,7 +4,7 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.network.PacketDistributor;
import net.minecraftforge.fmllegacy.network.PacketDistributor;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.capability.ModeCapabilityManager;
import nl.requios.effortlessbuilding.helper.ReachHelper;

View File

@@ -1,6 +1,5 @@
package nl.requios.effortlessbuilding.buildmodifier;
import net.minecraft.block.*;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.state.properties.Half;

View File

@@ -4,7 +4,7 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.network.PacketDistributor;
import net.minecraftforge.fmllegacy.network.PacketDistributor;
import nl.requios.effortlessbuilding.BuildConfig;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.capability.ModifierCapabilityManager;

View File

@@ -55,9 +55,17 @@ public class ModeCapabilityManager {
}
}
public static class Storage implements Capability.IStorage<IModeCapability> {
public static class Provider implements ICapabilitySerializable<Tag> {
IModeCapability instance = new ModeCapability();
@Nonnull
@Override
public Tag writeNBT(Capability<IModeCapability> capability, IModeCapability instance, Direction side) {
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
return modeCapability.orEmpty(cap, LazyOptional.of(() -> instance));
}
@Override
public Tag serializeNBT() {
CompoundTag compound = new CompoundTag();
ModeSettings modeSettings = instance.getModeData();
if (modeSettings == null) modeSettings = new ModeSettings();
@@ -70,7 +78,7 @@ public class ModeCapabilityManager {
}
@Override
public void readNBT(Capability<IModeCapability> capability, IModeCapability instance, Direction side, Tag nbt) {
public void deserializeNBT(Tag nbt) {
CompoundTag compound = (CompoundTag) nbt;
//BuildModes.BuildModeEnum buildMode = BuildModes.BuildModeEnum.values()[compound.getInteger("buildMode")];
@@ -80,26 +88,6 @@ public class ModeCapabilityManager {
ModeSettings modeSettings = new ModeSettings(BuildModes.BuildModeEnum.NORMAL);
instance.setModeData(modeSettings);
}
}
public static class Provider implements ICapabilitySerializable<Tag> {
IModeCapability inst = modeCapability.getDefaultInstance();
@Nonnull
@Override
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
return modeCapability.orEmpty(cap, LazyOptional.of(() -> inst));
}
@Override
public Tag serializeNBT() {
return modeCapability.getStorage().writeNBT(modeCapability, inst, null);
}
@Override
public void deserializeNBT(Tag nbt) {
modeCapability.getStorage().readNBT(modeCapability, inst, null, nbt);
}
}
}

View File

@@ -19,8 +19,6 @@ import nl.requios.effortlessbuilding.buildmodifier.RadialMirror;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import static nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager.ModifierSettings;
import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager.ModifierSettings;
@Mod.EventBusSubscriber
@@ -59,9 +57,18 @@ public class ModifierCapabilityManager {
}
}
public static class Storage implements Capability.IStorage<IModifierCapability> {
public static class Provider implements ICapabilitySerializable<Tag> {
IModifierCapability instance = new ModifierCapability();
@Nonnull
@Override
public Tag writeNBT(Capability<IModifierCapability> capability, IModifierCapability instance, Direction side) {
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
return modifierCapability.orEmpty(cap, LazyOptional.of(() -> instance));
}
@Override
public Tag serializeNBT() {
CompoundTag compound = new CompoundTag();
ModifierSettings modifierSettings = instance.getModifierData();
if (modifierSettings == null) modifierSettings = new ModifierSettings();
@@ -110,15 +117,15 @@ public class ModifierCapabilityManager {
}
@Override
public void readNBT(Capability<IModifierCapability> capability, IModifierCapability instance, Direction side, Tag nbt) {
public void deserializeNBT(Tag nbt) {
CompoundTag compound = (CompoundTag) nbt;
//MIRROR
boolean mirrorEnabled = compound.getBoolean("mirrorEnabled");
Vec3 mirrorPosition = new Vec3(
compound.getDouble("mirrorPosX"),
compound.getDouble("mirrorPosY"),
compound.getDouble("mirrorPosZ"));
compound.getDouble("mirrorPosX"),
compound.getDouble("mirrorPosY"),
compound.getDouble("mirrorPosZ"));
boolean mirrorX = compound.getBoolean("mirrorX");
boolean mirrorY = compound.getBoolean("mirrorY");
boolean mirrorZ = compound.getBoolean("mirrorZ");
@@ -130,9 +137,9 @@ public class ModifierCapabilityManager {
//ARRAY
boolean arrayEnabled = compound.getBoolean("arrayEnabled");
BlockPos arrayOffset = new BlockPos(
compound.getInt("arrayOffsetX"),
compound.getInt("arrayOffsetY"),
compound.getInt("arrayOffsetZ"));
compound.getInt("arrayOffsetX"),
compound.getInt("arrayOffsetY"),
compound.getInt("arrayOffsetZ"));
int arrayCount = compound.getInt("arrayCount");
Array.ArraySettings arraySettings = new Array.ArraySettings(arrayEnabled, arrayOffset, arrayCount);
@@ -143,41 +150,20 @@ public class ModifierCapabilityManager {
//RADIAL MIRROR
boolean radialMirrorEnabled = compound.getBoolean("radialMirrorEnabled");
Vec3 radialMirrorPosition = new Vec3(
compound.getDouble("radialMirrorPosX"),
compound.getDouble("radialMirrorPosY"),
compound.getDouble("radialMirrorPosZ"));
compound.getDouble("radialMirrorPosX"),
compound.getDouble("radialMirrorPosY"),
compound.getDouble("radialMirrorPosZ"));
int radialMirrorSlices = compound.getInt("radialMirrorSlices");
boolean radialMirrorAlternate = compound.getBoolean("radialMirrorAlternate");
int radialMirrorRadius = compound.getInt("radialMirrorRadius");
boolean radialMirrorDrawLines = compound.getBoolean("radialMirrorDrawLines");
boolean radialMirrorDrawPlanes = compound.getBoolean("radialMirrorDrawPlanes");
RadialMirror.RadialMirrorSettings radialMirrorSettings = new RadialMirror.RadialMirrorSettings(radialMirrorEnabled, radialMirrorPosition,
radialMirrorSlices, radialMirrorAlternate, radialMirrorRadius, radialMirrorDrawLines, radialMirrorDrawPlanes);
radialMirrorSlices, radialMirrorAlternate, radialMirrorRadius, radialMirrorDrawLines, radialMirrorDrawPlanes);
ModifierSettings modifierSettings = new ModifierSettings(mirrorSettings, arraySettings, radialMirrorSettings, false, reachUpgrade);
instance.setModifierData(modifierSettings);
}
}
public static class Provider implements ICapabilitySerializable<Tag> {
IModifierCapability inst = modifierCapability.getDefaultInstance();
@Nonnull
@Override
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
return modifierCapability.orEmpty(cap, LazyOptional.of(() -> inst));
}
@Override
public Tag serializeNBT() {
return modifierCapability.getStorage().writeNBT(modifierCapability, inst, null);
}
@Override
public void deserializeNBT(Tag nbt) {
modifierCapability.getStorage().readNBT(modifierCapability, inst, null, nbt);
}
}
}

View File

@@ -6,7 +6,7 @@ import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.network.chat.TextComponent;
import net.minecraftforge.fml.network.PacketDistributor;
import net.minecraftforge.fmllegacy.network.PacketDistributor;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager;
import nl.requios.effortlessbuilding.network.ModifierSettingsMessage;

View File

@@ -124,12 +124,12 @@ public class RandomizerBagContainer extends AbstractContainerMenu {
* be able to save properly
*/
@Override
public ItemStack clicked(int slot, int dragType, ClickType clickTypeIn, Player player) {
public void clicked(int slot, int dragType, ClickType clickTypeIn, Player player) {
// this will prevent the player from interacting with the item that opened the inventory:
if (slot >= 0 && getSlot(slot) != null && getSlot(slot).getItem().equals(player.getItemInHand(InteractionHand.MAIN_HAND))) {
return ItemStack.EMPTY;
//Do nothing;
}
return super.clicked(slot, dragType, clickTypeIn, player);
super.clicked(slot, dragType, clickTypeIn, player);
}
/**

View File

@@ -15,11 +15,14 @@ import javax.annotation.ParametersAreNonnullByDefault;
@OnlyIn(Dist.CLIENT)
@ParametersAreNonnullByDefault
public class RandomizerBagScreen extends AbstractContainerScreen<RandomizerBagContainer> {
private Inventory inventory;
private static final ResourceLocation guiTextures =
new ResourceLocation(EffortlessBuilding.MODID, "textures/gui/container/randomizerbag.png");
public RandomizerBagScreen(RandomizerBagContainer randomizerBagContainer, Inventory playerInventory, Component title) {
super(randomizerBagContainer, playerInventory, title);//new TranslationTextComponent("effortlessbuilding.screen.randomizer_bag"));
this.inventory = playerInventory;
imageHeight = 134;
}
@@ -38,8 +41,8 @@ public class RandomizerBagScreen extends AbstractContainerScreen<RandomizerBagCo
@Override
protected void renderBg(PoseStack ms, float partialTicks, int mouseX, int mouseY) {
RenderSystem.color3f(1.0F, 1.0F, 1.0F);
minecraft.getTextureManager().bind(guiTextures);
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1f);
RenderSystem.setShaderTexture(0, guiTextures);
int marginHorizontal = (width - imageWidth) / 2;
int marginVertical = (height - imageHeight) / 2;
blit(ms, marginHorizontal, marginVertical, 0, 0, imageWidth, imageHeight);

View File

@@ -1,17 +1,14 @@
package nl.requios.effortlessbuilding.gui.buildmode;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.*;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.sounds.SimpleSoundInstance;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.ObjectSelectionList;
import com.mojang.blaze3d.vertex.BufferBuilder;
import com.mojang.blaze3d.vertex.Tesselator;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.util.Mth;
import net.minecraft.network.chat.Component;
@@ -19,8 +16,8 @@ import net.minecraft.network.chat.TextComponent;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.fml.client.gui.widget.ExtendedButton;
import net.minecraftforge.fml.client.gui.widget.Slider;
import net.minecraftforge.fmlclient.gui.widget.ExtendedButton;
import net.minecraftforge.fmlclient.gui.widget.Slider;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import javax.annotation.ParametersAreNonnullByDefault;
@@ -48,22 +45,22 @@ public class PlayerSettingsGui extends Screen {
int yy = top;
shaderTypeList = new ShaderTypeList(this.minecraft);
this.children.add(shaderTypeList);
addWidget(shaderTypeList);
//TODO set selected name
Component currentShaderName = ShaderType.DISSOLVE_BLUE.name;
shaderTypeButton = new ExtendedButton(right - 180, yy, 180, 20, currentShaderName, (button) -> {
showShaderList = !showShaderList;
});
addButton(shaderTypeButton);
addRenderableOnly(shaderTypeButton);
yy += 50;
Slider slider = new Slider(right - 200, yy, 200, 20, TextComponent.EMPTY, TextComponent.EMPTY, 0.5, 2.0, 1.0, true, true, (button) -> {
});
addButton(slider);
addRenderableOnly(slider);
closeButton = new ExtendedButton(left + 50, bottom - 20, 180, 20, new TextComponent("Done"), (button) -> this.minecraft.player.closeContainer());
addButton(closeButton);
addRenderableOnly(closeButton);
}
@Override
@@ -205,9 +202,9 @@ public class PlayerSettingsGui extends Screen {
// this.minecraft.getTextureManager().bindTexture(AbstractGui.BACKGROUND_LOCATION);
RenderSystem.enableBlend();
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ZERO, GlStateManager.DestFactor.ONE);
RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
float f = 32.0F;
bufferbuilder.begin(7, DefaultVertexFormat.POSITION_COLOR);
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR);
bufferbuilder.vertex(this.x0, this.y1, 0.0D).color(20, 20, 20, 180).endVertex();
bufferbuilder.vertex(this.x1, this.y1, 0.0D).color(20, 20, 20, 180).endVertex();
bufferbuilder.vertex(this.x1, this.y0, 0.0D).color(20, 20, 20, 180).endVertex();
@@ -225,8 +222,6 @@ public class PlayerSettingsGui extends Screen {
// this.renderHoleBackground(this.y1, this.height, 255, 255);
RenderSystem.enableBlend();
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ZERO, GlStateManager.DestFactor.ONE);
RenderSystem.disableAlphaTest();
RenderSystem.shadeModel(7425);
RenderSystem.disableTexture();
// int i1 = 4;
// bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR);
@@ -252,19 +247,19 @@ public class PlayerSettingsGui extends Screen {
l1 = this.y0;
}
bufferbuilder.begin(7, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.vertex(i, this.y1, 0.0D).uv(0.0F, 1.0F).color(0, 0, 0, 255).endVertex();
bufferbuilder.vertex(j, this.y1, 0.0D).uv(1.0F, 1.0F).color(0, 0, 0, 255).endVertex();
bufferbuilder.vertex(j, this.y0, 0.0D).uv(1.0F, 0.0F).color(0, 0, 0, 255).endVertex();
bufferbuilder.vertex(i, this.y0, 0.0D).uv(0.0F, 0.0F).color(0, 0, 0, 255).endVertex();
tessellator.end();
bufferbuilder.begin(7, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.vertex(i, l1 + k1, 0.0D).uv(0.0F, 1.0F).color(128, 128, 128, 255).endVertex();
bufferbuilder.vertex(j, l1 + k1, 0.0D).uv(1.0F, 1.0F).color(128, 128, 128, 255).endVertex();
bufferbuilder.vertex(j, l1, 0.0D).uv(1.0F, 0.0F).color(128, 128, 128, 255).endVertex();
bufferbuilder.vertex(i, l1, 0.0D).uv(0.0F, 0.0F).color(128, 128, 128, 255).endVertex();
tessellator.end();
bufferbuilder.begin(7, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.vertex(i, l1 + k1 - 1, 0.0D).uv(0.0F, 1.0F).color(192, 192, 192, 255).endVertex();
bufferbuilder.vertex(j - 1, l1 + k1 - 1, 0.0D).uv(1.0F, 1.0F).color(192, 192, 192, 255).endVertex();
bufferbuilder.vertex(j - 1, l1, 0.0D).uv(1.0F, 0.0F).color(192, 192, 192, 255).endVertex();
@@ -274,8 +269,6 @@ public class PlayerSettingsGui extends Screen {
// this.renderDecorations(p_render_1_, p_render_2_);
RenderSystem.enableTexture();
RenderSystem.shadeModel(7424);
RenderSystem.enableAlphaTest();
RenderSystem.disableBlend();
}
@@ -306,6 +299,11 @@ public class PlayerSettingsGui extends Screen {
return false;
}
}
@Override
public Component getNarration() {
return null;
}
}
}
}

View File

@@ -1,16 +1,13 @@
package nl.requios.effortlessbuilding.gui.buildmode;
import com.google.common.base.Stopwatch;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.*;
import com.mojang.blaze3d.systems.RenderSystem;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import com.mojang.blaze3d.vertex.BufferBuilder;
import com.mojang.blaze3d.vertex.Tesselator;
import net.minecraft.client.renderer.texture.TextureAtlas;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import net.minecraft.client.resources.language.I18n;
import net.minecraft.client.KeyMapping;
import net.minecraft.core.Direction;
@@ -265,12 +262,12 @@ public class RadialMenu extends Screen {
RenderSystem.translatef(0f, 0f, 5f);
RenderSystem.enableTexture();
RenderSystem.color3f(1f, 1f, 1f);
RenderSystem.setShaderColor(1f, 1f, 1f, 1f);
RenderSystem.disableBlend();
RenderSystem.enableAlphaTest();
mc.getTextureManager().bind(TextureAtlas.LOCATION_BLOCKS);
RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_BLOCKS);
buffer.begin(GL11.GL_QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
//Draw buildmode icons
for (final MenuRegion menuRegion : modes) {

View File

@@ -1,6 +1,7 @@
package nl.requios.effortlessbuilding.gui.buildmodifier;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.gui.components.Widget;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.core.BlockPos;
@@ -33,8 +34,8 @@ public class ArraySettingsGui extends GuiCollapsibleScrollEntry {
}
@Override
public void init(List<AbstractWidget> buttons) {
super.init(buttons);
public void init(List<Widget> renderables) {
super.init(renderables);
int y = top;
buttonArrayEnabled = new GuiCheckBoxFixed(left - 15 + 8, y, "", false) {
@@ -44,26 +45,26 @@ public class ArraySettingsGui extends GuiCollapsibleScrollEntry {
setCollapsed(!buttonArrayEnabled.isChecked());
}
};
buttons.add(buttonArrayEnabled);
renderables.add(buttonArrayEnabled);
y = top + 20;
textArrayOffsetX = new GuiNumberField(font, buttons, left + 70, y, 50, 18);
textArrayOffsetX = new GuiNumberField(font, renderables, left + 70, y, 50, 18);
textArrayOffsetX.setNumber(0);
textArrayOffsetX.setTooltip(new TextComponent("How much each copy is shifted."));
arrayNumberFieldList.add(textArrayOffsetX);
textArrayOffsetY = new GuiNumberField(font, buttons, left + 140, y, 50, 18);
textArrayOffsetY = new GuiNumberField(font, renderables, left + 140, y, 50, 18);
textArrayOffsetY.setNumber(0);
textArrayOffsetY.setTooltip(new TextComponent("How much each copy is shifted."));
arrayNumberFieldList.add(textArrayOffsetY);
textArrayOffsetZ = new GuiNumberField(font, buttons, left + 210, y, 50, 18);
textArrayOffsetZ = new GuiNumberField(font, renderables, left + 210, y, 50, 18);
textArrayOffsetZ.setNumber(0);
textArrayOffsetZ.setTooltip(new TextComponent("How much each copy is shifted."));
arrayNumberFieldList.add(textArrayOffsetZ);
y = top + 50;
textArrayCount = new GuiNumberField(font, buttons, left + 55, y, 50, 18);
textArrayCount = new GuiNumberField(font, renderables, left + 55, y, 50, 18);
textArrayCount.setNumber(5);
textArrayCount.setTooltip(new TextComponent("How many copies should be made."));
arrayNumberFieldList.add(textArrayCount);

View File

@@ -1,6 +1,7 @@
package nl.requios.effortlessbuilding.gui.buildmodifier;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.gui.components.Widget;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.client.gui.components.Button;
@@ -40,8 +41,8 @@ public class MirrorSettingsGui extends GuiCollapsibleScrollEntry {
}
@Override
public void init(List<AbstractWidget> buttonList) {
super.init(buttonList);
public void init(List<Widget> renderables) {
super.init(renderables);
int y = top - 2;
buttonMirrorEnabled = new GuiCheckBoxFixed(left - 15 + 8, y, "", false) {
@@ -51,21 +52,21 @@ public class MirrorSettingsGui extends GuiCollapsibleScrollEntry {
setCollapsed(!buttonMirrorEnabled.isChecked());
}
};
buttonList.add(buttonMirrorEnabled);
renderables.add(buttonMirrorEnabled);
y = top + 18;
textMirrorPosX = new GuiNumberField(font, buttonList, left + 58, y, 62, 18);
textMirrorPosX = new GuiNumberField(font, renderables, left + 58, y, 62, 18);
textMirrorPosX.setNumber(0);
textMirrorPosX.setTooltip(
Arrays.asList(new TextComponent("The position of the mirror."), new TextComponent("For odd numbered builds add 0.5.").withStyle(ChatFormatting.GRAY)));
mirrorNumberFieldList.add(textMirrorPosX);
textMirrorPosY = new GuiNumberField(font, buttonList, left + 138, y, 62, 18);
textMirrorPosY = new GuiNumberField(font, renderables, left + 138, y, 62, 18);
textMirrorPosY.setNumber(64);
textMirrorPosY.setTooltip(Arrays.asList(new TextComponent("The position of the mirror."), new TextComponent("For odd numbered builds add 0.5.").withStyle(ChatFormatting.GRAY)));
mirrorNumberFieldList.add(textMirrorPosY);
textMirrorPosZ = new GuiNumberField(font, buttonList, left + 218, y, 62, 18);
textMirrorPosZ = new GuiNumberField(font, renderables, left + 218, y, 62, 18);
textMirrorPosZ.setNumber(0);
textMirrorPosZ.setTooltip(Arrays.asList(new TextComponent("The position of the mirror."), new TextComponent("For odd numbered builds add 0.5.").withStyle(ChatFormatting.GRAY)));
mirrorNumberFieldList.add(textMirrorPosZ);
@@ -81,7 +82,7 @@ public class MirrorSettingsGui extends GuiCollapsibleScrollEntry {
mirrorButtonList.add(buttonMirrorZ);
y = top + 47;
textMirrorRadius = new GuiNumberField(font, buttonList, left + 218, y, 62, 18);
textMirrorRadius = new GuiNumberField(font, renderables, left + 218, y, 62, 18);
textMirrorRadius.setNumber(50);
//TODO change to diameter (remove /2)
textMirrorRadius.setTooltip(Arrays.asList(new TextComponent("How far the mirror reaches in any direction."),
@@ -160,8 +161,8 @@ public class MirrorSettingsGui extends GuiCollapsibleScrollEntry {
buttonToggleOdd.setUseAlternateIcon(toggleOdd);
}
buttonList.addAll(mirrorButtonList);
buttonList.addAll(mirrorIconButtonList);
renderables.addAll(mirrorButtonList);
renderables.addAll(mirrorIconButtonList);
setCollapsed(!buttonMirrorEnabled.isChecked());
}

View File

@@ -2,6 +2,7 @@ package nl.requios.effortlessbuilding.gui.buildmodifier;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.components.Button;
import net.minecraft.network.chat.TextComponent;
@@ -18,6 +19,9 @@ import nl.requios.effortlessbuilding.network.ModifierSettingsMessage;
import nl.requios.effortlessbuilding.network.PacketHandler;
import nl.requios.effortlessbuilding.proxy.ClientProxy;
import java.util.ArrayList;
import java.util.List;
@OnlyIn(Dist.CLIENT)
public class ModifierSettingsGui extends Screen {
@@ -35,6 +39,7 @@ public class ModifierSettingsGui extends Screen {
@Override
//Create buttons and labels and add them to buttonList/labelList
protected void init() {
scrollPane = new GuiScrollPane(this, font, 8, height - 30);
mirrorSettingsGui = new MirrorSettingsGui(scrollPane);
@@ -46,14 +51,14 @@ public class ModifierSettingsGui extends Screen {
radialMirrorSettingsGui = new RadialMirrorSettingsGui(scrollPane);
scrollPane.AddListEntry(radialMirrorSettingsGui);
scrollPane.init(buttons);
scrollPane.init(renderables);
//Close button
int y = height - 26;
buttonClose = new Button(width / 2 - 100, y, 200, 20, new TextComponent("Close"), (button) -> {
Minecraft.getInstance().player.closeContainer();
});
buttons.add(buttonClose);
addRenderableOnly(buttonClose);
}
@Override
@@ -91,7 +96,9 @@ public class ModifierSettingsGui extends Screen {
@Override
public boolean mouseClicked(double mouseX, double mouseY, int mouseButton) {
super.mouseClicked(mouseX, mouseY, mouseButton);
buttons.forEach(button -> button.mouseClicked(mouseX, mouseY, mouseButton));
renderables.forEach(renderable -> {
if (renderable instanceof Button button) button.mouseClicked(mouseX, mouseY, mouseButton);
});
return scrollPane.mouseClicked(mouseX, mouseY, mouseButton);
}

View File

@@ -1,6 +1,7 @@
package nl.requios.effortlessbuilding.gui.buildmodifier;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.gui.components.Widget;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.client.gui.components.Button;
@@ -40,8 +41,8 @@ public class RadialMirrorSettingsGui extends GuiCollapsibleScrollEntry {
}
@Override
public void init(List<AbstractWidget> buttonList) {
super.init(buttonList);
public void init(List<Widget> renderables) {
super.init(renderables);
int y = top - 2;
buttonRadialMirrorEnabled = new GuiCheckBoxFixed(left - 15 + 8, y, "", false) {
@@ -51,32 +52,32 @@ public class RadialMirrorSettingsGui extends GuiCollapsibleScrollEntry {
setCollapsed(!buttonRadialMirrorEnabled.isChecked());
}
};
buttonList.add(buttonRadialMirrorEnabled);
renderables.add(buttonRadialMirrorEnabled);
y = top + 18;
textRadialMirrorPosX = new GuiNumberField(font, buttonList, left + 58, y, 62, 18);
textRadialMirrorPosX = new GuiNumberField(font, renderables, left + 58, y, 62, 18);
textRadialMirrorPosX.setNumber(0);
textRadialMirrorPosX.setTooltip(
Arrays.asList(new TextComponent("The position of the radial mirror."), new TextComponent("For odd numbered builds add 0.5.").withStyle(ChatFormatting.GRAY)));
radialMirrorNumberFieldList.add(textRadialMirrorPosX);
textRadialMirrorPosY = new GuiNumberField(font, buttonList, left + 138, y, 62, 18);
textRadialMirrorPosY = new GuiNumberField(font, renderables, left + 138, y, 62, 18);
textRadialMirrorPosY.setNumber(64);
textRadialMirrorPosY.setTooltip(Arrays.asList(new TextComponent("The position of the radial mirror."), new TextComponent("For odd numbered builds add 0.5.").withStyle(ChatFormatting.GRAY)));
radialMirrorNumberFieldList.add(textRadialMirrorPosY);
textRadialMirrorPosZ = new GuiNumberField(font, buttonList, left + 218, y, 62, 18);
textRadialMirrorPosZ = new GuiNumberField(font, renderables, left + 218, y, 62, 18);
textRadialMirrorPosZ.setNumber(0);
textRadialMirrorPosZ.setTooltip(Arrays.asList(new TextComponent("The position of the radial mirror."), new TextComponent("For odd numbered builds add 0.5.").withStyle(ChatFormatting.GRAY)));
radialMirrorNumberFieldList.add(textRadialMirrorPosZ);
y = top + 47;
textRadialMirrorSlices = new GuiNumberField(font, buttonList, left + 55, y, 50, 18);
textRadialMirrorSlices = new GuiNumberField(font, renderables, left + 55, y, 50, 18);
textRadialMirrorSlices.setNumber(4);
textRadialMirrorSlices.setTooltip(Arrays.asList(new TextComponent("The number of repeating slices."), new TextComponent("Minimally 2.").withStyle(ChatFormatting.GRAY)));
radialMirrorNumberFieldList.add(textRadialMirrorSlices);
textRadialMirrorRadius = new GuiNumberField(font, buttonList, left + 218, y, 62, 18);
textRadialMirrorRadius = new GuiNumberField(font, renderables, left + 218, y, 62, 18);
textRadialMirrorRadius.setNumber(50);
//TODO change to diameter (remove /2)
textRadialMirrorRadius.setTooltip(Arrays.asList(new TextComponent("How far the radial mirror reaches from its center position."),
@@ -158,8 +159,8 @@ public class RadialMirrorSettingsGui extends GuiCollapsibleScrollEntry {
buttonToggleOdd.setUseAlternateIcon(toggleOdd);
}
buttonList.addAll(radialMirrorButtonList);
buttonList.addAll(radialMirrorIconButtonList);
renderables.addAll(radialMirrorButtonList);
renderables.addAll(radialMirrorIconButtonList);
setCollapsed(!buttonRadialMirrorEnabled.isChecked());
}

View File

@@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.Button;
import net.minecraft.network.chat.TextComponent;
import net.minecraftforge.fml.client.gui.GuiUtils;
import net.minecraftforge.fmlclient.gui.GuiUtils;
import javax.annotation.ParametersAreNonnullByDefault;
@@ -30,7 +30,7 @@ public class GuiCheckBoxFixed extends Button {
if (this.visible) {
Minecraft mc = Minecraft.getInstance();
this.isHovered = mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.boxWidth && mouseY < this.y + this.height;
GuiUtils.drawContinuousTexturedBox(WIDGETS_LOCATION, this.x, this.y, 0, 46, this.boxWidth, this.height, 200, 20, 2, 3, 2, 2, this.getBlitOffset());
GuiUtils.drawContinuousTexturedBox(ms, WIDGETS_LOCATION, this.x, this.y, 0, 46, this.boxWidth, this.height, 200, 20, 2, 3, 2, 2, this.getBlitOffset());
this.renderBg(ms, mc, mouseX, mouseY);
int color = 14737632;

View File

@@ -3,6 +3,7 @@ package nl.requios.effortlessbuilding.gui.elements;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.components.Widget;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraftforge.api.distmarker.Dist;
@@ -27,7 +28,7 @@ public abstract class GuiCollapsibleScrollEntry implements GuiScrollPane.IScroll
}
@Override
public void init(List<AbstractWidget> buttonList) {
public void init(List<Widget> renderables) {
left = scrollPane.getWidth() / 2 - 140;
right = scrollPane.getWidth() / 2 + 140;
top = scrollPane.getHeight() / 2 - 100;

View File

@@ -1,5 +1,6 @@
package nl.requios.effortlessbuilding.gui.elements;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
@@ -56,7 +57,7 @@ public class GuiIconButton extends Button {
super.render(ms, mouseX, mouseY, partialTicks);
if (this.visible) {
this.isHovered = mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width && mouseY < this.y + this.height;
Minecraft.getInstance().getTextureManager().bind(this.resourceLocation);
RenderSystem.setShaderTexture(0, this.resourceLocation);
int currentIconX = this.iconX;
int currentIconY = this.iconY;

View File

@@ -1,9 +1,10 @@
package nl.requios.effortlessbuilding.gui.elements;
import com.mojang.blaze3d.vertex.PoseStack;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.client.gui.GuiComponent;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.components.Widget;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.components.EditBox;
import net.minecraft.client.gui.components.AbstractWidget;
@@ -34,7 +35,7 @@ public class GuiNumberField extends GuiComponent {
List<Component> tooltip = new ArrayList<>();
public GuiNumberField(Font font, List<AbstractWidget> buttonList, int x, int y, int width, int height) {
public GuiNumberField(Font font, List<Widget> renderables, int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
@@ -56,8 +57,8 @@ public class GuiNumberField extends GuiComponent {
setNumber(getNumber() + valueChanged);
});
buttonList.add(minusButton);
buttonList.add(plusButton);
renderables.add(minusButton);
renderables.add(plusButton);
}
public double getNumber() {

View File

@@ -1,17 +1,15 @@
package nl.requios.effortlessbuilding.gui.elements;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.*;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.components.Widget;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.components.AbstractWidget;
import com.mojang.blaze3d.vertex.BufferBuilder;
import com.mojang.blaze3d.vertex.Tesselator;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import net.minecraft.util.Mth;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@@ -102,8 +100,6 @@ public class GuiScrollPane extends SlotGui {
RenderSystem.enableBlend();
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ZERO, GlStateManager.DestFactor.ONE);
RenderSystem.disableAlphaTest();
RenderSystem.shadeModel(7425);
RenderSystem.disableTexture();
//top
@@ -132,19 +128,19 @@ public class GuiScrollPane extends SlotGui {
l1 = this.y0;
}
bufferbuilder.begin(7, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.vertex(scrollbarLeft, this.y1, 0.0F).uv(0.0F, 1.0F).color(0, 0, 0, 255).endVertex();
bufferbuilder.vertex(scrollbarRight, this.y1, 0.0F).uv(1.0F, 1.0F).color(0, 0, 0, 255).endVertex();
bufferbuilder.vertex(scrollbarRight, this.y0, 0.0F).uv(1.0F, 0.0F).color(0, 0, 0, 255).endVertex();
bufferbuilder.vertex(scrollbarLeft, this.y0, 0.0F).uv(0.0F, 0.0F).color(0, 0, 0, 255).endVertex();
tessellator.end();
bufferbuilder.begin(7, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.vertex(scrollbarLeft, l1 + k1, 0.0F).uv(0.0F, 1.0F).color(128, 128, 128, 255).endVertex();
bufferbuilder.vertex(scrollbarRight, l1 + k1, 0.0F).uv(1.0F, 1.0F).color(128, 128, 128, 255).endVertex();
bufferbuilder.vertex(scrollbarRight, l1, 0.0F).uv(1.0F, 0.0F).color(128, 128, 128, 255).endVertex();
bufferbuilder.vertex(scrollbarLeft, l1, 0.0F).uv(0.0F, 0.0F).color(128, 128, 128, 255).endVertex();
tessellator.end();
bufferbuilder.begin(7, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
bufferbuilder.vertex(scrollbarLeft, l1 + k1 - 1, 0.0F).uv(0.0F, 1.0F).color(192, 192, 192, 255).endVertex();
bufferbuilder.vertex(scrollbarRight - 1, l1 + k1 - 1, 0.0F).uv(1.0F, 1.0F).color(192, 192, 192, 255).endVertex();
bufferbuilder.vertex(scrollbarRight - 1, l1, 0.0F).uv(1.0F, 0.0F).color(192, 192, 192, 255).endVertex();
@@ -154,8 +150,6 @@ public class GuiScrollPane extends SlotGui {
//this.renderDecorations(mouseXIn, mouseYIn);
RenderSystem.enableTexture();
RenderSystem.shadeModel(7424);
RenderSystem.enableAlphaTest();
RenderSystem.disableBlend();
}
}
@@ -361,15 +355,15 @@ public class GuiScrollPane extends SlotGui {
int j1 = this.x0 + this.width / 2 + this.getRowWidth() / 2;
RenderSystem.disableTexture();
float f = this.isFocused() ? 1.0F : 0.5F;
RenderSystem.color4f(f, f, f, 1.0F);
bufferbuilder.begin(7, DefaultVertexFormat.POSITION);
RenderSystem.setShaderColor(f, f, f, 1.0F);
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION);
bufferbuilder.vertex(i1, y + entryHeight2 + 2, 0.0D).endVertex();
bufferbuilder.vertex(j1, y + entryHeight2 + 2, 0.0D).endVertex();
bufferbuilder.vertex(j1, y - 2, 0.0D).endVertex();
bufferbuilder.vertex(i1, y - 2, 0.0D).endVertex();
tessellator.end();
RenderSystem.color4f(0.0F, 0.0F, 0.0F, 1.0F);
bufferbuilder.begin(7, DefaultVertexFormat.POSITION);
RenderSystem.setShaderColor(0.0F, 0.0F, 0.0F, 1.0F);
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION);
bufferbuilder.vertex(i1 + 1, y + entryHeight2 + 1, 0.0D).endVertex();
bufferbuilder.vertex(j1 - 1, y + entryHeight2 + 1, 0.0D).endVertex();
bufferbuilder.vertex(j1 - 1, y - 1, 0.0D).endVertex();
@@ -404,9 +398,9 @@ public class GuiScrollPane extends SlotGui {
}
//PASSTHROUGHS
public void init(List<AbstractWidget> buttonList) {
public void init(List<Widget> renderables) {
for (IScrollEntry entry : this.listEntries) {
entry.init(buttonList);
entry.init(renderables);
}
}
@@ -442,7 +436,7 @@ public class GuiScrollPane extends SlotGui {
}
public interface IScrollEntry {
void init(List<AbstractWidget> buttonList);
void init(List<Widget> renderables);
void updateScreen();

View File

@@ -1,15 +1,12 @@
package nl.requios.effortlessbuilding.gui.elements;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.*;
import com.mojang.blaze3d.systems.RenderSystem;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.events.AbstractContainerEventHandler;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.client.gui.components.Widget;
import com.mojang.blaze3d.vertex.BufferBuilder;
import com.mojang.blaze3d.vertex.Tesselator;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import net.minecraft.util.Mth;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@@ -231,15 +228,15 @@ public abstract class SlotGui extends AbstractContainerEventHandler implements W
int j1 = this.x0 + this.width / 2 + this.getRowWidth() / 2;
RenderSystem.disableTexture();
float f = this.isFocused() ? 1.0F : 0.5F;
RenderSystem.color4f(f, f, f, 1.0F);
bufferbuilder.begin(7, DefaultVertexFormat.POSITION);
RenderSystem.setShaderColor(f, f, f, 1.0F);
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION);
bufferbuilder.vertex(i1, k + l + 2, 0.0D).endVertex();
bufferbuilder.vertex(j1, k + l + 2, 0.0D).endVertex();
bufferbuilder.vertex(j1, k - 2, 0.0D).endVertex();
bufferbuilder.vertex(i1, k - 2, 0.0D).endVertex();
tessellator.end();
RenderSystem.color4f(0.0F, 0.0F, 0.0F, 1.0F);
bufferbuilder.begin(7, DefaultVertexFormat.POSITION);
RenderSystem.setShaderColor(0.0F, 0.0F, 0.0F, 1.0F);
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION);
bufferbuilder.vertex(i1 + 1, k + l + 1, 0.0D).endVertex();
bufferbuilder.vertex(j1 - 1, k + l + 1, 0.0D).endVertex();
bufferbuilder.vertex(j1 - 1, k - 1, 0.0D).endVertex();

View File

@@ -8,7 +8,7 @@ import net.minecraft.world.item.ItemStack;
public class InventoryHelper {
public static ItemStack findItemStackInInventory(Player player, Block block) {
for (ItemStack invStack : player.inventory.items) {
for (ItemStack invStack : player.getInventory().items) {
if (!invStack.isEmpty() && invStack.getItem() instanceof BlockItem &&
((BlockItem) invStack.getItem()).getBlock().equals(block)) {
return invStack;
@@ -19,7 +19,7 @@ public class InventoryHelper {
public static int findTotalBlocksInInventory(Player player, Block block) {
int total = 0;
for (ItemStack invStack : player.inventory.items) {
for (ItemStack invStack : player.getInventory().items) {
if (!invStack.isEmpty() && invStack.getItem() instanceof BlockItem &&
((BlockItem) invStack.getItem()).getBlock().equals(block)) {
total += invStack.getCount();

View File

@@ -1,7 +1,6 @@
package nl.requios.effortlessbuilding.helper;
import net.minecraft.advancements.CriteriaTriggers;
import net.minecraft.block.*;
import net.minecraft.world.level.material.Material;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player;
@@ -41,7 +40,7 @@ public class SurvivalHelper {
if (!world.isLoaded(pos)) return false;
ItemStack itemstack = origstack;
if (blockState.getBlock().isAir(blockState, world, pos) || itemstack.isEmpty()) {
if (blockState.isAir() || itemstack.isEmpty()) {
dropBlock(world, player, pos);
world.removeBlock(pos, false);
return true;
@@ -229,7 +228,7 @@ public class SurvivalHelper {
private static boolean canPlayerEdit(Player player, Level world, BlockPos pos, ItemStack stack) {
if (!world.mayInteract(player, pos)) return false;
if (player.abilities.mayBuild) {
if (player.getAbilities().mayBuild) {
//True in creative and survival mode
return true;
} else {

View File

@@ -1,6 +1,6 @@
package nl.requios.effortlessbuilding.item;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.item.TooltipFlag;
@@ -10,7 +10,6 @@ import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.level.material.Fluids;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.MenuProvider;
import net.minecraft.item.*;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.InteractionResult;
@@ -25,7 +24,7 @@ import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.world.level.Level;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import net.minecraftforge.fml.network.NetworkHooks;
import net.minecraftforge.fmllegacy.network.NetworkHooks;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
import nl.requios.effortlessbuilding.EffortlessBuilding;

View File

@@ -1,12 +1,11 @@
package nl.requios.effortlessbuilding.item;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.ItemStack;
import net.minecraft.util.*;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.ChatFormatting;

View File

@@ -1,12 +1,11 @@
package nl.requios.effortlessbuilding.item;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.ItemStack;
import net.minecraft.util.*;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.ChatFormatting;

View File

@@ -1,12 +1,11 @@
package nl.requios.effortlessbuilding.item;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.ItemStack;
import net.minecraft.util.*;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.ChatFormatting;

View File

@@ -7,7 +7,7 @@ import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.core.BlockPos;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.fml.LogicalSide;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.buildmodifier.BlockSet;
import nl.requios.effortlessbuilding.buildmodifier.UndoRedo;

View File

@@ -7,7 +7,7 @@ import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.HitResult;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.fml.LogicalSide;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import nl.requios.effortlessbuilding.buildmode.BuildModes;
import java.util.function.Supplier;

View File

@@ -7,7 +7,7 @@ import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.HitResult;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.fml.LogicalSide;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import nl.requios.effortlessbuilding.buildmode.BuildModes;
import nl.requios.effortlessbuilding.render.BlockPreviewRenderer;

View File

@@ -2,7 +2,7 @@ package nl.requios.effortlessbuilding.network;
import net.minecraft.world.entity.player.Player;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.buildmode.BuildModes;

View File

@@ -3,7 +3,7 @@ package nl.requios.effortlessbuilding.network;
import net.minecraft.world.entity.player.Player;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.fml.LogicalSide;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.buildmodifier.UndoRedo;

View File

@@ -2,7 +2,7 @@ package nl.requios.effortlessbuilding.network;
import net.minecraft.world.entity.player.Player;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.buildmode.ModeOptions;

View File

@@ -2,7 +2,7 @@ package nl.requios.effortlessbuilding.network;
import net.minecraft.world.entity.player.Player;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.buildmode.BuildModes;
import nl.requios.effortlessbuilding.buildmode.ModeSettingsManager;

View File

@@ -4,7 +4,7 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.core.BlockPos;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.buildmodifier.Array;
import nl.requios.effortlessbuilding.buildmodifier.Mirror;

View File

@@ -1,8 +1,8 @@
package nl.requios.effortlessbuilding.network;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.fml.network.NetworkRegistry;
import net.minecraftforge.fml.network.simple.SimpleChannel;
import net.minecraftforge.fmllegacy.network.NetworkRegistry;
import net.minecraftforge.fmllegacy.network.simple.SimpleChannel;
import nl.requios.effortlessbuilding.EffortlessBuilding;
public class PacketHandler {

View File

@@ -5,7 +5,7 @@ import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.HitResult;
import net.minecraftforge.fml.LogicalSide;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.proxy.ClientProxy;

View File

@@ -3,7 +3,7 @@ package nl.requios.effortlessbuilding.network;
import net.minecraft.world.entity.player.Player;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.fml.LogicalSide;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import java.util.function.Supplier;

View File

@@ -1,6 +1,6 @@
package nl.requios.effortlessbuilding.proxy;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.client.Minecraft;
@@ -31,11 +31,13 @@ import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.DeferredWorkQueue;
import net.minecraftforge.fml.LogicalSide;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmlclient.registry.ClientRegistry;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.buildmode.BuildModes;
import nl.requios.effortlessbuilding.buildmode.ModeOptions;
@@ -372,7 +374,8 @@ public class ClientProxy implements IProxy {
ClientRegistry.registerKeyBinding(keyBinding);
}
DeferredWorkQueue.runLater(() -> MenuScreens.register(EffortlessBuilding.RANDOMIZER_BAG_CONTAINER.get(), RandomizerBagScreen::new));
//TODO 1.17
// DeferredWorkQueue.runLater(() -> MenuScreens.register(EffortlessBuilding.RANDOMIZER_BAG_CONTAINER.get(), RandomizerBagScreen::new));
}
public Player getPlayerEntityFromContext(Supplier<NetworkEvent.Context> ctx) {

View File

@@ -3,7 +3,7 @@ package nl.requios.effortlessbuilding.proxy;
import net.minecraft.world.entity.player.Player;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import java.util.function.Supplier;

View File

@@ -4,8 +4,8 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.network.NetworkEvent;
import net.minecraftforge.fml.network.PacketDistributor;
import net.minecraftforge.fmllegacy.network.NetworkEvent;
import net.minecraftforge.fmllegacy.network.PacketDistributor;
import nl.requios.effortlessbuilding.network.PacketHandler;
import nl.requios.effortlessbuilding.network.TranslatedLogMessage;

View File

@@ -251,7 +251,7 @@ public class BlockPreviewRenderer {
BlockPos coordinate = breakCoordinates.get(i);
BlockState blockState = player.level.getBlockState(coordinate);
if (!blockState.getBlock().isAir(blockState, player.level, coordinate)) {
if (!blockState.isAir()) {
if (SurvivalHelper.canBreak(player.level, player, coordinate) || i == 0) {
VoxelShape collisionShape = blockState.getCollisionShape(player.level, coordinate);
RenderHandler.renderBlockOutline(matrixStack, buffer, coordinate, collisionShape, new Vec3(0f, 0f, 0f));

View File

@@ -1,6 +1,7 @@
package nl.requios.effortlessbuilding.render;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.VertexFormat;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.RenderStateShard;
import net.minecraft.client.renderer.RenderType;
@@ -8,7 +9,7 @@ import net.minecraft.client.renderer.texture.TextureAtlas;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import net.minecraft.core.BlockPos;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.fml.common.ObfuscationReflectionHelper;
import net.minecraftforge.fml.util.ObfuscationReflectionHelper;
import org.lwjgl.opengl.*;
import java.util.OptionalDouble;
@@ -18,14 +19,16 @@ public class BuildRenderTypes {
public static final RenderStateShard.TransparencyStateShard TRANSLUCENT_TRANSPARENCY;
public static final RenderStateShard.TransparencyStateShard NO_TRANSPARENCY;
public static final RenderStateShard.DiffuseLightingStateShard DIFFUSE_LIGHTING_ENABLED;
public static final RenderStateShard.DiffuseLightingStateShard DIFFUSE_LIGHTING_DISABLED;
//TODO 1.17
// public static final RenderStateShard.DiffuseLightingStateShard DIFFUSE_LIGHTING_ENABLED;
// public static final RenderStateShard.DiffuseLightingStateShard DIFFUSE_LIGHTING_DISABLED;
public static final RenderStateShard.LayeringStateShard PROJECTION_LAYERING;
public static final RenderStateShard.CullStateShard CULL_DISABLED;
public static final RenderStateShard.AlphaStateShard DEFAULT_ALPHA;
//TODO 1.17
// public static final RenderStateShard.AlphaStateShard DEFAULT_ALPHA;
public static final RenderStateShard.WriteMaskStateShard WRITE_TO_DEPTH_AND_COLOR;
public static final RenderStateShard.WriteMaskStateShard COLOR_WRITE;
@@ -40,14 +43,12 @@ public class BuildRenderTypes {
TRANSLUCENT_TRANSPARENCY = ObfuscationReflectionHelper.getPrivateValue(RenderStateShard.class, null, "TRANSLUCENT_TRANSPARENCY");
NO_TRANSPARENCY = ObfuscationReflectionHelper.getPrivateValue(RenderStateShard.class, null, "NO_TRANSPARENCY");
DIFFUSE_LIGHTING_ENABLED = new RenderStateShard.DiffuseLightingStateShard(true);
DIFFUSE_LIGHTING_DISABLED = new RenderStateShard.DiffuseLightingStateShard(false);
PROJECTION_LAYERING = ObfuscationReflectionHelper.getPrivateValue(RenderStateShard.class, null, "VIEW_OFFSET_Z_LAYERING");
CULL_DISABLED = new RenderStateShard.CullStateShard(false);
DEFAULT_ALPHA = new RenderStateShard.AlphaStateShard(0.003921569F);
//TODO 1.17
// DEFAULT_ALPHA = new RenderStateShard.AlphaStateShard(0.003921569F);
final boolean ENABLE_DEPTH_WRITING = true;
final boolean ENABLE_COLOUR_COMPONENTS_WRITING = true;
@@ -76,7 +77,7 @@ public class BuildRenderTypes {
.setCullState(CULL_DISABLED)
.createCompositeState(false);
LINES = RenderType.create("eb_lines",
DefaultVertexFormat.POSITION_COLOR, GL11.GL_LINES, INITIAL_BUFFER_SIZE, renderState);
DefaultVertexFormat.POSITION_COLOR, VertexFormat.Mode.LINES, INITIAL_BUFFER_SIZE, false, false, renderState);
renderState = RenderType.CompositeState.builder()
.setLineState(new RenderStateShard.LineStateShard(OptionalDouble.of(2)))
@@ -86,7 +87,7 @@ public class BuildRenderTypes {
.setCullState(CULL_DISABLED)
.createCompositeState(false);
PLANES = RenderType.create("eb_planes",
DefaultVertexFormat.POSITION_COLOR, GL11.GL_TRIANGLE_STRIP, INITIAL_BUFFER_SIZE, renderState);
DefaultVertexFormat.POSITION_COLOR, VertexFormat.Mode.TRIANGLE_STRIP, INITIAL_BUFFER_SIZE, false, false, renderState);
}
@@ -112,15 +113,17 @@ public class BuildRenderTypes {
// RenderSystem.pushTextureAttributes();
ShaderHandler.useShader(ShaderHandler.dissolve, generateShaderCallback(dissolve, Vec3.atLowerCornerOf(blockPos), Vec3.atLowerCornerOf(firstPos), Vec3.atLowerCornerOf(secondPos), blockPos == secondPos, red));
RenderSystem.blendColor(1f, 1f, 1f, 0.8f);
//TODO 1.17
// RenderSystem.blendColor(1f, 1f, 1f, 0.8f);
}, ShaderHandler::releaseShader);
RenderType.CompositeState renderState = RenderType.CompositeState.builder()
.setTextureState(new RenderStateShard.TextureStateShard(ShaderHandler.shaderMaskTextureLocation, false, false))
.setTexturingState(MY_TEXTURING)
.setTransparencyState(TRANSLUCENT_TRANSPARENCY)
.setDiffuseLightingState(DIFFUSE_LIGHTING_DISABLED)
.setAlphaState(DEFAULT_ALPHA)
//TODO 1.17
// .setDiffuseLightingState(DIFFUSE_LIGHTING_DISABLED)
// .setAlphaState(DEFAULT_ALPHA)
.setCullState(new RenderStateShard.CullStateShard(true))
.setLightmapState(new RenderStateShard.LightmapStateShard(false))
.setOverlayState(new RenderStateShard.OverlayStateShard(false))
@@ -128,7 +131,7 @@ public class BuildRenderTypes {
//Unique name for every combination, otherwise it will reuse the previous one
String name = "eb_block_previews_" + dissolve + "_" + blockPos + "_" + firstPos + "_" + secondPos + "_" + red;
return RenderType.create(name,
DefaultVertexFormat.BLOCK, GL11.GL_QUADS, 256, true, true, renderState);
DefaultVertexFormat.BLOCK, VertexFormat.Mode.QUADS, 256, true, true, renderState);
}
private static Consumer<Integer> generateShaderCallback(final float dissolve, final Vec3 blockpos,
@@ -151,13 +154,15 @@ public class BuildRenderTypes {
//mask
ARBShaderObjects.glUniform1iARB(maskUniform, secondaryTextureUnit);
glActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB + secondaryTextureUnit);
mc.getTextureManager().bind(ShaderHandler.shaderMaskTextureLocation);//getTexture(ShaderHandler.shaderMaskTextureLocation).bindTexture();
RenderSystem.setShaderTexture(0, ShaderHandler.shaderMaskTextureLocation);
//mc.getTextureManager().bindForSetup(ShaderHandler.shaderMaskTextureLocation);//getTexture(ShaderHandler.shaderMaskTextureLocation).bindTexture();
//GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc.getTextureManager().getTexture(ShaderHandler.shaderMaskTextureLocation).getGlTextureId());
//image
ARBShaderObjects.glUniform1iARB(imageUniform, primaryTextureUnit);
glActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB + primaryTextureUnit);
mc.getTextureManager().bind(TextureAtlas.LOCATION_BLOCKS);//.getTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE).bindTexture();
RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_BLOCKS);
//mc.getTextureManager().bindForSetup(TextureAtlas.LOCATION_BLOCKS);//.getTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE).bindTexture();
//GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc.getTextureManager().getTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE).getGlTextureId());
//blockpos