use of gregtech.api.gui.impl.FakeModularGui in project GregTech by GregTechCEu.
the class FakeGuiPluginBehavior method createFakeGui.
public void createFakeGui() {
if (this.holder == null || this.screen == null || !this.screen.isValid())
return;
try {
fakePlayer = new GregFakePlayer(this.screen.getWorld());
MetaTileEntity mte = getRealMTE();
if (mte == null || (this.partIndex > 0 && this.holder.getMetaTileEntity() == mte)) {
fakeModularUIContainer = null;
if (this.screen.getWorld().isRemote) {
fakeModularGui = null;
}
return;
}
ModularUI ui = (ModularUI) methodCreateUI.invoke(mte, fakePlayer);
if (ui == null) {
fakeModularUIContainer = null;
if (this.screen.getWorld().isRemote) {
fakeModularGui = null;
}
return;
}
List<Widget> widgets = new ArrayList<>();
boolean hasPlayerInventory = false;
for (Widget widget : ui.guiWidgets.values()) {
if (widget instanceof SlotWidget) {
IInventory handler = ((SlotWidget) widget).getHandle().inventory;
if (handler instanceof PlayerMainInvWrapper || handler instanceof InventoryPlayer) {
hasPlayerInventory = true;
continue;
}
}
widgets.add(widget);
}
ModularUI.Builder builder = new ModularUI.Builder(ui.backgroundPath, ui.getWidth(), ui.getHeight() - (hasPlayerInventory ? 80 : 0));
for (Widget widget : widgets) {
builder.widget(widget);
}
ui = builder.build(ui.holder, ui.entityPlayer);
fakeModularUIContainer = new FakeModularUIPluginContainer(ui, this);
if (this.screen.getWorld().isRemote) {
fakeModularGui = new FakeModularGui(ui, fakeModularUIContainer);
writePluginAction(GregtechDataCodes.ACTION_PLUGIN_CONFIG, buffer -> {
});
}
} catch (Exception e) {
GTLog.logger.error(e);
}
}
use of gregtech.api.gui.impl.FakeModularGui in project GregTech by GregTechCEu.
the class MetaTileEntityClipboard method createFakeGui.
public void createFakeGui() {
// Basically just the original function from the PluginBehavior, but with a lot of now useless stuff stripped out.
try {
GregFakePlayer fakePlayer = new GregFakePlayer(this.getWorld());
fakePlayer.setHeldItem(EnumHand.MAIN_HAND, this.getClipboard());
ModularUI ui = this.createUI(fakePlayer);
ModularUI.Builder builder = new ModularUI.Builder(ui.backgroundPath, ui.getWidth(), ui.getHeight());
builder.shouldColor(false);
List<Widget> widgets = new ArrayList<>(ui.guiWidgets.values());
for (Widget widget : widgets) {
builder.widget(widget);
}
ui = builder.build(ui.holder, ui.entityPlayer);
FakeModularUIContainerClipboard fakeModularUIContainer = new FakeModularUIContainerClipboard(ui, this);
this.guiContainerCache = fakeModularUIContainer;
if (getWorld().isRemote)
this.guiCache = new FakeModularGui(ui, fakeModularUIContainer);
this.writeCustomData(CREATE_FAKE_UI, buffer -> {
});
} catch (Exception e) {
GTLog.logger.error(e);
}
}
Aggregations