Как внедрить веб -графический интерфейс в Minecraft?JAVA

Программисты JAVA общаются здесь
Anonymous
Как внедрить веб -графический интерфейс в Minecraft?

Сообщение Anonymous »

Я пытаюсь интегрировать графический интерфейс HTML, как только вы щелкните правой кнопкой мыши по предмету. Я наткнулся на mcef (https://github.com/montoyo/mcef) и теперь пытаюсь интегрировать его. не отображается. Я надеюсь, что кто -то сможет мне помочь.package de.caderion.tabletmod.ui;

import de.caderion.tabletmod.TabletMod;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.GlStateManager;
import net.montoyo.mcef.api.API;
import net.montoyo.mcef.api.IBrowser;
import net.montoyo.mcef.api.MCEFApi;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import java.io.IOException;

public class TabletScreen extends GuiScreen {
IBrowser browser = null;
String urlToLoad = "https://www.google.com";

public TabletScreen() {
this.loadURL(urlToLoad);
}

public TabletScreen(String url) {
this.loadURL(url == null ? urlToLoad : url);
}

public void initGui() {
if (this.browser == null) {
API api = MCEFApi.getAPI();
if (api == null) {
return;
}

this.browser = api.createBrowser(urlToLoad, false);
}

if (this.browser != null) {
this.browser.resize(this.mc.displayWidth, this.mc.displayHeight);
}

Keyboard.enableRepeatEvents(true);
this.buttonList.clear();
}

public void loadURL(String url) {
if (this.browser == null) {
this.urlToLoad = url;
} else {
this.browser.loadURL(url);
}
}

public void updateScreen() {
if (this.urlToLoad != null && this.browser != null) {
this.browser.loadURL(this.urlToLoad);
this.urlToLoad = null;
}
}

@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
super.drawScreen(mouseX, mouseY, partialTicks);

if (this.browser != null) {
GlStateManager.pushMatrix();
GlStateManager.translate(0, 0, 0);
GlStateManager.disableDepth();
GlStateManager.enableTexture2D();
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.browser.draw(0, 0, this.width, this.height);
GlStateManager.enableDepth();
GlStateManager.popMatrix();
}
}

public void onGuiClosed() {
if (!TabletMod.INSTANCE.hasBackup() && this.browser != null) {
this.browser.close();
}

Keyboard.enableRepeatEvents(false);
}

@Override
public void handleMouseInput() throws IOException {
super.handleMouseInput();
this.handleInput();
}

@Override
public void handleKeyboardInput() throws IOException {
super.handleKeyboardInput();
this.handleInput();
}

public void handleInput() {
int key;
int num;
while (Keyboard.next()) {
if (Keyboard.getEventKey() == 1) {
this.mc.displayGuiScreen((GuiScreen) null);
return;
}

boolean pressed = Keyboard.getEventKeyState();
key = Keyboard.getEventCharacter();
num = Keyboard.getEventKey();
if (this.browser != null && !pressed) {
if (pressed) {
this.browser.injectKeyPressedByKeyCode(num, (char) key, 0);
} else {
this.browser.injectKeyReleasedByKeyCode(num, (char) key, 0);
}

if (key != 0) {
this.browser.injectKeyTyped((char) key, 0);
}
}
}

while (Mouse.next()) {
int btn = Mouse.getEventButton();
boolean pressed = Mouse.getEventButtonState();
key = Mouse.getEventX();
num = Mouse.getEventY();
int wheel = Mouse.getEventDWheel();
int x;
if (this.browser != null) {
x = this.mc.displayHeight - num;
if (wheel != 0) {
this.browser.injectMouseWheel(key, x, 0, 1, wheel);
} else if (btn == -1) {
this.browser.injectMouseMove(key, x, 0, x < 0);
} else {
this.browser.injectMouseButton(key, x, 0, btn + 1, pressed, 1);
}
}

if (pressed) {
x = key * this.width / this.mc.displayWidth;
int y = this.height - num * this.height / this.mc.displayHeight - 1;

try {
this.mouseClicked(x, y, btn);
} catch (Throwable var9) {
var9.printStackTrace();
}
}
}
}
}

second try:
package de.caderion.tabletmod.ui;

import net.montoyo.mcef.api.IBrowser;
import net.montoyo.mcef.api.API;
import net.minecraft.client.gui.GuiScreen;
import net.montoyo.mcef.api.MCEFApi;

public class WebBrowserGui extends GuiScreen {

private IBrowser browser;

@Override
public void initGui() {
API api = MCEFApi.getAPI();
if (api != null) {
api.createBrowser("https://www.google.com", true);
}
}

@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
drawDefaultBackground();
if (browser != null) {
browser.draw(10, 10, width - 10, height - 10);
}
super.drawScreen(mouseX, mouseY, partialTicks);
}

@Override
public void onGuiClosed() {
if (browser != null) {
browser.close();
}
}
}



Подробнее здесь: https://stackoverflow.com/questions/794 ... -minecraft

Вернуться в «JAVA»