mirror of
https://github.com/PixelGuys/Cubyz.git
synced 2025-09-12 22:09:18 -04:00
parent
16f0e4d37f
commit
b6cffba122
@ -326,7 +326,7 @@ pub fn update(self: *GuiWindow) void {
|
|||||||
pub fn updateSelected(self: *GuiWindow, mousePosition: Vec2f) void {
|
pub fn updateSelected(self: *GuiWindow, mousePosition: Vec2f) void {
|
||||||
self.updateSelectedFn();
|
self.updateSelectedFn();
|
||||||
const windowSize = main.Window.getWindowSize()/@as(Vec2f, @splat(gui.scale));
|
const windowSize = main.Window.getWindowSize()/@as(Vec2f, @splat(gui.scale));
|
||||||
if(self == grabbedWindow) if(grabPosition) |_grabPosition| {
|
if(self == grabbedWindow and self.titleBarExpanded) if(grabPosition) |_grabPosition| {
|
||||||
self.relativePosition[0] = .{.ratio = undefined};
|
self.relativePosition[0] = .{.ratio = undefined};
|
||||||
self.relativePosition[1] = .{.ratio = undefined};
|
self.relativePosition[1] = .{.ratio = undefined};
|
||||||
self.pos = (mousePosition - _grabPosition) + selfPositionWhenGrabbed;
|
self.pos = (mousePosition - _grabPosition) + selfPositionWhenGrabbed;
|
||||||
@ -496,7 +496,7 @@ pub fn render(self: *const GuiWindow, mousePosition: Vec2f) void {
|
|||||||
}
|
}
|
||||||
draw.restoreTranslation(oldTranslation);
|
draw.restoreTranslation(oldTranslation);
|
||||||
draw.restoreScale(oldScale);
|
draw.restoreScale(oldScale);
|
||||||
if(self == grabbedWindow and grabPosition != null) {
|
if(self == grabbedWindow and self.titleBarExpanded and grabPosition != null) {
|
||||||
self.drawOrientationLines();
|
self.drawOrientationLines();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -453,7 +453,7 @@ pub fn mainButtonPressed() void {
|
|||||||
_selectedWindow.mainButtonPressed(mousePosition);
|
_selectedWindow.mainButtonPressed(mousePosition);
|
||||||
_ = openWindows.orderedRemove(selectedI);
|
_ = openWindows.orderedRemove(selectedI);
|
||||||
openWindows.appendAssumeCapacity(_selectedWindow);
|
openWindows.appendAssumeCapacity(_selectedWindow);
|
||||||
} else if(main.game.world != null) {
|
} else if(main.game.world != null and inventory.carriedItemSlot.itemStack.item == null) {
|
||||||
main.Window.setMouseGrabbed(true);
|
main.Window.setMouseGrabbed(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,10 @@ const padding: f32 = 8;
|
|||||||
var items: main.List(Item) = undefined;
|
var items: main.List(Item) = undefined;
|
||||||
|
|
||||||
pub fn tryTakingItems(index: usize, destination: *ItemStack, _: u16) void {
|
pub fn tryTakingItems(index: usize, destination: *ItemStack, _: u16) void {
|
||||||
if(destination.item != null and !std.meta.eql(destination.item.?, items.items[index])) return;
|
trySwappingItems(index, destination);
|
||||||
|
}
|
||||||
|
pub fn trySwappingItems(index: usize, destination: *ItemStack) void {
|
||||||
|
destination.clear(); // Always replace the destination.
|
||||||
destination.item = items.items[index];
|
destination.item = items.items[index];
|
||||||
destination.amount = destination.item.?.stackSize();
|
destination.amount = destination.item.?.stackSize();
|
||||||
}
|
}
|
||||||
@ -44,7 +47,7 @@ pub fn onOpen() void {
|
|||||||
for(0..8) |_| {
|
for(0..8) |_| {
|
||||||
if(i >= items.items.len) break;
|
if(i >= items.items.len) break;
|
||||||
const item = items.items[i];
|
const item = items.items[i];
|
||||||
row.add(ItemSlot.init(.{0, 0}, .{.item = item, .amount = 1}, &.{.tryTakingItems = &tryTakingItems}, i, .default, .takeOnly));
|
row.add(ItemSlot.init(.{0, 0}, .{.item = item, .amount = 1}, &.{.tryTakingItems = &tryTakingItems, .trySwappingItems = &trySwappingItems}, i, .default, .takeOnly));
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
list.add(row);
|
list.add(row);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user