Fixed checkbox graphics (copied GuiCheckBox from previous version). Fixed missing icons in radial menu (moved texture stitch event to ModEventHandler).
This commit is contained in:
@@ -8,6 +8,7 @@ import net.minecraft.entity.player.ServerPlayerEntity;
|
|||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.client.event.TextureStitchEvent;
|
||||||
import net.minecraftforge.event.AttachCapabilitiesEvent;
|
import net.minecraftforge.event.AttachCapabilitiesEvent;
|
||||||
import net.minecraftforge.event.entity.player.PlayerEvent;
|
import net.minecraftforge.event.entity.player.PlayerEvent;
|
||||||
import net.minecraftforge.event.world.BlockEvent;
|
import net.minecraftforge.event.world.BlockEvent;
|
||||||
|
|||||||
@@ -1,19 +1,30 @@
|
|||||||
package nl.requios.effortlessbuilding;
|
package nl.requios.effortlessbuilding;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||||
import net.minecraft.inventory.container.Container;
|
import net.minecraft.inventory.container.Container;
|
||||||
import net.minecraft.inventory.container.ContainerType;
|
import net.minecraft.inventory.container.ContainerType;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.BlockItem;
|
import net.minecraft.item.BlockItem;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraftforge.client.event.TextureStitchEvent;
|
||||||
import net.minecraftforge.event.RegistryEvent;
|
import net.minecraftforge.event.RegistryEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
|
import nl.requios.effortlessbuilding.buildmode.BuildModes;
|
||||||
|
import nl.requios.effortlessbuilding.buildmode.ModeOptions;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
// You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD
|
// You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD
|
||||||
// Event bus for receiving Registry Events)
|
// Event bus for receiving Registry Events)
|
||||||
@Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD)
|
@Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD)
|
||||||
public class ModEventHandler {
|
public class ModEventHandler {
|
||||||
|
|
||||||
|
private static final HashMap<BuildModes.BuildModeEnum, ResourceLocation> buildModeIcons = new HashMap<>();
|
||||||
|
private static final HashMap<ModeOptions.ActionEnum, ResourceLocation> modeOptionIcons = new HashMap<>();
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void registerBlocks(RegistryEvent.Register<Block> event) {
|
public static void registerBlocks(RegistryEvent.Register<Block> event) {
|
||||||
event.getRegistry().registerAll(EffortlessBuilding.BLOCKS);
|
event.getRegistry().registerAll(EffortlessBuilding.BLOCKS);
|
||||||
@@ -34,4 +45,30 @@ public class ModEventHandler {
|
|||||||
// public static void registerContainerTypes(RegistryEvent.Register<ContainerType<?>> event) {
|
// public static void registerContainerTypes(RegistryEvent.Register<ContainerType<?>> event) {
|
||||||
// event.getRegistry().register()
|
// event.getRegistry().register()
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onTextureStitch(final TextureStitchEvent.Pre event) {
|
||||||
|
//register icon textures
|
||||||
|
for (final BuildModes.BuildModeEnum mode : BuildModes.BuildModeEnum.values())
|
||||||
|
{
|
||||||
|
final ResourceLocation spriteLocation = new ResourceLocation(EffortlessBuilding.MODID, "icons/" + mode.name().toLowerCase());
|
||||||
|
event.addSprite(spriteLocation);
|
||||||
|
buildModeIcons.put(mode, spriteLocation);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (final ModeOptions.ActionEnum action : ModeOptions.ActionEnum.values())
|
||||||
|
{
|
||||||
|
final ResourceLocation spriteLocation = new ResourceLocation(EffortlessBuilding.MODID, "icons/" + action.name().toLowerCase());
|
||||||
|
event.addSprite(spriteLocation);
|
||||||
|
modeOptionIcons.put(action, spriteLocation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TextureAtlasSprite getBuildModeIcon(BuildModes.BuildModeEnum mode) {
|
||||||
|
return Minecraft.getInstance().getTextureMap().getSprite(buildModeIcons.get(mode));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TextureAtlasSprite getModeOptionIcon(ModeOptions.ActionEnum action) {
|
||||||
|
return Minecraft.getInstance().getTextureMap().getSprite(modeOptionIcons.get(action));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import net.minecraft.util.text.ITextComponent;
|
|||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraft.util.text.TranslationTextComponent;
|
import net.minecraft.util.text.TranslationTextComponent;
|
||||||
import nl.requios.effortlessbuilding.EffortlessBuilding;
|
import nl.requios.effortlessbuilding.EffortlessBuilding;
|
||||||
|
import nl.requios.effortlessbuilding.ModEventHandler;
|
||||||
import nl.requios.effortlessbuilding.buildmode.ModeSettingsManager;
|
import nl.requios.effortlessbuilding.buildmode.ModeSettingsManager;
|
||||||
import nl.requios.effortlessbuilding.proxy.ClientProxy;
|
import nl.requios.effortlessbuilding.proxy.ClientProxy;
|
||||||
import org.apache.commons.lang3.text.WordUtils;
|
import org.apache.commons.lang3.text.WordUtils;
|
||||||
@@ -298,7 +299,7 @@ public class RadialMenu extends Screen {
|
|||||||
final double x = (menuRegion.x1 + menuRegion.x2) * 0.5 * (ringOuterEdge * 0.6 + 0.4 * ringInnerEdge);
|
final double x = (menuRegion.x1 + menuRegion.x2) * 0.5 * (ringOuterEdge * 0.6 + 0.4 * ringInnerEdge);
|
||||||
final double y = (menuRegion.y1 + menuRegion.y2) * 0.5 * (ringOuterEdge * 0.6 + 0.4 * ringInnerEdge);
|
final double y = (menuRegion.y1 + menuRegion.y2) * 0.5 * (ringOuterEdge * 0.6 + 0.4 * ringInnerEdge);
|
||||||
|
|
||||||
final TextureAtlasSprite sprite = ClientProxy.getBuildModeIcon(menuRegion.mode);
|
final TextureAtlasSprite sprite = ModEventHandler.getBuildModeIcon(menuRegion.mode);
|
||||||
|
|
||||||
final double x1 = x - 8;
|
final double x1 = x - 8;
|
||||||
final double x2 = x + 8;
|
final double x2 = x + 8;
|
||||||
@@ -330,7 +331,7 @@ public class RadialMenu extends Screen {
|
|||||||
final double v1 = 0;
|
final double v1 = 0;
|
||||||
final double v2 = 16;
|
final double v2 = 16;
|
||||||
|
|
||||||
final TextureAtlasSprite sprite = ClientProxy.getModeOptionIcon(button.action);
|
final TextureAtlasSprite sprite = ModEventHandler.getModeOptionIcon(button.action);
|
||||||
|
|
||||||
final double btnmiddleX = (button.x1 + button.x2) / 2 + 0.01;
|
final double btnmiddleX = (button.x1 + button.x2) / 2 + 0.01;
|
||||||
final double btnmiddleY = (button.y1 + button.y2) / 2 + 0.01;
|
final double btnmiddleY = (button.y1 + button.y2) / 2 + 0.01;
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
|
||||||
import nl.requios.effortlessbuilding.EffortlessBuilding;
|
import nl.requios.effortlessbuilding.EffortlessBuilding;
|
||||||
import nl.requios.effortlessbuilding.buildmodifier.Array;
|
import nl.requios.effortlessbuilding.buildmodifier.Array;
|
||||||
import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager;
|
import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager;
|
||||||
|
import nl.requios.effortlessbuilding.gui.elements.GuiCheckBoxFixed;
|
||||||
import nl.requios.effortlessbuilding.gui.elements.GuiCollapsibleScrollEntry;
|
import nl.requios.effortlessbuilding.gui.elements.GuiCollapsibleScrollEntry;
|
||||||
import nl.requios.effortlessbuilding.gui.elements.GuiNumberField;
|
import nl.requios.effortlessbuilding.gui.elements.GuiNumberField;
|
||||||
import nl.requios.effortlessbuilding.gui.elements.GuiScrollPane;
|
import nl.requios.effortlessbuilding.gui.elements.GuiScrollPane;
|
||||||
@@ -24,7 +24,7 @@ public class ArraySettingsGui extends GuiCollapsibleScrollEntry {
|
|||||||
|
|
||||||
protected List<GuiNumberField> arrayNumberFieldList = new ArrayList<>();
|
protected List<GuiNumberField> arrayNumberFieldList = new ArrayList<>();
|
||||||
|
|
||||||
private GuiCheckBox buttonArrayEnabled;
|
private GuiCheckBoxFixed buttonArrayEnabled;
|
||||||
private GuiNumberField textArrayOffsetX, textArrayOffsetY, textArrayOffsetZ, textArrayCount;
|
private GuiNumberField textArrayOffsetX, textArrayOffsetY, textArrayOffsetZ, textArrayCount;
|
||||||
|
|
||||||
public ArraySettingsGui(GuiScrollPane scrollPane) {
|
public ArraySettingsGui(GuiScrollPane scrollPane) {
|
||||||
@@ -36,7 +36,7 @@ public class ArraySettingsGui extends GuiCollapsibleScrollEntry {
|
|||||||
super.init(buttons);
|
super.init(buttons);
|
||||||
|
|
||||||
int y = top;
|
int y = top;
|
||||||
buttonArrayEnabled = new GuiCheckBox(left - 15 + 8, y, "", false) {
|
buttonArrayEnabled = new GuiCheckBoxFixed(left - 15 + 8, y, "", false) {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(double mouseX, double mouseY) {
|
public void onClick(double mouseX, double mouseY) {
|
||||||
super.onClick(mouseX, mouseY);
|
super.onClick(mouseX, mouseY);
|
||||||
|
|||||||
@@ -8,14 +8,10 @@ import net.minecraft.util.math.Vec3d;
|
|||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
|
||||||
import nl.requios.effortlessbuilding.EffortlessBuilding;
|
import nl.requios.effortlessbuilding.EffortlessBuilding;
|
||||||
import nl.requios.effortlessbuilding.buildmodifier.Mirror;
|
import nl.requios.effortlessbuilding.buildmodifier.Mirror;
|
||||||
import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager;
|
import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager;
|
||||||
import nl.requios.effortlessbuilding.gui.elements.GuiCollapsibleScrollEntry;
|
import nl.requios.effortlessbuilding.gui.elements.*;
|
||||||
import nl.requios.effortlessbuilding.gui.elements.GuiIconButton;
|
|
||||||
import nl.requios.effortlessbuilding.gui.elements.GuiNumberField;
|
|
||||||
import nl.requios.effortlessbuilding.gui.elements.GuiScrollPane;
|
|
||||||
import nl.requios.effortlessbuilding.helper.ReachHelper;
|
import nl.requios.effortlessbuilding.helper.ReachHelper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -33,7 +29,7 @@ public class MirrorSettingsGui extends GuiCollapsibleScrollEntry {
|
|||||||
protected List<GuiNumberField> mirrorNumberFieldList = new ArrayList<>();
|
protected List<GuiNumberField> mirrorNumberFieldList = new ArrayList<>();
|
||||||
|
|
||||||
private GuiNumberField textMirrorPosX, textMirrorPosY, textMirrorPosZ, textMirrorRadius;
|
private GuiNumberField textMirrorPosX, textMirrorPosY, textMirrorPosZ, textMirrorRadius;
|
||||||
private GuiCheckBox buttonMirrorEnabled, buttonMirrorX, buttonMirrorY, buttonMirrorZ;
|
private GuiCheckBoxFixed buttonMirrorEnabled, buttonMirrorX, buttonMirrorY, buttonMirrorZ;
|
||||||
private GuiIconButton buttonCurrentPosition, buttonToggleOdd, buttonDrawPlanes, buttonDrawLines;
|
private GuiIconButton buttonCurrentPosition, buttonToggleOdd, buttonDrawPlanes, buttonDrawLines;
|
||||||
private boolean drawPlanes, drawLines, toggleOdd;
|
private boolean drawPlanes, drawLines, toggleOdd;
|
||||||
|
|
||||||
@@ -46,7 +42,7 @@ public class MirrorSettingsGui extends GuiCollapsibleScrollEntry {
|
|||||||
super.init(buttonList);
|
super.init(buttonList);
|
||||||
|
|
||||||
int y = top - 2;
|
int y = top - 2;
|
||||||
buttonMirrorEnabled = new GuiCheckBox(left - 15 + 8, y, "", false) {
|
buttonMirrorEnabled = new GuiCheckBoxFixed(left - 15 + 8, y, "", false) {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(double mouseX, double mouseY) {
|
public void onClick(double mouseX, double mouseY) {
|
||||||
super.onClick(mouseX, mouseY);
|
super.onClick(mouseX, mouseY);
|
||||||
@@ -73,13 +69,13 @@ public class MirrorSettingsGui extends GuiCollapsibleScrollEntry {
|
|||||||
mirrorNumberFieldList.add(textMirrorPosZ);
|
mirrorNumberFieldList.add(textMirrorPosZ);
|
||||||
|
|
||||||
y = top + 50;
|
y = top + 50;
|
||||||
buttonMirrorX = new GuiCheckBox(left + 60, y, " X", true);
|
buttonMirrorX = new GuiCheckBoxFixed(left + 60, y, " X", true);
|
||||||
mirrorButtonList.add(buttonMirrorX);
|
mirrorButtonList.add(buttonMirrorX);
|
||||||
|
|
||||||
buttonMirrorY = new GuiCheckBox(left + 100, y, " Y", false);
|
buttonMirrorY = new GuiCheckBoxFixed(left + 100, y, " Y", false);
|
||||||
mirrorButtonList.add(buttonMirrorY);
|
mirrorButtonList.add(buttonMirrorY);
|
||||||
|
|
||||||
buttonMirrorZ = new GuiCheckBox(left + 140, y, " Z", false);
|
buttonMirrorZ = new GuiCheckBoxFixed(left + 140, y, " Z", false);
|
||||||
mirrorButtonList.add(buttonMirrorZ);
|
mirrorButtonList.add(buttonMirrorZ);
|
||||||
|
|
||||||
y = top + 47;
|
y = top + 47;
|
||||||
|
|||||||
@@ -8,14 +8,10 @@ import net.minecraft.util.math.Vec3d;
|
|||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
|
||||||
import nl.requios.effortlessbuilding.EffortlessBuilding;
|
import nl.requios.effortlessbuilding.EffortlessBuilding;
|
||||||
import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager;
|
import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager;
|
||||||
import nl.requios.effortlessbuilding.buildmodifier.RadialMirror;
|
import nl.requios.effortlessbuilding.buildmodifier.RadialMirror;
|
||||||
import nl.requios.effortlessbuilding.gui.elements.GuiCollapsibleScrollEntry;
|
import nl.requios.effortlessbuilding.gui.elements.*;
|
||||||
import nl.requios.effortlessbuilding.gui.elements.GuiIconButton;
|
|
||||||
import nl.requios.effortlessbuilding.gui.elements.GuiNumberField;
|
|
||||||
import nl.requios.effortlessbuilding.gui.elements.GuiScrollPane;
|
|
||||||
import nl.requios.effortlessbuilding.helper.ReachHelper;
|
import nl.requios.effortlessbuilding.helper.ReachHelper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -33,7 +29,7 @@ public class RadialMirrorSettingsGui extends GuiCollapsibleScrollEntry {
|
|||||||
protected List<GuiNumberField> radialMirrorNumberFieldList = new ArrayList<>();
|
protected List<GuiNumberField> radialMirrorNumberFieldList = new ArrayList<>();
|
||||||
|
|
||||||
private GuiNumberField textRadialMirrorPosX, textRadialMirrorPosY, textRadialMirrorPosZ, textRadialMirrorSlices, textRadialMirrorRadius;
|
private GuiNumberField textRadialMirrorPosX, textRadialMirrorPosY, textRadialMirrorPosZ, textRadialMirrorSlices, textRadialMirrorRadius;
|
||||||
private GuiCheckBox buttonRadialMirrorEnabled, buttonRadialMirrorAlternate;
|
private GuiCheckBoxFixed buttonRadialMirrorEnabled, buttonRadialMirrorAlternate;
|
||||||
private GuiIconButton buttonCurrentPosition, buttonToggleOdd, buttonDrawPlanes, buttonDrawLines;
|
private GuiIconButton buttonCurrentPosition, buttonToggleOdd, buttonDrawPlanes, buttonDrawLines;
|
||||||
private boolean drawPlanes, drawLines, toggleOdd;
|
private boolean drawPlanes, drawLines, toggleOdd;
|
||||||
|
|
||||||
@@ -46,7 +42,7 @@ public class RadialMirrorSettingsGui extends GuiCollapsibleScrollEntry {
|
|||||||
super.init(buttonList);
|
super.init(buttonList);
|
||||||
|
|
||||||
int y = top - 2;
|
int y = top - 2;
|
||||||
buttonRadialMirrorEnabled = new GuiCheckBox(left - 15 + 8, y, "", false) {
|
buttonRadialMirrorEnabled = new GuiCheckBoxFixed(left - 15 + 8, y, "", false) {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(double mouseX, double mouseY) {
|
public void onClick(double mouseX, double mouseY) {
|
||||||
super.onClick(mouseX, mouseY);
|
super.onClick(mouseX, mouseY);
|
||||||
@@ -131,7 +127,7 @@ public class RadialMirrorSettingsGui extends GuiCollapsibleScrollEntry {
|
|||||||
radialMirrorIconButtonList.add(buttonDrawPlanes);
|
radialMirrorIconButtonList.add(buttonDrawPlanes);
|
||||||
|
|
||||||
y = top + 76;
|
y = top + 76;
|
||||||
buttonRadialMirrorAlternate = new GuiCheckBox(left + 140, y, " Alternate", false);
|
buttonRadialMirrorAlternate = new GuiCheckBoxFixed(left + 140, y, " Alternate", false);
|
||||||
radialMirrorButtonList.add(buttonRadialMirrorAlternate);
|
radialMirrorButtonList.add(buttonRadialMirrorAlternate);
|
||||||
|
|
||||||
ModifierSettingsManager.ModifierSettings modifierSettings = ModifierSettingsManager.getModifierSettings(mc.player);
|
ModifierSettingsManager.ModifierSettings modifierSettings = ModifierSettingsManager.getModifierSettings(mc.player);
|
||||||
|
|||||||
@@ -0,0 +1,66 @@
|
|||||||
|
package nl.requios.effortlessbuilding.gui.elements;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.widget.button.Button;
|
||||||
|
import net.minecraftforge.fml.client.config.GuiUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class provides a checkbox style control.
|
||||||
|
*/
|
||||||
|
public class GuiCheckBoxFixed extends Button
|
||||||
|
{
|
||||||
|
private boolean isChecked;
|
||||||
|
private int boxWidth;
|
||||||
|
|
||||||
|
public GuiCheckBoxFixed(int xPos, int yPos, String displayString, boolean isChecked)
|
||||||
|
{
|
||||||
|
super(xPos, yPos, Minecraft.getInstance().fontRenderer.getStringWidth(displayString) + 2 + 11, 11, displayString, b -> {});
|
||||||
|
this.isChecked = isChecked;
|
||||||
|
this.boxWidth = 11;
|
||||||
|
this.height = 11;
|
||||||
|
this.width = this.boxWidth + 2 + Minecraft.getInstance().fontRenderer.getStringWidth(displayString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderButton(int mouseX, int mouseY, float partial)
|
||||||
|
{
|
||||||
|
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.blitOffset);
|
||||||
|
this.renderBg(mc, mouseX, mouseY);
|
||||||
|
int color = 14737632;
|
||||||
|
|
||||||
|
if (packedFGColor != 0)
|
||||||
|
{
|
||||||
|
color = packedFGColor;
|
||||||
|
}
|
||||||
|
else if (!this.active)
|
||||||
|
{
|
||||||
|
color = 10526880;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.isChecked)
|
||||||
|
this.drawCenteredString(mc.fontRenderer, "x", this.x + this.boxWidth / 2 + 1, this.y + 1, 14737632);
|
||||||
|
|
||||||
|
this.drawString(mc.fontRenderer, getMessage(), this.x + this.boxWidth + 2, this.y + 2, color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPress()
|
||||||
|
{
|
||||||
|
this.isChecked = !this.isChecked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isChecked()
|
||||||
|
{
|
||||||
|
return this.isChecked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsChecked(boolean isChecked)
|
||||||
|
{
|
||||||
|
this.isChecked = isChecked;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,8 @@ package nl.requios.effortlessbuilding.network;
|
|||||||
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.network.PacketBuffer;
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraft.util.math.BlockRayTraceResult;
|
||||||
|
import net.minecraft.util.math.RayTraceResult;
|
||||||
import net.minecraftforge.fml.LogicalSide;
|
import net.minecraftforge.fml.LogicalSide;
|
||||||
import net.minecraftforge.fml.network.NetworkEvent;
|
import net.minecraftforge.fml.network.NetworkEvent;
|
||||||
import nl.requios.effortlessbuilding.EffortlessBuilding;
|
import nl.requios.effortlessbuilding.EffortlessBuilding;
|
||||||
@@ -49,7 +51,11 @@ public class RequestLookAtMessage {
|
|||||||
|
|
||||||
//Prevent double placing in normal mode with placeStartPos false
|
//Prevent double placing in normal mode with placeStartPos false
|
||||||
//Unless QuickReplace is on, then we do need to place start pos.
|
//Unless QuickReplace is on, then we do need to place start pos.
|
||||||
PacketHandler.INSTANCE.sendToServer(new BlockPlacedMessage(ClientProxy.previousLookAt, message.getPlaceStartPos()));
|
if (ClientProxy.previousLookAt.getType() == RayTraceResult.Type.BLOCK) {
|
||||||
|
PacketHandler.INSTANCE.sendToServer(new BlockPlacedMessage((BlockRayTraceResult) ClientProxy.previousLookAt, message.getPlaceStartPos()));
|
||||||
|
} else {
|
||||||
|
PacketHandler.INSTANCE.sendToServer(new BlockPlacedMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ctx.get().setPacketHandled(true);
|
ctx.get().setPacketHandled(true);
|
||||||
|
|||||||
@@ -63,9 +63,6 @@ public class ClientProxy implements IProxy {
|
|||||||
|
|
||||||
public static int ticksInGame = 0;
|
public static int ticksInGame = 0;
|
||||||
|
|
||||||
private static final HashMap<BuildModes.BuildModeEnum, ResourceLocation> buildModeIcons = new HashMap<>();
|
|
||||||
private static final HashMap<ModeOptions.ActionEnum, ResourceLocation> modeOptionIcons = new HashMap<>();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setup(FMLCommonSetupEvent event) {}
|
public void setup(FMLCommonSetupEvent event) {}
|
||||||
|
|
||||||
@@ -105,32 +102,6 @@ public class ClientProxy implements IProxy {
|
|||||||
return (ctx.get().getDirection().getReceptionSide() == LogicalSide.CLIENT ? Minecraft.getInstance().player : ctx.get().getSender());
|
return (ctx.get().getDirection().getReceptionSide() == LogicalSide.CLIENT ? Minecraft.getInstance().player : ctx.get().getSender());
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
public static void onTextureStitch(final TextureStitchEvent.Pre event) {
|
|
||||||
//register icon textures
|
|
||||||
for ( final BuildModes.BuildModeEnum mode : BuildModes.BuildModeEnum.values() )
|
|
||||||
{
|
|
||||||
final ResourceLocation sprite = new ResourceLocation(EffortlessBuilding.MODID, "icons/" + mode.name().toLowerCase());
|
|
||||||
event.addSprite(sprite);
|
|
||||||
buildModeIcons.put(mode, sprite);
|
|
||||||
}
|
|
||||||
|
|
||||||
for ( final ModeOptions.ActionEnum action : ModeOptions.ActionEnum.values() )
|
|
||||||
{
|
|
||||||
final ResourceLocation sprite = new ResourceLocation(EffortlessBuilding.MODID, "icons/" + action.name().toLowerCase());
|
|
||||||
event.addSprite(sprite);
|
|
||||||
modeOptionIcons.put(action, sprite);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TextureAtlasSprite getBuildModeIcon(BuildModes.BuildModeEnum mode) {
|
|
||||||
return Minecraft.getInstance().getTextureMap().getSprite(buildModeIcons.get(mode));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TextureAtlasSprite getModeOptionIcon(ModeOptions.ActionEnum action) {
|
|
||||||
return Minecraft.getInstance().getTextureMap().getSprite(modeOptionIcons.get(action));
|
|
||||||
}
|
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onClientTick(TickEvent.ClientTickEvent event) {
|
public static void onClientTick(TickEvent.ClientTickEvent event) {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user