mirror of
https://github.com/TeamMidnightDust/PictureSign.git
synced 2025-12-15 21:55:09 +01:00
PictureSign 1.4.0 - Assisting UI and Bugfixes
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package eu.midnightdust.picturesign.mixin;
|
||||
|
||||
import eu.midnightdust.lib.util.screen.TexturedOverlayButtonWidget;
|
||||
import eu.midnightdust.picturesign.PictureSignClient;
|
||||
import eu.midnightdust.picturesign.config.PictureSignConfig;
|
||||
import eu.midnightdust.picturesign.screen.PictureSignHelperScreen;
|
||||
import net.minecraft.block.entity.SignBlockEntity;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.screen.ingame.SignEditScreen;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.Identifier;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@Mixin(SignEditScreen.class)
|
||||
public abstract class MixinSignEditScreen extends Screen {
|
||||
private static final Identifier PICTURESIGN_ICON_TEXTURE = new Identifier("picturesign","textures/gui/picturesign_button.png");
|
||||
private static final Identifier CLIPBOARD_ICON_TEXTURE = new Identifier("picturesign","textures/gui/clipboard_button.png");
|
||||
private static final Identifier TRASHBIN_ICON_TEXTURE = new Identifier("picturesign","textures/gui/trashbin_button.png");
|
||||
@Shadow @Final private SignBlockEntity sign;
|
||||
|
||||
@Shadow @Final private String[] text;
|
||||
|
||||
protected MixinSignEditScreen(Text title) {
|
||||
super(title);
|
||||
}
|
||||
|
||||
@Inject(at = @At("TAIL"),method = "init")
|
||||
private void picturesign$init(CallbackInfo ci) {
|
||||
if (PictureSignClient.clipboard != null && PictureSignClient.clipboard[0] != null)
|
||||
this.addDrawableChild(new TexturedOverlayButtonWidget(this.width - 84, this.height - 40, 20, 20, 0, 0, 20, CLIPBOARD_ICON_TEXTURE, 32, 64, (buttonWidget) -> {
|
||||
sign.setTextOnRow(0, Text.of(PictureSignClient.clipboard[0]));
|
||||
sign.setTextOnRow(1, Text.of(PictureSignClient.clipboard[1]));
|
||||
sign.setTextOnRow(2, Text.of(PictureSignClient.clipboard[2]));
|
||||
sign.setTextOnRow(3, Text.of(PictureSignClient.clipboard[3]));
|
||||
text[0] = PictureSignClient.clipboard[0];
|
||||
text[1] = PictureSignClient.clipboard[1];
|
||||
text[2] = PictureSignClient.clipboard[2];
|
||||
text[3] = PictureSignClient.clipboard[3];
|
||||
}, Text.of("")));
|
||||
if (PictureSignConfig.helperUi)
|
||||
this.addDrawableChild(new TexturedOverlayButtonWidget(this.width - 62, this.height - 40, 20, 20, 0, 0, 20, TRASHBIN_ICON_TEXTURE, 32, 64, (buttonWidget) -> {
|
||||
sign.setTextOnRow(0, Text.of(""));
|
||||
sign.setTextOnRow(1, Text.of(""));
|
||||
sign.setTextOnRow(2, Text.of(""));
|
||||
sign.setTextOnRow(3, Text.of(""));
|
||||
text[0] = "";
|
||||
text[1] = "";
|
||||
text[2] = "";
|
||||
text[3] = "";
|
||||
}, Text.of("")));
|
||||
if (PictureSignConfig.helperUi)
|
||||
this.addDrawableChild(new TexturedOverlayButtonWidget(this.width - 40, this.height - 40, 20, 20, 0, 0, 20, PICTURESIGN_ICON_TEXTURE, 32, 64, (buttonWidget) -> {
|
||||
sign.setEditable(true);
|
||||
Objects.requireNonNull(client).setScreen(new PictureSignHelperScreen(this.sign,false));
|
||||
}, Text.of("")));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user