improve cheat gui scrollbar

This commit is contained in:
Sen 2025-06-26 23:46:39 +02:00
parent bf54705350
commit 1e104d5db8
Signed by: sen
GPG key ID: 3AC50A6F47D1B722
5 changed files with 33 additions and 89 deletions

View file

@ -44,52 +44,12 @@ public abstract class GuiContainer extends Gui
private static final List<ItemStack> ITEM_LIST = Lists.<ItemStack>newArrayList(); private static final List<ItemStack> ITEM_LIST = Lists.<ItemStack>newArrayList();
private static CheatTab selectedTab = CheatTab.BLOCKS; private static CheatTab selectedTab = CheatTab.BLOCKS;
// /** The location of the inventory background texture */
// protected static final String inventoryBackground = "textures/gui/inventory.png";
protected RenderItem itemRender; protected RenderItem itemRender;
// public int width;
// public int height;
/** The X size of the inventory window in pixels. */
protected int xSize = 176; protected int xSize = 176;
/** The Y size of the inventory window in pixels. */
protected int ySize = 166; protected int ySize = 166;
/** A list of the players inventory slots */
public Container inventorySlots; public Container inventorySlots;
// /**
// * Starting X position for the Gui. Inconsistent use for Gui backgrounds.
// */
// protected int guiLeft;
//
// /**
// * Starting Y position for the Gui. Inconsistent use for Gui backgrounds.
// */
// protected int guiTop;
/** holds the slot currently hovered */
private Slot theSlot; private Slot theSlot;
/** Used when touchscreen is enabled. */
private Slot clickedSlot;
/** Used when touchscreen is enabled. */
private boolean isRightMouseClick;
/** Used when touchscreen is enabled */
private ItemStack draggedStack;
private int touchUpX;
private int touchUpY;
private Slot returningStackDestSlot;
private long returningStackTime;
/** Used when touchscreen is enabled */
private ItemStack returningStack;
private Slot currentDragTargetSlot;
private long dragItemDropDelay;
protected final Set<Slot> dragSplittingSlots = Sets.<Slot>newHashSet(); protected final Set<Slot> dragSplittingSlots = Sets.<Slot>newHashSet();
protected final List<Overlay> drawnOverlays = Lists.<Overlay>newArrayList(); protected final List<Overlay> drawnOverlays = Lists.<Overlay>newArrayList();
protected boolean dragSplitting; protected boolean dragSplitting;
@ -130,6 +90,10 @@ public abstract class GuiContainer extends Gui
public void rect(int x, int y, int width, int height, int color) { public void rect(int x, int y, int width, int height, int color) {
Drawing.drawRect(this.container_x + x * 2, this.container_y + y * 2, width * 2, height * 2, 0xff000000 | color); Drawing.drawRect(this.container_x + x * 2, this.container_y + y * 2, width * 2, height * 2, 0xff000000 | color);
} }
public void grad(int x, int y, int width, int height, int top, int bottom, int topleft, int btmright) {
Drawing.drawGradient(this.container_x + x * 2, this.container_y + y * 2, width * 2, height * 2, 0xff000000 | top, 0xff000000 | bottom, 0xff000000 | topleft, 0xff000000 | btmright);
}
public InventoryButton button(int x, int y, int w, int h) { public InventoryButton button(int x, int y, int w, int h) {
return this.add(new InventoryButton(this.container_x + x * 2, this.container_y + y * 2, w * 2, h * 2)); return this.add(new InventoryButton(this.container_x + x * 2, this.container_y + y * 2, w * 2, h * 2));
@ -362,22 +326,17 @@ public abstract class GuiContainer extends Gui
// this.drawGuiContainerForegroundLayer(mouseX, mouseY); // this.drawGuiContainerForegroundLayer(mouseX, mouseY);
ItemRenderer.enableGUIStandardItemLighting(); ItemRenderer.enableGUIStandardItemLighting();
InventoryPlayer inventoryplayer = this.gm.player.inventory; InventoryPlayer inventoryplayer = this.gm.player.inventory;
ItemStack itemstack = this.draggedStack == null ? inventoryplayer.getItemStack() : this.draggedStack; ItemStack itemstack = inventoryplayer.getItemStack();
if(this.gm.itemCheat) if(this.gm.itemCheat)
itemstack = itemstack == null ? this.cheatStack : itemstack; itemstack = itemstack == null ? this.cheatStack : itemstack;
if (itemstack != null) if (itemstack != null)
{ {
int j2 = 8; int j2 = 8;
int k2 = this.draggedStack == null ? 8 : 16; int k2 = 8;
String s = null; String s = null;
if (this.draggedStack != null && this.isRightMouseClick) if (this.dragSplitting && this.dragSplittingSlots.size() > 1)
{
itemstack = itemstack.copy();
itemstack.size = ExtMath.ceilf((float)itemstack.size / 2.0F);
}
else if (this.dragSplitting && this.dragSplittingSlots.size() > 1)
{ {
itemstack = itemstack.copy(); itemstack = itemstack.copy();
itemstack.size = this.dragSplittingRemnant; itemstack.size = this.dragSplittingRemnant;
@ -394,23 +353,6 @@ public abstract class GuiContainer extends Gui
this.drawItemStack(itemstack, mouseX - j2, mouseY - k2, s); this.drawItemStack(itemstack, mouseX - j2, mouseY - k2, s);
} }
if (this.returningStack != null)
{
float f = (float)(System.currentTimeMillis() - this.returningStackTime) / 100.0F;
if (f >= 1.0F)
{
f = 1.0F;
this.returningStack = null;
}
int l2 = this.returningStackDestSlot.xDisplayPosition - this.touchUpX;
int i3 = this.returningStackDestSlot.yDisplayPosition - this.touchUpY;
int l1 = this.touchUpX + (int)((float)l2 * f);
int i2 = this.touchUpY + (int)((float)i3 * f);
this.drawItemStack(this.returningStack, l1, i2, (String)null);
}
// SKC.glPopMatrix(); // SKC.glPopMatrix();
if (inventoryplayer.getItemStack() == null && this.cheatStack == null && this.theSlot != null && this.theSlot.getHasStack()) if (inventoryplayer.getItemStack() == null && this.cheatStack == null && this.theSlot != null && this.theSlot.getHasStack())
@ -446,7 +388,7 @@ public abstract class GuiContainer extends Gui
// this.zLevel = 200.0F; // this.zLevel = 200.0F;
this.itemRender.zLevel = 200.0F; this.itemRender.zLevel = 200.0F;
this.itemRender.renderItemAndEffectIntoGUI(stack, x, y); this.itemRender.renderItemAndEffectIntoGUI(stack, x, y);
this.drawnOverlays.add(new Overlay(stack, x, y - (this.draggedStack == null ? 0 : 8), altText)); this.drawnOverlays.add(new Overlay(stack, x, y, altText));
// this.zLevel = 0.0F; // this.zLevel = 0.0F;
this.itemRender.zLevel = 0.0F; this.itemRender.zLevel = 0.0F;
} }
@ -476,12 +418,13 @@ public abstract class GuiContainer extends Gui
public void draw() { public void draw() {
super.draw(); super.draw();
if(this.gm.itemCheat) { if(this.gm.itemCheat) {
int i = this.xSize + 2 + 12 * 18 + 1; if(this.needsScrollBars()) {
int j = 1; int i = this.xSize + 2 + 12 * 18 + 1;
int k = j + 184; int j = 1;
this.rect(i, j, 8, 182, this.needsScrollBars() ? 0x303030 : 0x202020); int k = j + 184;
this.rect(i, j + (int)((float)(k - j - 17) * this.currentScroll), 8, 15, this.needsScrollBars() ? 0x808080 : 0x606060); this.rect(i, j, 8, 182, 0x000000);
// CheatTab tab = CheatTab.TABS[selectedTab]; this.grad(i, j + (int)((float)(k - j - 17) * this.currentScroll), 8, 15, this.gm.style.fill_top, this.gm.style.fill_btm, this.gm.style.brdr_top, this.gm.style.brdr_btm);
}
this.rect(this.xSize + 2 + 18 * selectedTab.getHorizontal(), 9 * 18 + 4 + 20 * selectedTab.getVertical() - 2, 18, 2, 0xffffff); this.rect(this.xSize + 2 + 18 * selectedTab.getHorizontal(), 9 * 18 + 4 + 20 * selectedTab.getVertical() - 2, 18, 2, 0xffffff);
} }
this.drawGuiContainerBackgroundLayer(); this.drawGuiContainerBackgroundLayer();
@ -512,16 +455,10 @@ public abstract class GuiContainer extends Gui
int j = slotIn.yDisplayPosition; int j = slotIn.yDisplayPosition;
ItemStack itemstack = slotIn.getStack(); ItemStack itemstack = slotIn.getStack();
boolean flag = false; boolean flag = false;
boolean flag1 = slotIn == this.clickedSlot && this.draggedStack != null && !this.isRightMouseClick;
ItemStack itemstack1 = this.gm.player.inventory.getItemStack(); ItemStack itemstack1 = this.gm.player.inventory.getItemStack();
String s = null; String s = null;
if (slotIn == this.clickedSlot && this.draggedStack != null && this.isRightMouseClick && itemstack != null) if (this.dragSplitting && this.dragSplittingSlots.contains(slotIn) && itemstack1 != null)
{
itemstack = itemstack.copy();
itemstack.size /= 2;
}
else if (this.dragSplitting && this.dragSplittingSlots.contains(slotIn) && itemstack1 != null)
{ {
if (this.dragSplittingSlots.size() == 1) if (this.dragSplittingSlots.size() == 1)
{ {
@ -571,18 +508,15 @@ public abstract class GuiContainer extends Gui
// } // }
// } // }
if (!flag1)
{
// if (flag) // if (flag)
// { // {
// drawRect(i, j, i + 16, j + 16, -2130706433); // drawRect(i, j, i + 16, j + 16, -2130706433);
// SKC.highlight(i, j, 16, 16); // SKC.highlight(i, j, 16, 16);
// } // }
GlState.enableDepth(); GlState.enableDepth();
this.itemRender.renderItemAndEffectIntoGUI(itemstack, i, j); this.itemRender.renderItemAndEffectIntoGUI(itemstack, i, j);
this.drawnOverlays.add(new Overlay(itemstack, i, j, s)); this.drawnOverlays.add(new Overlay(itemstack, i, j, s));
}
this.itemRender.zLevel = 0.0F; this.itemRender.zLevel = 0.0F;
// this.zLevel = 0.0F; // this.zLevel = 0.0F;

View file

@ -41,11 +41,21 @@ public enum CheatTab {
return Items.diamond_block; return Items.diamond_block;
} }
}, },
SPAWNERS("Mob & Itemspawner") { VEHICLES("Fahrzeuge und Fortbewegung") {
protected Item getIconItem() { protected Item getIconItem() {
return Items.minecart; return Items.minecart;
} }
}, },
SPAWNERS("Mob & Itemspawner") {
protected Item getIconItem() {
return Items.wheat;
}
},
NPCS("NPC- und Charakterspawner") {
protected Item getIconItem() {
return Items.book;
}
},
TOOLS("Werkzeug") { TOOLS("Werkzeug") {
protected Item getIconItem() { protected Item getIconItem() {
return Items.flint_and_steel; return Items.flint_and_steel;

View file

@ -24,7 +24,7 @@ public class ItemBoat extends Item
public ItemBoat() public ItemBoat()
{ {
this.setMaxAmount(1); this.setMaxAmount(1);
this.setTab(CheatTab.SPAWNERS); this.setTab(CheatTab.VEHICLES);
} }
/** /**

View file

@ -22,7 +22,7 @@ public class ItemMinecart extends Item
{ {
this.setMaxAmount(1); this.setMaxAmount(1);
this.minecartType = type; this.minecartType = type;
this.setTab(CheatTab.SPAWNERS); this.setTab(CheatTab.VEHICLES);
// if(type != EntityMinecart.EnumMinecartType.COMMAND_BLOCK) // if(type != EntityMinecart.EnumMinecartType.COMMAND_BLOCK)
} }

View file

@ -35,7 +35,7 @@ public class ItemNpcSpawner extends Item
public ItemNpcSpawner(CharacterInfo spawned) public ItemNpcSpawner(CharacterInfo spawned)
{ {
// this.setHasSubtypes(true); // this.setHasSubtypes(true);
this.setTab(CheatTab.SPAWNERS); this.setTab(CheatTab.NPCS);
this.spawned = spawned; this.spawned = spawned;
} }