Some Refactoring
This commit is contained in:
parent
170b3e5096
commit
d420045de8
4 changed files with 61 additions and 45 deletions
|
@ -1,48 +1,9 @@
|
||||||
package org.betterx.ui.layout.components;
|
package org.betterx.ui.layout.components;
|
||||||
|
|
||||||
import org.betterx.ui.layout.components.render.ComponentRenderer;
|
|
||||||
import org.betterx.ui.layout.values.DynamicSize;
|
import org.betterx.ui.layout.values.DynamicSize;
|
||||||
import org.betterx.ui.layout.values.Rectangle;
|
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.client.gui.Font;
|
|
||||||
import net.minecraft.client.gui.components.AbstractWidget;
|
import net.minecraft.client.gui.components.AbstractWidget;
|
||||||
|
|
||||||
import net.fabricmc.api.EnvType;
|
|
||||||
import net.fabricmc.api.Environment;
|
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
|
||||||
class AbstractVanillaComponentRenderer<C extends AbstractWidget, V extends AbstractVanillaComponent<C, V>> implements ComponentRenderer {
|
|
||||||
V linkedComponent;
|
|
||||||
|
|
||||||
public Font getFont() {
|
|
||||||
return Minecraft.getInstance().font;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getWidth(net.minecraft.network.chat.Component c) {
|
|
||||||
return getFont().width(c.getVisualOrderText()) + 24;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getHeight(net.minecraft.network.chat.Component c) {
|
|
||||||
return getFont().lineHeight + 11;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected V getLinkedComponent() {
|
|
||||||
return linkedComponent;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void renderInBounds(PoseStack poseStack, int x, int y, float a, Rectangle bounds, Rectangle clipRect) {
|
|
||||||
if (linkedComponent != null) {
|
|
||||||
if (linkedComponent.vanillaComponent != null) {
|
|
||||||
linkedComponent.vanillaComponent.render(poseStack, x, y, a);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract class AbstractVanillaComponent<C extends AbstractWidget, V extends AbstractVanillaComponent<C, V>> extends Component<AbstractVanillaComponentRenderer<C, V>> {
|
public abstract class AbstractVanillaComponent<C extends AbstractWidget, V extends AbstractVanillaComponent<C, V>> extends Component<AbstractVanillaComponentRenderer<C, V>> {
|
||||||
protected C vanillaComponent;
|
protected C vanillaComponent;
|
||||||
protected final net.minecraft.network.chat.Component component;
|
protected final net.minecraft.network.chat.Component component;
|
||||||
|
@ -65,14 +26,18 @@ public abstract class AbstractVanillaComponent<C extends AbstractWidget, V exten
|
||||||
vanillaComponent = createVanillaComponent();
|
vanillaComponent = createVanillaComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected net.minecraft.network.chat.Component contentComponent() {
|
||||||
|
return component;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getContentWidth() {
|
public int getContentWidth() {
|
||||||
return renderer.getWidth(component);
|
return renderer.getWidth(contentComponent());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getContentHeight() {
|
public int getContentHeight() {
|
||||||
return renderer.getHeight(component);
|
return renderer.getHeight(contentComponent());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
package org.betterx.ui.layout.components;
|
||||||
|
|
||||||
|
import org.betterx.ui.layout.components.render.ComponentRenderer;
|
||||||
|
import org.betterx.ui.layout.values.Rectangle;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.Font;
|
||||||
|
import net.minecraft.client.gui.components.AbstractWidget;
|
||||||
|
|
||||||
|
import net.fabricmc.api.EnvType;
|
||||||
|
import net.fabricmc.api.Environment;
|
||||||
|
|
||||||
|
@Environment(EnvType.CLIENT)
|
||||||
|
public class AbstractVanillaComponentRenderer<C extends AbstractWidget, V extends AbstractVanillaComponent<C, V>> implements ComponentRenderer {
|
||||||
|
V linkedComponent;
|
||||||
|
|
||||||
|
public Font getFont() {
|
||||||
|
return Minecraft.getInstance().font;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getWidth(net.minecraft.network.chat.Component c) {
|
||||||
|
return getFont().width(c.getVisualOrderText()) + 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHeight(net.minecraft.network.chat.Component c) {
|
||||||
|
return getFont().lineHeight + 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected V getLinkedComponent() {
|
||||||
|
return linkedComponent;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderInBounds(PoseStack poseStack, int x, int y, float a, Rectangle bounds, Rectangle clipRect) {
|
||||||
|
if (linkedComponent != null) {
|
||||||
|
if (linkedComponent.vanillaComponent != null) {
|
||||||
|
linkedComponent.vanillaComponent.render(poseStack, x, y, a);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,14 +1,11 @@
|
||||||
package org.betterx.ui.layout.components;
|
package org.betterx.ui.layout.components;
|
||||||
|
|
||||||
|
import org.betterx.ui.layout.components.render.ButtonRenderer;
|
||||||
import org.betterx.ui.layout.values.DynamicSize;
|
import org.betterx.ui.layout.values.DynamicSize;
|
||||||
|
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
|
||||||
class ButtonRenderer extends AbstractVanillaComponentRenderer<net.minecraft.client.gui.components.Button, Button> {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
public class Button extends AbstractVanillaComponent<net.minecraft.client.gui.components.Button, Button> {
|
public class Button extends AbstractVanillaComponent<net.minecraft.client.gui.components.Button, Button> {
|
||||||
final net.minecraft.client.gui.components.Button.OnPress onPress;
|
final net.minecraft.client.gui.components.Button.OnPress onPress;
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package org.betterx.ui.layout.components.render;
|
||||||
|
|
||||||
|
import org.betterx.ui.layout.components.AbstractVanillaComponentRenderer;
|
||||||
|
import org.betterx.ui.layout.components.Button;
|
||||||
|
|
||||||
|
import net.fabricmc.api.EnvType;
|
||||||
|
import net.fabricmc.api.Environment;
|
||||||
|
|
||||||
|
@Environment(EnvType.CLIENT)
|
||||||
|
public class ButtonRenderer extends AbstractVanillaComponentRenderer<net.minecraft.client.gui.components.Button, Button> {
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue