diff --git a/src/main/java/cam72cam/immersiverailroading/gui/AugmentFilterGUI.java b/src/main/java/cam72cam/immersiverailroading/gui/AugmentFilterGUI.java index e39248bd8..0319d39d7 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/AugmentFilterGUI.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/AugmentFilterGUI.java @@ -5,6 +5,7 @@ import cam72cam.mod.entity.Player; import cam72cam.mod.gui.helpers.GUIHelpers; import cam72cam.mod.gui.screen.*; +import cam72cam.mod.input.Keyboard; import cam72cam.mod.math.Vec3i; import cam72cam.mod.net.Packet; import cam72cam.mod.render.opengl.RenderState; @@ -73,23 +74,21 @@ public void init(IScreenBuilder screen) { Function, String> translate = e -> TextUtil.translate(e.toString()); - stockDetectorMode = new Button(screen, xtop + xOffset, ytop + yOffset, buttonWidth, buttonHeight, GuiText.SELECTOR_AUGMENT_DETECT + translate.apply(properties.stockDetectorMode)) { - @Override - public void onClick(Player.Hand hand) { - properties.stockDetectorMode = next(properties.stockDetectorMode, Player.Hand.PRIMARY); - stockDetectorMode.setText(GuiText.SELECTOR_AUGMENT_DETECT + translate.apply(properties.stockDetectorMode)); - } - }; + stockDetectorMode = new Button(screen, xtop + xOffset, ytop + yOffset, buttonWidth, buttonHeight, + GuiText.SELECTOR_AUGMENT_DETECT + translate.apply(properties.stockDetectorMode), + (hand, button) -> { + properties.stockDetectorMode = next(properties.stockDetectorMode, Player.Hand.PRIMARY); + button.setText(GuiText.SELECTOR_AUGMENT_DETECT + translate.apply(properties.stockDetectorMode)); + }); stockDetectorMode.setEnabled(this.augment == Augment.DETECTOR); yOffset += 25; - redstoneMode = new Button(screen, xtop + xOffset, ytop + yOffset, buttonWidth, buttonHeight, GuiText.SELECTOR_AUGMENT_REDSTONE + translate.apply(properties.redstoneMode)) { - @Override - public void onClick(Player.Hand hand) { - properties.redstoneMode = next(properties.redstoneMode, Player.Hand.PRIMARY); - redstoneMode.setText(GuiText.SELECTOR_AUGMENT_REDSTONE + translate.apply(properties.redstoneMode)); - } - }; + redstoneMode = new Button(screen, xtop + xOffset, ytop + yOffset, buttonWidth, buttonHeight, + GuiText.SELECTOR_AUGMENT_REDSTONE + translate.apply(properties.redstoneMode), + (hand, button) -> { + properties.redstoneMode = next(properties.redstoneMode, Player.Hand.PRIMARY); + button.setText(GuiText.SELECTOR_AUGMENT_REDSTONE + translate.apply(properties.redstoneMode)); + }); redstoneMode.setEnabled(this.augment == Augment.COUPLER || this.augment == Augment.ITEM_LOADER || this.augment == Augment.ITEM_UNLOADER @@ -97,13 +96,11 @@ public void onClick(Player.Hand hand) { || this.augment == Augment.FLUID_UNLOADER); yOffset += 25; - pushpull = new CheckBox(screen, xtop + xOffset, ytop + yOffset, GuiText.SELECTOR_AUGMENT_PUSHPULL.toString(), properties.pushpull) { - @Override - public void onClick(Player.Hand hand) { - properties.pushpull = !properties.pushpull; - pushpull.setChecked(properties.pushpull); - } - }; + pushpull = new CheckBox(screen, xtop + xOffset, ytop + yOffset, GuiText.SELECTOR_AUGMENT_PUSHPULL.toString(), properties.pushpull, + (hand, checkBox) -> { + properties.pushpull = !properties.pushpull; + checkBox.setChecked(properties.pushpull); + }); pushpull.setEnabled(this.augment == Augment.COUPLER || this.augment == Augment.ITEM_LOADER || this.augment == Augment.ITEM_UNLOADER @@ -111,29 +108,29 @@ public void onClick(Player.Hand hand) { || this.augment == Augment.FLUID_UNLOADER); yOffset += 15; - couplerMode = new Button(screen, xtop + xOffset, ytop + yOffset, buttonWidth, buttonHeight, GuiText.SELECTOR_AUGMENT_COUPLER + translate.apply(properties.couplerAugmentMode)) { - @Override - public void onClick(Player.Hand hand) { - properties.couplerAugmentMode = next(properties.couplerAugmentMode, Player.Hand.PRIMARY); - couplerMode.setText(GuiText.SELECTOR_AUGMENT_COUPLER + translate.apply(properties.couplerAugmentMode)); - } - }; + couplerMode = new Button(screen, xtop + xOffset, ytop + yOffset, buttonWidth, buttonHeight, + GuiText.SELECTOR_AUGMENT_COUPLER + translate.apply(properties.couplerAugmentMode), + (hand, button) -> { + properties.couplerAugmentMode = next(properties.couplerAugmentMode, Player.Hand.PRIMARY); + button.setText(GuiText.SELECTOR_AUGMENT_COUPLER + translate.apply(properties.couplerAugmentMode)); + }); couplerMode.setEnabled(this.augment == Augment.COUPLER); yOffset += 25; - locoControlMode = new Button(screen, xtop + xOffset, ytop + yOffset, buttonWidth, buttonHeight, GuiText.SELECTOR_AUGMENT_CONTROL + translate.apply(properties.locoControlMode)) { - @Override - public void onClick(Player.Hand hand) { - properties.locoControlMode = next(properties.locoControlMode, Player.Hand.PRIMARY); - locoControlMode.setText(GuiText.SELECTOR_AUGMENT_CONTROL + translate.apply(properties.locoControlMode)); - } - }; + locoControlMode = new Button(screen, xtop + xOffset, ytop + yOffset, buttonWidth, buttonHeight, + GuiText.SELECTOR_AUGMENT_CONTROL + translate.apply(properties.locoControlMode), + (hand, button) -> { + properties.locoControlMode = next(properties.locoControlMode, Player.Hand.PRIMARY); + button.setText(GuiText.SELECTOR_AUGMENT_CONTROL + translate.apply(properties.locoControlMode)); + }); locoControlMode.setEnabled(this.augment == Augment.LOCO_CONTROL); } @Override - public void onEnterKey(IScreenBuilder builder) { - builder.close(); + public void onKeyType(IScreenBuilder builder, Keyboard.KeyCode keyCode) { + if (keyCode == Keyboard.KeyCode.NUMPADENTER || keyCode == Keyboard.KeyCode.RETURN) { + builder.close(); + } } @Override diff --git a/src/main/java/cam72cam/immersiverailroading/gui/CastingGUI.java b/src/main/java/cam72cam/immersiverailroading/gui/CastingGUI.java index 34bd0faaf..05e327c31 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/CastingGUI.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/CastingGUI.java @@ -19,7 +19,9 @@ import cam72cam.mod.gui.screen.Button; import cam72cam.mod.gui.screen.IScreen; import cam72cam.mod.gui.screen.IScreenBuilder; +import cam72cam.mod.input.Keyboard; import cam72cam.mod.item.ItemStack; +import cam72cam.mod.render.opengl.RenderState; import cam72cam.mod.resource.Identifier; import java.util.Collections; @@ -58,67 +60,62 @@ private void updatePickerButton() { @Override public void init(IScreenBuilder screen) { - pickerButton = new Button(screen, -100, -20 - 10, GuiText.SELECTOR_TYPE.toString("")) { - @Override - public void onClick(Player.Hand hand) { - CraftPicker.showCraftPicker(screen, currentItem, CraftingType.CASTING, (ItemStack item) -> { - if (item != null) { - currentItem = item; - EntityRollingStockDefinition def = - currentItem.is(IRItems.ITEM_ROLLING_STOCK_COMPONENT) ? - new ItemRollingStockComponent.Data(currentItem).def : - new ItemRollingStock.Data(currentItem).def; - if (def != null && !gauge.isModel() && gauge.value() != def.recommended_gauge.value()) { - gauge = def.recommended_gauge; - gaugeButton.setText(GuiText.SELECTOR_GAUGE.toString(gauge)); - } - updatePickerButton(); - sendItemPacket(); - } - }); - } - }; + pickerButton = new Button(screen, -100, -20 - 10, GuiText.SELECTOR_TYPE.toString(""), + (hand, button) -> { + CraftPicker.showCraftPicker(screen, currentItem, CraftingType.CASTING, (ItemStack item) -> { + if (item != null) { + currentItem = item; + EntityRollingStockDefinition def = + currentItem.is(IRItems.ITEM_ROLLING_STOCK_COMPONENT) ? + new ItemRollingStockComponent.Data(currentItem).def : + new ItemRollingStock.Data(currentItem).def; + if (def != null && !gauge.isModel() && gauge.value() != def.recommended_gauge.value()) { + gauge = def.recommended_gauge; + gaugeButton.setText(GuiText.SELECTOR_GAUGE.toString(gauge)); + } + updatePickerButton(); + sendItemPacket(); + } + }); + }); updatePickerButton(); - gaugeButton = new Button(screen, 0, -10, 100, 20, GuiText.SELECTOR_GAUGE.toString(gauge)) { - @Override - public void onClick(Player.Hand hand) { - if(!currentItem.isEmpty()) { - EntityRollingStockDefinition def = new ItemRollingStockComponent.Data(currentItem).def; - if (def != null && ConfigBalance.DesignGaugeLock) { - List validGauges = Collections.singletonList(Gauge.from(def.recommended_gauge.value())); - gauge = next(validGauges, gauge, hand); - } else { - gauge = next(Gauge.values(), gauge, hand); - } - } - gaugeButton.setText(GuiText.SELECTOR_GAUGE.toString(gauge)); - sendItemPacket(); - } - }; - singleCastButton = new Button(screen, 0, +20 - 10, 100, 20, GuiText.SELECTOR_CAST_SINGLE.toString()) { - @Override - public void onClick(Player.Hand hand) { - if (tile.getCraftMode() != CraftingMachineMode.SINGLE) { - tile.setCraftMode(CraftingMachineMode.SINGLE); - } else { - tile.setCraftMode(CraftingMachineMode.STOPPED); - } - } + gaugeButton = new Button(screen, 0, -10, 100, 20, GuiText.SELECTOR_GAUGE.toString(gauge), + (hand, button) -> { + if(!currentItem.isEmpty()) { + EntityRollingStockDefinition def = new ItemRollingStockComponent.Data(currentItem).def; + if (def != null && ConfigBalance.DesignGaugeLock) { + List validGauges = Collections.singletonList(Gauge.from(def.recommended_gauge.value())); + gauge = next(validGauges, gauge, hand); + } else { + gauge = next(Gauge.values(), gauge, hand); + } + } + gaugeButton.setText(GuiText.SELECTOR_GAUGE.toString(gauge)); + sendItemPacket(); + }); + singleCastButton = new Button(screen, 0, +20 - 10, 100, 20, GuiText.SELECTOR_CAST_SINGLE.toString(), + (hand, button) -> { + if (tile.getCraftMode() != CraftingMachineMode.SINGLE) { + tile.setCraftMode(CraftingMachineMode.SINGLE); + } else { + tile.setCraftMode(CraftingMachineMode.STOPPED); + } + }) { @Override public void onUpdate() { singleCastButton.setTextColor(tile.getCraftMode() == CraftingMachineMode.SINGLE ? 0xcc4334 : 0); } }; - repeatCastButton = new Button(screen, 0, +40 - 10, 100, 20, GuiText.SELECTOR_CAST_REPEAT.toString()) { - @Override - public void onClick(Player.Hand hand) { - if (tile.getCraftMode() != CraftingMachineMode.REPEAT) { - tile.setCraftMode(CraftingMachineMode.REPEAT); - } else { - tile.setCraftMode(CraftingMachineMode.STOPPED); - } - } + + repeatCastButton = new Button(screen, 0, +40 - 10, 100, 20, GuiText.SELECTOR_CAST_REPEAT.toString(), + (hand, button) -> { + if (tile.getCraftMode() != CraftingMachineMode.REPEAT) { + tile.setCraftMode(CraftingMachineMode.REPEAT); + } else { + tile.setCraftMode(CraftingMachineMode.STOPPED); + } + }) { @Override public void onUpdate() { repeatCastButton.setTextColor(tile.getCraftMode() == CraftingMachineMode.REPEAT ? 0xcc4334 : 0); @@ -126,17 +123,16 @@ public void onUpdate() { }; } - @Override - public void onEnterKey(IScreenBuilder b) { - } + @Override + public void onKeyType(IScreenBuilder builder, Keyboard.KeyCode keyCode) { + } - @Override + @Override public void onClose() { - } @Override - public void draw(IScreenBuilder builder) { + public void draw(IScreenBuilder builder, RenderState state) { double fluidPercent = ((CastingInstance) tile.getMultiblock()).getSteelLevel(); int progress = this.tile.getCraftProgress(); float cost; diff --git a/src/main/java/cam72cam/immersiverailroading/gui/PaintBrushPicker.java b/src/main/java/cam72cam/immersiverailroading/gui/PaintBrushPicker.java index ad28534d3..9d982b776 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/PaintBrushPicker.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/PaintBrushPicker.java @@ -10,9 +10,9 @@ import cam72cam.immersiverailroading.model.StockModel; import cam72cam.mod.MinecraftClient; import cam72cam.mod.entity.Entity; -import cam72cam.mod.entity.Player; import cam72cam.mod.gui.helpers.GUIHelpers; import cam72cam.mod.gui.screen.*; +import cam72cam.mod.input.Keyboard; import cam72cam.mod.render.opengl.RenderState; import util.Matrix4; @@ -47,57 +47,42 @@ public void init(IScreenBuilder screen) { int width = 200; int height = 20; - new ListSelector(screen, 0, width, height, variant, - stock.getDefinition().textureNames.entrySet().stream() - .collect(Collectors.toMap( - Map.Entry::getValue, Map.Entry::getKey, - (u, v) -> u, LinkedHashMap::new)) - ) { - @Override - public void onClick(String option) { - variant = option; - } - }.setVisible(true); + new ListSelector<>(screen, 0, width, height, variant, + stock.getDefinition().textureNames.entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey, (u, v) -> u, LinkedHashMap::new)), + (sel, val) -> variant = val + ).setVisible(true); Slider zoom_slider = new Slider(screen, xtop + width, (int) (GUIHelpers.getScreenHeight()*0.75 - height), - GuiText.SLIDER_ZOOM.toString(), 0.1, 2, 1, true) { - @Override - public void onSlider() { - zoom = this.getValue(); - } - }; + GuiText.SLIDER_ZOOM.toString(), 0.1, 2, 1, true, + slider -> zoom = slider.getValue()); width = 100; Button random = new Button(screen, GUIHelpers.getScreenWidth() / 2 - width, ytop, width, height, - GuiText.SELECTOR_PAINTBRUSH_RANDOM.toString()) { - @Override - public void onClick(Player.Hand hand) { - variant = ItemPaintBrush.nextRandomTexture(stock, variant); - } - }; + GuiText.SELECTOR_PAINTBRUSH_RANDOM.toString(), + (hand, button) -> variant = ItemPaintBrush.nextRandomTexture(stock, variant)); Button apply = new Button(screen, GUIHelpers.getScreenWidth() / 2 - width, (int) (GUIHelpers.getScreenHeight()*0.75 - height*2), - width, height, GuiText.SELECTOR_PAINTBRUSH_TO_STOCK.toString()) { - @Override - public void onClick(Player.Hand hand) { - new ItemPaintBrush.PaintBrushPacket(stock, PaintBrushMode.GUI, variant, false).sendToServer(); - screen.close(); - } - }; + width, height, GuiText.SELECTOR_PAINTBRUSH_TO_STOCK.toString(), + (hand, button) -> { + new ItemPaintBrush.PaintBrushPacket(stock, PaintBrushMode.GUI, variant, false).sendToServer(); + screen.close(); + }); + Button apply_connected = new Button(screen, GUIHelpers.getScreenWidth() / 2 - width, (int) (GUIHelpers.getScreenHeight()*0.75 - height), - width, height, GuiText.SELECTOR_PAINTBRUSH_TO_TRAIN.toString()) { - @Override - public void onClick(Player.Hand hand) { - new ItemPaintBrush.PaintBrushPacket(stock, PaintBrushMode.GUI, variant, true).sendToServer(); - screen.close(); - } - }; + width, height, GuiText.SELECTOR_PAINTBRUSH_TO_TRAIN.toString(), + (hand, button) -> { + new ItemPaintBrush.PaintBrushPacket(stock, PaintBrushMode.GUI, variant, true).sendToServer(); + screen.close(); + }); } @Override - public void onEnterKey(IScreenBuilder builder) { - new ItemPaintBrush.PaintBrushPacket(stock, PaintBrushMode.GUI, variant, false).sendToServer(); - builder.close(); + public void onKeyType(IScreenBuilder builder, Keyboard.KeyCode keyCode) { + if (keyCode == Keyboard.KeyCode.NUMPADENTER || keyCode == Keyboard.KeyCode.RETURN) { + new ItemPaintBrush.PaintBrushPacket(stock, PaintBrushMode.GUI, variant, false).sendToServer(); + builder.close(); + } } @Override diff --git a/src/main/java/cam72cam/immersiverailroading/gui/PlateRollerGUI.java b/src/main/java/cam72cam/immersiverailroading/gui/PlateRollerGUI.java index fcaedaf05..b4efb3384 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/PlateRollerGUI.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/PlateRollerGUI.java @@ -15,7 +15,9 @@ import cam72cam.mod.gui.screen.Button; import cam72cam.mod.gui.screen.IScreen; import cam72cam.mod.gui.screen.IScreenBuilder; +import cam72cam.mod.input.Keyboard; import cam72cam.mod.item.ItemStack; +import cam72cam.mod.render.opengl.RenderState; import java.util.Collections; import java.util.List; @@ -51,59 +53,57 @@ private void updatePickerButton() { @Override public void init(IScreenBuilder screen) { - gaugeButton = new Button(screen, 0 - 100, -24 + 0 * 30, GuiText.SELECTOR_GAUGE.toString(gauge)) { - @Override - public void onClick(Player.Hand hand) { - if(!currentItem.isEmpty()) { - EntityRollingStockDefinition def = new ItemPlate.Data(currentItem).def; - if (def != null && ConfigBalance.DesignGaugeLock) { - List validGauges = Collections.singletonList(Gauge.from(def.recommended_gauge.value())); - gauge = next(validGauges, gauge, hand); - } else { - gauge = next(Gauge.values(), gauge, hand); - } - } - gaugeButton.setText(GuiText.SELECTOR_GAUGE.toString(gauge)); - sendPacket(); - } - }; - - pickerButton = new Button(screen, 0 - 100, -24 + 2 * 30, "") { - @Override - public void onClick(Player.Hand hand) { - CraftPicker.showCraftPicker(screen, null, CraftingType.PLATE_BOILER, (ItemStack item) -> { - if (item != null) { - if (item.is(IRItems.ITEM_ROLLING_STOCK)) { - ItemRollingStock.Data stock = new ItemRollingStock.Data(item); - item = new ItemStack(IRItems.ITEM_PLATE, 1); - ItemPlate.Data data = new ItemPlate.Data(item); - data.def = stock.def; - data.gauge = gauge; - data.type = PlateType.BOILER; - data.write(); - } - - ItemPlate.Data data = new ItemPlate.Data(item); - EntityRollingStockDefinition def = data.def; - if (def != null && !gauge.isModel() && gauge.value() != def.recommended_gauge.value()) { - gauge = def.recommended_gauge; - gaugeButton.setText(GuiText.SELECTOR_GAUGE.toString(gauge)); - } - currentItem = item; - updatePickerButton(); - sendPacket(); - } - }); - } - }; + gaugeButton = new Button(screen, 0 - 100, -24 + 0 * 30, GuiText.SELECTOR_GAUGE.toString(gauge), + (hand, button) -> { + if(!currentItem.isEmpty()) { + EntityRollingStockDefinition def = new ItemPlate.Data(currentItem).def; + if (def != null && ConfigBalance.DesignGaugeLock) { + List validGauges = Collections.singletonList(Gauge.from(def.recommended_gauge.value())); + gauge = next(validGauges, gauge, hand); + } else { + gauge = next(Gauge.values(), gauge, hand); + } + } + gaugeButton.setText(GuiText.SELECTOR_GAUGE.toString(gauge)); + sendPacket(); + }); + + pickerButton = new Button(screen, 0 - 100, -24 + 2 * 30, "", + (hand, button) -> { + CraftPicker.showCraftPicker(screen, null, CraftingType.PLATE_BOILER, (ItemStack item) -> { + if (item != null) { + if (item.is(IRItems.ITEM_ROLLING_STOCK)) { + ItemRollingStock.Data stock = new ItemRollingStock.Data(item); + item = new ItemStack(IRItems.ITEM_PLATE, 1); + ItemPlate.Data data = new ItemPlate.Data(item); + data.def = stock.def; + data.gauge = gauge; + data.type = PlateType.BOILER; + data.write(); + } + + ItemPlate.Data data = new ItemPlate.Data(item); + EntityRollingStockDefinition def = data.def; + if (def != null && !gauge.isModel() && gauge.value() != def.recommended_gauge.value()) { + gauge = def.recommended_gauge; + gaugeButton.setText(GuiText.SELECTOR_GAUGE.toString(gauge)); + } + currentItem = item; + updatePickerButton(); + sendPacket(); + } + }); + }); updatePickerButton(); } - @Override - public void onEnterKey(IScreenBuilder builder) { - sendPacket(); - builder.close(); - } + @Override + public void onKeyType(IScreenBuilder builder, Keyboard.KeyCode keyCode) { + if (keyCode == Keyboard.KeyCode.NUMPADENTER || keyCode == Keyboard.KeyCode.RETURN) { + sendPacket(); + builder.close(); + } + } @Override public void onClose() { @@ -111,7 +111,7 @@ public void onClose() { } @Override - public void draw(IScreenBuilder builder) { + public void draw(IScreenBuilder builder, RenderState state) { } diff --git a/src/main/java/cam72cam/immersiverailroading/gui/TrackExchangerGui.java b/src/main/java/cam72cam/immersiverailroading/gui/TrackExchangerGui.java index 364b8b02d..6a853f3e3 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/TrackExchangerGui.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/TrackExchangerGui.java @@ -14,8 +14,9 @@ import cam72cam.mod.gui.screen.Button; import cam72cam.mod.gui.screen.IScreen; import cam72cam.mod.gui.screen.IScreenBuilder; +import cam72cam.mod.input.Keyboard; import cam72cam.mod.item.ItemStack; -import util.Matrix4; +import cam72cam.mod.render.opengl.RenderState; import java.util.ArrayList; import java.util.List; @@ -49,40 +50,36 @@ public TrackExchangerGui () { @Override public void init(IScreenBuilder screen) { - trackSelector = new Button(screen, -100, 1 * 22, GuiText.SELECTOR_TRACK.toString(DefinitionManager.getTrack(this.track).name)) { - @Override - public void onClick(Player.Hand hand) { - track = next(DefinitionManager.getTrackIDs(), track, hand); - trackSelector.setText(GuiText.SELECTOR_TRACK.toString(DefinitionManager.getTrack(track).name)); - } - }; - bedTypeButton = new Button(screen, -100, 2 * 22, GuiText.SELECTOR_RAIL_BED.toString(getStackName(railBed))) { - @Override - public void onClick(Player.Hand hand) { - ItemPickerGUI ip = new ItemPickerGUI(oreDict, (ItemStack bed) -> { - if (bed != null) { - TrackExchangerGui.this.railBed = bed; - bedTypeButton.setText(GuiText.SELECTOR_RAIL_BED.toString(getStackName(bed))); - } - screen.show(); - }); - ip.choosenItem = railBed; - ip.show(); - } - }; - gaugeButton = new Button(screen, -100, 3 * 22, GuiText.SELECTOR_GAUGE.toString(gauge)) { - @Override - public void onClick(Player.Hand hand) { - gauge = next(Gauge.values(), gauge, hand); - gaugeButton.setText(GuiText.SELECTOR_GAUGE.toString(gauge)); - } - }; + trackSelector = new Button(screen, -100, 1 * 22, GuiText.SELECTOR_TRACK.toString(DefinitionManager.getTrack(this.track).name), + (hand, button) -> { + track = next(DefinitionManager.getTrackIDs(), track, hand); + button.setText(GuiText.SELECTOR_TRACK.toString(DefinitionManager.getTrack(track).name)); + }); + bedTypeButton = new Button(screen, -100, 2 * 22, GuiText.SELECTOR_RAIL_BED.toString(getStackName(railBed)), + ((hand, button) -> { + ItemPickerGUI ip = new ItemPickerGUI(oreDict, (ItemStack bed) -> { + if (bed != null) { + TrackExchangerGui.this.railBed = bed; + button.setText(GuiText.SELECTOR_RAIL_BED.toString(getStackName(bed))); + } + screen.show(); + }); + ip.choosenItem = railBed; + ip.show(); + })); + gaugeButton = new Button(screen, -100, 3 * 22, GuiText.SELECTOR_GAUGE.toString(gauge), + (hand, button) -> { + gauge = next(Gauge.values(), gauge, hand); + button.setText(GuiText.SELECTOR_GAUGE.toString(gauge)); + }); } - @Override - public void onEnterKey(IScreenBuilder builder) { - builder.close(); - } + @Override + public void onKeyType(IScreenBuilder builder, Keyboard.KeyCode keyCode) { + if (keyCode == Keyboard.KeyCode.NUMPADENTER || keyCode == Keyboard.KeyCode.RETURN) { + builder.close(); + } + } @Override public void onClose() { @@ -90,7 +87,7 @@ public void onClose() { } @Override - public void draw(IScreenBuilder builder) { + public void draw(IScreenBuilder builder, RenderState state) { int scale = 8; // This could be more efficient... RailSettings settings = new RailSettings(gauge, @@ -111,14 +108,13 @@ public void draw(IScreenBuilder builder) { ItemStack stack = new ItemStack(IRItems.ITEM_TRACK_BLUEPRINT, 1); settings.write(stack); - Matrix4 matrix = new Matrix4(); - matrix.translate(GUIHelpers.getScreenWidth() / 2 + builder.getWidth() / 4, builder.getHeight() / 4, 0); - matrix.scale(scale, scale, 1); - GUIHelpers.drawItem(stack, 0, 0, matrix); + state.translate(GUIHelpers.getScreenWidth() / 2 + builder.getWidth() / 4, builder.getHeight() / 4, 0); + state.scale(scale, scale, 1); + GUIHelpers.drawItem(stack, 0, 0, state.model_view()); - matrix.setIdentity(); - matrix.translate(GUIHelpers.getScreenWidth() / 2 - builder.getWidth() / 4, builder.getHeight() / 4, 0); - matrix.scale(-scale, scale, 1); - GUIHelpers.drawItem(stack, 0, 0, matrix); + state.model_view().setIdentity(); + state.translate(GUIHelpers.getScreenWidth() / 2 - builder.getWidth() / 4, builder.getHeight() / 4, 0); + state.scale(-scale, scale, 1); + GUIHelpers.drawItem(stack, 0, 0, state.model_view()); } } diff --git a/src/main/java/cam72cam/immersiverailroading/gui/TrackGui.java b/src/main/java/cam72cam/immersiverailroading/gui/TrackGui.java index 44e216545..072f93bc7 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/TrackGui.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/TrackGui.java @@ -21,6 +21,7 @@ import cam72cam.mod.entity.Player; import cam72cam.mod.gui.helpers.GUIHelpers; import cam72cam.mod.gui.screen.*; +import cam72cam.mod.input.Keyboard; import cam72cam.mod.item.ItemStack; import cam72cam.mod.math.Vec3d; import cam72cam.mod.math.Vec3i; @@ -139,124 +140,95 @@ public void init(IScreenBuilder screen) { // }); ytop += height; - gaugeSelector = new ListSelector(screen, width, 100, height, settings.gauge, - Gauge.values().stream().collect(Collectors.toMap(Gauge::toString, g -> g, (u, v) -> u, LinkedHashMap::new)) - ) { - @Override - public void onClick(Gauge gauge) { - settings.gauge = gauge; - gaugeButton.setText(GuiText.SELECTOR_GAUGE.toString(settings.gauge)); - if (settings.type.isTable()) { - int max = settings.type == TrackItems.TURNTABLE - ? BuilderTurnTable.maxLength(settings.gauge) - : BuilderTransferTable.maxLength(settings.gauge); - - lengthInput.setText("" + Math.min(Integer.parseInt(lengthInput.getText()), max)); // revalidate -// lengthInput.setValue(Math.min((int)lengthInput.getValue(), max)); // revalidate - } - } - }; - gaugeButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_GAUGE.toString(settings.gauge)) { - @Override - public void onClick(Player.Hand hand) { - showSelector(gaugeSelector); - } - }; + gaugeSelector = new ListSelector<>(screen, width, 100, height, settings.gauge, + Gauge.values().stream().collect(Collectors.toMap(Gauge::toString, g -> g, (u, v) -> u, LinkedHashMap::new)), + (sel, option) -> { + settings.gauge = option; + gaugeButton.setText(GuiText.SELECTOR_GAUGE.toString(settings.gauge)); + if (settings.type.isTable()) { + int max = settings.type == TrackItems.TURNTABLE + ? BuilderTurnTable.maxLength(settings.gauge) + : BuilderTransferTable.maxLength(settings.gauge); + lengthInput.setText("" + Math.min(Integer.parseInt(lengthInput.getText()), max)); // revalidate +// lengthInput.setValue(Math.min((int)lengthInput.getValue(), max)); // revalidate + } + } + ); + gaugeButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_GAUGE.toString(settings.gauge), + (hand, button) -> showSelector(gaugeSelector)); ytop += height; - typeSelector = new ListSelector(screen, width, 100, height, settings.type, + typeSelector = new ListSelector<>(screen, width, 100, height, settings.type, Arrays.stream(TrackItems.values()) .filter(i -> i != TrackItems.CROSSING) .sorted(Comparator.comparingInt(TrackItems::getOrder)) - .collect(Collectors.toMap(TrackItems::toString, g -> g, (u, v) -> u, LinkedHashMap::new)) - ) { - @Override - public void onClick(TrackItems option) { - settings.type = option; - typeButton.setText(GuiText.SELECTOR_TYPE.toString(settings.type)); - degreesSlider.setVisible(settings.type.hasQuarters()); - curvositySlider.setVisible(settings.type.hasCurvosity()); - smoothingButton.setVisible(settings.type.hasSmoothing()); - directionButton.setVisible(settings.type.hasDirection()); - if (settings.type.isTable()) { - int max = settings.type == TrackItems.TURNTABLE - ? BuilderTurnTable.maxLength(settings.gauge) - : BuilderTransferTable.maxLength(settings.gauge); - lengthInput.setText("" + Math.min(Integer.parseInt(lengthInput.getText()), max)); // revalidate -// lengthInput.setValue(Math.min((int) lengthInput.getValue(), max)); // revalidate - } - transfertableEntryCountSlider.setVisible(settings.type == TrackItems.TRANSFERTABLE); - transfertableEntrySpacingSlider.setVisible(settings.type == TrackItems.TRANSFERTABLE); - } - }; - typeButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_TYPE.toString(settings.type)) { - @Override - public void onClick(Player.Hand hand) { - showSelector(typeSelector); - } - }; + .collect(Collectors.toMap(TrackItems::toString, g -> g, (u, v) -> u, LinkedHashMap::new)), + (sel, option) -> { + settings.type = option; + typeButton.setText(GuiText.SELECTOR_TYPE.toString(settings.type)); + degreesSlider.setVisible(settings.type.hasQuarters()); + curvositySlider.setVisible(settings.type.hasCurvosity()); + smoothingButton.setVisible(settings.type.hasSmoothing()); + directionButton.setVisible(settings.type.hasDirection()); + if (settings.type.isTable()) { + int max = settings.type == TrackItems.TURNTABLE + ? BuilderTurnTable.maxLength(settings.gauge) + : BuilderTransferTable.maxLength(settings.gauge); + lengthInput.setText("" + Math.min(Integer.parseInt(lengthInput.getText()), max)); // revalidate +// lengthInput.setValue(Math.min((int) lengthInput.getValue(), max)); // revalidate + } + transfertableEntryCountSlider.setVisible(settings.type == TrackItems.TRANSFERTABLE); + transfertableEntrySpacingSlider.setVisible(settings.type == TrackItems.TRANSFERTABLE); + } + ); + typeButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_TYPE.toString(settings.type), + (hand, button) -> showSelector(typeSelector)); ytop += height; //Transfer table doesn't have these property so we can have them overlapped - smoothingButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_SMOOTHING.toString(settings.smoothing)) { - @Override - public void onClick(Player.Hand hand) { - settings.smoothing = next(settings.smoothing, hand); - smoothingButton.setText(GuiText.SELECTOR_SMOOTHING.toString(settings.smoothing)); - } - }; + smoothingButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_SMOOTHING.toString(settings.smoothing), + (hand, button) -> { + settings.smoothing = next(settings.smoothing, hand); + button.setText(GuiText.SELECTOR_SMOOTHING.toString(settings.smoothing)); + }); smoothingButton.setVisible(settings.type.hasSmoothing()); - transfertableEntryCountSlider = new Slider(screen, 25+xtop, ytop, "", 1, 71, settings.transfertableEntryCount, false) { - @Override - public void onSlider() { - settings.transfertableEntryCount = (int) this.getValue(); - transfertableEntryCountSlider.setText( - GuiText.SELECTOR_TRANSFER_TABLE_ENTRY_COUNT.toString((int) transfertableEntryCountSlider.getValue())); - } - }; + transfertableEntryCountSlider = new Slider(screen, 25+xtop, ytop, "", 1, 71, settings.transfertableEntryCount, false, + slider -> { + settings.transfertableEntryCount = (int) slider.getValue(); + slider.setText(GuiText.SELECTOR_TRANSFER_TABLE_ENTRY_COUNT.toString((int) slider.getValue())); + }); transfertableEntryCountSlider.onSlider(); ytop += height; - directionButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_DIRECTION.toString(settings.direction)) { - @Override - public void onClick(Player.Hand hand) { - settings.direction = next(settings.direction, hand); - directionButton.setText(GuiText.SELECTOR_DIRECTION.toString(settings.direction)); - } - }; + directionButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_DIRECTION.toString(settings.direction), + (hand, button) -> { + settings.direction = next(settings.direction, hand); + button.setText(GuiText.SELECTOR_DIRECTION.toString(settings.direction)); + }); directionButton.setVisible(settings.type.hasDirection()); - transfertableEntrySpacingSlider = new Slider(screen, 25+xtop, ytop, "", 1, 15, settings.transfertableEntrySpacing, false) { - @Override - public void onSlider() { - settings.transfertableEntrySpacing = (int) this.getValue(); - transfertableEntrySpacingSlider.setText( - GuiText.SELECTOR_TRANSFER_TABLE_ENTRY_SPACING.toString((int) transfertableEntrySpacingSlider.getValue())); - } - }; + transfertableEntrySpacingSlider = new Slider(screen, 25+xtop, ytop, "", 1, 15, settings.transfertableEntrySpacing, false, + slider -> { + settings.transfertableEntrySpacing = (int) slider.getValue(); + slider.setText(GuiText.SELECTOR_TRANSFER_TABLE_ENTRY_SPACING.toString((int) slider.getValue())); + }); transfertableEntrySpacingSlider.onSlider(); ytop += height; - - this.degreesSlider = new Slider(screen, 25+xtop, ytop, "", 1, Config.ConfigBalance.AnglePlacementSegmentation, settings.degrees / 90 * Config.ConfigBalance.AnglePlacementSegmentation, false) { - @Override - public void onSlider() { - settings.degrees = degreesSlider.getValueInt() * (90F/Config.ConfigBalance.AnglePlacementSegmentation); - degreesSlider.setText(GuiText.SELECTOR_QUARTERS.toString(this.getValueInt() * (90.0/Config.ConfigBalance.AnglePlacementSegmentation))); - } - }; + this.degreesSlider = new Slider(screen, 25+xtop, ytop, "", 1, Config.ConfigBalance.AnglePlacementSegmentation, settings.degrees / 90 * Config.ConfigBalance.AnglePlacementSegmentation, false, + slider -> { + settings.degrees = slider.getValueInt() * (90F/Config.ConfigBalance.AnglePlacementSegmentation); + slider.setText(GuiText.SELECTOR_QUARTERS.toString(slider.getValueInt() * (90.0/Config.ConfigBalance.AnglePlacementSegmentation))); + }); degreesSlider.onSlider(); ytop += height; - - this.curvositySlider = new Slider(screen, 25+xtop, ytop, "", 0.25, 1.5, settings.curvosity, true) { - @Override - public void onSlider() { - settings.curvosity = (float) this.getValue(); - curvositySlider.setText(GuiText.SELECTOR_CURVOSITY.toString(String.format("%.2f", settings.curvosity))); - } - }; + this.curvositySlider = new Slider(screen, 25+xtop, ytop, "", 0.25, 1.5, settings.curvosity, true, + slider -> { + settings.curvosity = (float) slider.getValue(); + slider.setText(GuiText.SELECTOR_CURVOSITY.toString(String.format("%.2f", settings.curvosity))); + }); curvositySlider.onSlider(); ytop += height; @@ -276,89 +248,55 @@ public void onSlider() { //ytop = -GUIHelpers.getScreenHeight() / 4; ytop = (int) (GUIHelpers.getScreenHeight() * 0.75 - height * 5); - trackSelector = new ListSelector(screen, width, 250, height, + trackSelector = new ListSelector<>(screen, width, 250, height, DefinitionManager.getTrack(settings.track), - DefinitionManager.getTracks().stream().collect(Collectors.toMap(t -> t.name, g -> g, (u, v) -> u, LinkedHashMap::new))) { - @Override - public void onClick(TrackDefinition track) { - settings.track = track.trackID; - trackButton.setText(GuiText.SELECTOR_TRACK.toString(fitString(DefinitionManager.getTrack(settings.track).name, 24))); - } - }; - trackButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_TRACK.toString(fitString(DefinitionManager.getTrack(settings.track).name, 24))) { - @Override - public void onClick(Player.Hand hand) { - showSelector(trackSelector); - } - }; + DefinitionManager.getTracks().stream().collect(Collectors.toMap(t -> t.name, g -> g, (u, v) -> u, LinkedHashMap::new)), + (sel, option) -> { + settings.track = option.trackID; + trackButton.setText(GuiText.SELECTOR_TRACK.toString(fitString(DefinitionManager.getTrack(settings.track).name, 24))); + }); + trackButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_TRACK.toString(fitString(DefinitionManager.getTrack(settings.track).name, 24)), + (hand, button) -> showSelector(trackSelector)); ytop += height; - railBedSelector = new ListSelector(screen, width, 250, height, settings.railBed, - oreDict.stream().collect(Collectors.toMap(TrackGui::getStackName, g -> g, (u, v) -> u, LinkedHashMap::new)) - ) { - @Override - public void onClick(ItemStack option) { - settings.railBed = option; - bedTypeButton.setText(GuiText.SELECTOR_RAIL_BED.toString(getStackName(settings.railBed))); - } - }; - bedTypeButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_RAIL_BED.toString(getStackName(settings.railBed))) { - @Override - public void onClick(Player.Hand hand) { - showSelector(railBedSelector); - } - }; + railBedSelector = new ListSelector<>(screen, width, 250, height, settings.railBed, + oreDict.stream().collect(Collectors.toMap(TrackGui::getStackName, g -> g, (u, v) -> u, LinkedHashMap::new)), + (sel, option) -> { + settings.railBed = option; + bedTypeButton.setText(GuiText.SELECTOR_RAIL_BED.toString(getStackName(settings.railBed))); + }); + bedTypeButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_RAIL_BED.toString(getStackName(settings.railBed)), + (hand, button) -> showSelector(railBedSelector)); ytop += height; - railBedFillSelector = new ListSelector(screen, width, 250, height, settings.railBedFill, - oreDict.stream().collect(Collectors.toMap(TrackGui::getStackName, g -> g, (u, v) -> u, LinkedHashMap::new)) - ) { - @Override - public void onClick(ItemStack option) { - settings.railBedFill = option; - bedFillButton.setText(GuiText.SELECTOR_RAIL_BED_FILL.toString(getStackName(settings.railBedFill))); - } - }; - bedFillButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_RAIL_BED_FILL.toString(getStackName(settings.railBedFill))) { - @Override - public void onClick(Player.Hand hand) { - showSelector(railBedFillSelector); - } - }; + railBedFillSelector = new ListSelector<>(screen, width, 250, height, settings.railBedFill, + oreDict.stream().collect(Collectors.toMap(TrackGui::getStackName, g -> g, (u, v) -> u, LinkedHashMap::new)), + (sel, option) -> { + settings.railBedFill = option; + bedFillButton.setText(GuiText.SELECTOR_RAIL_BED_FILL.toString(getStackName(settings.railBedFill))); + }); + bedFillButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_RAIL_BED_FILL.toString(getStackName(settings.railBedFill)), + (hand, button) -> showSelector(railBedFillSelector)); ytop += height; - posTypeButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_POSITION.toString(settings.posType)) { - @Override - public void onClick(Player.Hand hand) { - settings.posType = next(settings.posType, hand); - posTypeButton.setText(GuiText.SELECTOR_POSITION.toString(settings.posType)); - } - }; + posTypeButton = new Button(screen, xtop, ytop, width, height, GuiText.SELECTOR_POSITION.toString(settings.posType), + (hand, button) -> { + settings.posType = next(settings.posType, hand); + posTypeButton.setText(GuiText.SELECTOR_POSITION.toString(settings.posType)); + }); ytop += height; - isPreviewCB = new CheckBox(screen, xtop+2, ytop+2, GuiText.SELECTOR_PLACE_BLUEPRINT.toString(), settings.isPreview) { - @Override - public void onClick(Player.Hand hand) { - settings.isPreview = isPreviewCB.isChecked(); - } - }; + isPreviewCB = new CheckBox(screen, xtop+2, ytop+2, GuiText.SELECTOR_PLACE_BLUEPRINT.toString(), settings.isPreview, + (hand, checkBox) -> settings.isPreview = checkBox.isChecked()); // ytop += height; - isGradeCrossingCB = new CheckBox(screen, xtop+102, ytop+2, GuiText.SELECTOR_GRADE_CROSSING.toString(), settings.isGradeCrossing) { - @Override - public void onClick(Player.Hand hand) { - settings.isGradeCrossing = isGradeCrossingCB.isChecked(); - } - }; + isGradeCrossingCB = new CheckBox(screen, xtop+102, ytop+2, GuiText.SELECTOR_GRADE_CROSSING.toString(), settings.isGradeCrossing, + (hand, checkBox) -> settings.isGradeCrossing = checkBox.isChecked()); ytop += height; Slider zoom_slider = new Slider(screen, GUIHelpers.getScreenWidth() / 2 - 150, (int) (GUIHelpers.getScreenHeight()*0.75 - height), - GuiText.SLIDER_ZOOM.toString(), 0.1, 2, 1, true) { - @Override - public void onSlider() { - zoom = this.getValue(); - } - }; + GuiText.SLIDER_ZOOM.toString(), 0.1, 2, 1, true, + slider -> zoom = slider.getValue()); } private void showSelector(ListSelector selector) { @@ -373,12 +311,14 @@ private void showSelector(ListSelector selector) { selector.setVisible(!isVisible); } - @Override - public void onEnterKey(IScreenBuilder builder) { - builder.close(); - } + @Override + public void onKeyType(IScreenBuilder builder, Keyboard.KeyCode keyCode) { + if (keyCode == Keyboard.KeyCode.NUMPADENTER || keyCode == Keyboard.KeyCode.RETURN) { + IScreen.super.onKeyType(builder, keyCode); + } + } - @Override + @Override public void onClose() { if (!this.lengthInput.getText().isEmpty()) { if (this.te != null) { diff --git a/src/main/java/cam72cam/immersiverailroading/gui/components/ListSelector.java b/src/main/java/cam72cam/immersiverailroading/gui/components/ListSelector.java index 894e486d7..a6d419f12 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/components/ListSelector.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/components/ListSelector.java @@ -9,11 +9,12 @@ import cam72cam.mod.text.TextColor; import java.util.*; +import java.util.function.BiConsumer; import java.util.stream.Collectors; import static cam72cam.immersiverailroading.gui.components.GuiUtils.fitString; -public abstract class ListSelector { +public class ListSelector { int width; T currentValue; Map rawOptions; @@ -29,10 +30,18 @@ public abstract class ListSelector { Map buttonsX; Map buttonsY; + BiConsumer, T> callback; + public ListSelector(IScreenBuilder screen, int xOff, int width, int height, T currentValue, Map rawOptions) { + this(screen, xOff, width, height, currentValue, rawOptions, (selector, val) -> {}); + } + + public ListSelector(IScreenBuilder screen, int xOff, int width, int height, T currentValue, Map rawOptions, + BiConsumer, T> callback) { this.width = width; this.rawOptions = rawOptions; this.currentValue = currentValue; + this.callback = callback; visible = false; page = 0; @@ -41,13 +50,11 @@ public ListSelector(IScreenBuilder screen, int xOff, int width, int height, T cu search = new TextField(screen, xtop, ytop, width - 1, height); - pagination = new Button(screen, xtop, ytop + height, width + 1, height, "") { - @Override - public void onClick(Player.Hand hand) { - page += hand == Player.Hand.PRIMARY ? 1 : -1; - updateSearch(search.getText()); - } - }; + pagination = new Button(screen, xtop, ytop + height, width + 1, height, "", + (hand, button) -> { + page += hand == Player.Hand.PRIMARY ? 1 : -1; + updateSearch(search.getText()); + }); pageSize = Math.max(1, GUIHelpers.getScreenHeight() / height - 2); @@ -60,14 +67,12 @@ public void onClick(Player.Hand hand) { buttonsX = new HashMap<>(); buttonsY = new HashMap<>(); for (int i = 0; i < pageSize; i++) { - Button btn = new Button(screen, xtop, ytop + height * 2 + i * height, width + 1, height, "") { - @Override - public void onClick(Player.Hand hand) { - ListSelector.this.currentValue = usableButtons.get(this); - ListSelector.this.onClick(ListSelector.this.currentValue); - ListSelector.this.updateSearch(search.getText()); - } - }; + Button btn = new Button(screen, xtop, ytop + height * 2 + i * height, width + 1, height, "", + (hand, button) -> { + this.currentValue = usableButtons.get(button); + this.callback.accept(ListSelector.this, ListSelector.this.currentValue); + this.updateSearch(search.getText()); + }); buttonsX.put(btn, xtop); buttonsY.put(btn, ytop + height * 2 + i * height); options.add(btn); @@ -94,8 +99,6 @@ public boolean isVisible() { return visible; } - public abstract void onClick(T option); - void updateSearch(String search) { Collection names = search.isEmpty() ? rawOptions.keySet() : rawOptions.keySet().stream() .filter(v -> v.toLowerCase(Locale.ROOT).contains(search.toLowerCase(Locale.ROOT))) diff --git a/src/main/java/cam72cam/immersiverailroading/gui/container/FreightContainer.java b/src/main/java/cam72cam/immersiverailroading/gui/container/FreightContainer.java index 84d8bad79..cb2c2d1a9 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/container/FreightContainer.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/container/FreightContainer.java @@ -2,6 +2,7 @@ import cam72cam.immersiverailroading.entity.Freight; import cam72cam.mod.gui.container.IContainerBuilder; +import cam72cam.mod.render.opengl.RenderState; public class FreightContainer extends BaseContainer { public Freight stock; @@ -10,7 +11,7 @@ public FreightContainer(Freight stock) { this.stock = stock; } - public void draw(IContainerBuilder container){ + public void draw(IContainerBuilder container, RenderState state){ int currY = 0; currY = container.drawTopBar(0, currY, stock.getInventoryWidth()); currY = container.drawSlotBlock(stock.cargoItems, 0, stock.getInventoryWidth(), 0, currY); diff --git a/src/main/java/cam72cam/immersiverailroading/gui/container/SteamHammerContainer.java b/src/main/java/cam72cam/immersiverailroading/gui/container/SteamHammerContainer.java index 1014a18ce..19bdf97b3 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/container/SteamHammerContainer.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/container/SteamHammerContainer.java @@ -4,6 +4,7 @@ import cam72cam.mod.fluid.Fluid; import cam72cam.mod.gui.container.IContainer; import cam72cam.mod.gui.container.IContainerBuilder; +import cam72cam.mod.render.opengl.RenderState; public class SteamHammerContainer implements IContainer { private final TileMultiblock tile; @@ -12,7 +13,7 @@ public SteamHammerContainer(TileMultiblock tile) { this.tile = tile; } - public void draw(IContainerBuilder container){ + public void draw(IContainerBuilder container, RenderState state){ int currY = 0; int horizSlots = 10; int inventoryRows = 4; diff --git a/src/main/java/cam72cam/immersiverailroading/gui/container/SteamLocomotiveContainer.java b/src/main/java/cam72cam/immersiverailroading/gui/container/SteamLocomotiveContainer.java index 726af3625..c582b5689 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/container/SteamLocomotiveContainer.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/container/SteamLocomotiveContainer.java @@ -4,6 +4,7 @@ import cam72cam.mod.gui.container.IContainerBuilder; import cam72cam.mod.item.Fuzzy; import cam72cam.mod.item.ItemStack; +import cam72cam.mod.render.opengl.RenderState; import java.util.Map; @@ -16,7 +17,7 @@ public SteamLocomotiveContainer(LocomotiveSteam stock) { this.template = Fuzzy.BUCKET.example(); } - public void draw(IContainerBuilder container){ + public void draw(IContainerBuilder container, RenderState state){ int currY = 0; int horizSlots = stock.getInventoryWidth(); int inventoryRows = (int) Math.ceil(((double)stock.getInventorySize()-2) / horizSlots); diff --git a/src/main/java/cam72cam/immersiverailroading/gui/container/TankContainer.java b/src/main/java/cam72cam/immersiverailroading/gui/container/TankContainer.java index 6769e1f9f..4eedac191 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/container/TankContainer.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/container/TankContainer.java @@ -4,6 +4,7 @@ import cam72cam.mod.gui.container.IContainerBuilder; import cam72cam.mod.item.Fuzzy; import cam72cam.mod.item.ItemStack; +import cam72cam.mod.render.opengl.RenderState; public class TankContainer extends BaseContainer { public final FreightTank stock; @@ -14,7 +15,7 @@ public TankContainer(FreightTank tank) { this.template = Fuzzy.BUCKET.example(); } - public void draw(IContainerBuilder container){ + public void draw(IContainerBuilder container, RenderState state){ int currY = 0; int horizSlots = 10; int inventoryRows = 4; diff --git a/src/main/java/cam72cam/immersiverailroading/gui/container/TenderContainer.java b/src/main/java/cam72cam/immersiverailroading/gui/container/TenderContainer.java index 2f6cfb3fc..585fccd74 100644 --- a/src/main/java/cam72cam/immersiverailroading/gui/container/TenderContainer.java +++ b/src/main/java/cam72cam/immersiverailroading/gui/container/TenderContainer.java @@ -4,6 +4,7 @@ import cam72cam.mod.gui.container.IContainerBuilder; import cam72cam.mod.item.Fuzzy; import cam72cam.mod.item.ItemStack; +import cam72cam.mod.render.opengl.RenderState; public class TenderContainer extends BaseContainer { public final Tender stock; @@ -14,7 +15,7 @@ public TenderContainer(Tender stock) { this.template = Fuzzy.BUCKET.example(); } - public void draw(IContainerBuilder container) { + public void draw(IContainerBuilder container, RenderState state) { int currY = 0; int horizSlots = stock.getInventoryWidth(); int inventoryRows = (int) Math.ceil(((double)stock.getInventorySize()-2) / horizSlots); diff --git a/src/main/java/cam72cam/immersiverailroading/items/ItemGoldenSpike.java b/src/main/java/cam72cam/immersiverailroading/items/ItemGoldenSpike.java index 6a6104f46..ec666c893 100644 --- a/src/main/java/cam72cam/immersiverailroading/items/ItemGoldenSpike.java +++ b/src/main/java/cam72cam/immersiverailroading/items/ItemGoldenSpike.java @@ -63,7 +63,7 @@ public ClickResult onClickBlock(Player player, World world, Vec3i pos, Player.Ha if (tr.isAboveRails()) { tepos = tepos.down(); } - tr.setCustomInfo(new PlacementInfo(tr.getItem(), player.getYawHead(), hit.subtract(0, hit.y, 0).add(pos).subtract(tepos))); + tr.setCustomInfo(new PlacementInfo(tr.getItem(), player.getRotationYawHead(), hit.subtract(0, hit.y, 0).add(pos).subtract(tepos))); } } } diff --git a/src/main/java/cam72cam/immersiverailroading/items/ItemManual.java b/src/main/java/cam72cam/immersiverailroading/items/ItemManual.java index 6ef5c0038..fa5bc4713 100644 --- a/src/main/java/cam72cam/immersiverailroading/items/ItemManual.java +++ b/src/main/java/cam72cam/immersiverailroading/items/ItemManual.java @@ -88,7 +88,7 @@ public ClickResult onClickBlock(Player player, World world, Vec3i pos, Player.Ha if (facing == Facing.UP) { realPos = realPos.up(); } - current.place(world, player, realPos, Rotation.from(Facing.fromAngle(player.getYawHead()+180))); + current.place(world, player, realPos, Rotation.from(Facing.fromAngle(player.getRotationYawHead()+180))); } return ClickResult.ACCEPTED; } diff --git a/src/main/java/cam72cam/immersiverailroading/items/ItemTrackBlueprint.java b/src/main/java/cam72cam/immersiverailroading/items/ItemTrackBlueprint.java index b01611ba2..887ada7f5 100644 --- a/src/main/java/cam72cam/immersiverailroading/items/ItemTrackBlueprint.java +++ b/src/main/java/cam72cam/immersiverailroading/items/ItemTrackBlueprint.java @@ -83,13 +83,13 @@ public ClickResult onClickBlock(Player player, World world, Vec3i pos, Player.Ha world.setBlock(pos, IRBlocks.BLOCK_RAIL_PREVIEW); TileRailPreview te = world.getBlockEntity(pos, TileRailPreview.class); if (te != null) { - PlacementInfo placementInfo = new PlacementInfo(stack, player.getYawHead(), hit.subtract(0, hit.y, 0)); + PlacementInfo placementInfo = new PlacementInfo(stack, player.getRotationYawHead(), hit.subtract(0, hit.y, 0)); te.setup(stack, placementInfo); } return ClickResult.ACCEPTED; } - PlacementInfo placementInfo = new PlacementInfo(stack, player.getYawHead(), hit.subtract(0, hit.y, 0)); + PlacementInfo placementInfo = new PlacementInfo(stack, player.getRotationYawHead(), hit.subtract(0, hit.y, 0)); RailInfo info = new RailInfo(stack, placementInfo, null); info.build(player, pos); return ClickResult.ACCEPTED; diff --git a/src/main/java/cam72cam/immersiverailroading/tile/TileRailPreview.java b/src/main/java/cam72cam/immersiverailroading/tile/TileRailPreview.java index 11795b324..238dc3b2f 100644 --- a/src/main/java/cam72cam/immersiverailroading/tile/TileRailPreview.java +++ b/src/main/java/cam72cam/immersiverailroading/tile/TileRailPreview.java @@ -121,7 +121,7 @@ public void setPlacementInfo(PlacementInfo info) { public boolean onClick(Player player, Player.Hand hand, Facing facing, Vec3d hit) { if (player.isCrouching()) { if (getWorld().isServer) { - this.setPlacementInfo(new PlacementInfo(this.getItem(), player.getYawHead(), hit)); + this.setPlacementInfo(new PlacementInfo(this.getItem(), player.getRotationYawHead(), hit)); } return false; } else if (getWorld().isClient && !player.getHeldItem(hand).is(IRItems.ITEM_GOLDEN_SPIKE)) { diff --git a/src/main/java/cam72cam/immersiverailroading/util/SpawnUtil.java b/src/main/java/cam72cam/immersiverailroading/util/SpawnUtil.java index afeb1b1bb..a7f1e361f 100644 --- a/src/main/java/cam72cam/immersiverailroading/util/SpawnUtil.java +++ b/src/main/java/cam72cam/immersiverailroading/util/SpawnUtil.java @@ -43,7 +43,7 @@ public static ClickResult placeStock(Player player, Player.Hand hand, World worl } double offset = def.getCouplerPosition(CouplerType.BACK, gauge) - ConfigDebug.couplerRange; - float yaw = player.getYawHead(); + float yaw = player.getRotationYawHead(); if (worldIn.isServer) { EntityRollingStock stock = def.spawn(worldIn, new Vec3d(pos).add(0.5, 0.1, 0.5), yaw, gauge, data.texture);