Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions build.zig
Original file line number Diff line number Diff line change
Expand Up @@ -110,13 +110,17 @@ pub fn makeModFeature(step: *std.Build.Step, name: []const u8) !void {
}
}

const file_path = step.owner.fmt("mods/{s}.zig", .{name});
const filename = try step.owner.allocator.dupe(u8, name);
std.mem.replaceScalar(u8, filename, '/', '_');
const file_path = step.owner.fmt("mods/{s}.zig", .{filename});
try std.fs.cwd().writeFile(.{.data = featureList.items, .sub_path = file_path});
}

pub fn addModFeatureModule(b: *std.Build, exe: *std.Build.Step.Compile, name: []const u8) !void {
const filename = try b.allocator.dupe(u8, name);
std.mem.replaceScalar(u8, filename, '/', '_');
const module = b.createModule(.{
.root_source_file = b.path(b.fmt("mods/{s}.zig", .{name})),
.root_source_file = b.path(b.fmt("mods/{s}.zig", .{filename})),
.target = exe.root_module.resolved_target,
.optimize = exe.root_module.optimize,
});
Expand All @@ -135,10 +139,12 @@ fn addModFeatures(b: *std.Build, exe: *std.Build.Step.Compile) !void {
exe.step.dependOn(step);

try addModFeatureModule(b, exe, "rotation");
try addModFeatureModule(b, exe, "gui/windows");
}

pub fn makeModFeaturesStep(step: *std.Build.Step, _: std.Build.Step.MakeOptions) anyerror!void {
try makeModFeature(step, "rotation");
try makeModFeature(step, "gui/windows");
}

fn createLaunchConfig() !void {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ const main = @import("main");
const settings = main.settings;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = @import("../components/Button.zig");
const CheckBox = @import("../components/CheckBox.zig");
const ContinuousSlider = @import("../components/ContinuousSlider.zig");
const DiscreteSlider = @import("../components/DiscreteSlider.zig");
const VerticalList = @import("../components/VerticalList.zig");
const Button = gui.Button;
const CheckBox = gui.CheckBox;
const ContinuousSlider = gui.ContinuousSlider;
const DiscreteSlider = gui.DiscreteSlider;
const VerticalList = gui.VerticalList;

pub var window = GuiWindow{
.contentSize = Vec2f{128, 256},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ const main = @import("main");
const settings = main.settings;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = @import("../components/Button.zig");
const Label = @import("../components/Label.zig");
const TextInput = @import("../components/TextInput.zig");
const VerticalList = @import("../components/VerticalList.zig");
const Button = gui.Button;
const Label = gui.Label;
const TextInput = gui.TextInput;
const VerticalList = gui.VerticalList;

pub var window = GuiWindow{
.contentSize = Vec2f{128, 256},
Expand All @@ -32,7 +32,7 @@ fn apply(_: usize) void {

gui.closeWindowFromRef(&window);
if(oldName.len == 0) {
gui.openWindow("main");
gui.openWindow("cubyz:main");
}
}

Expand Down
6 changes: 3 additions & 3 deletions src/gui/windows/chat.zig → mods/cubyz/gui/windows/chat.zig
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ const std = @import("std");
const main = @import("main");
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = @import("../components/Button.zig");
const Button = gui.Button;
const Label = GuiComponent.Label;
const MutexComponent = GuiComponent.MutexComponent;
const TextInput = GuiComponent.TextInput;
const VerticalList = @import("../components/VerticalList.zig");
const VerticalList = gui.VerticalList;
const FixedSizeCircularBuffer = main.utils.FixedSizeCircularBuffer;

pub var window: GuiWindow = GuiWindow{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const ItemStack = main.items.ItemStack;
const Vec2f = main.vec.Vec2f;
const Texture = main.graphics.Texture;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = GuiComponent.Button;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ const std = @import("std");
const main = @import("main");
const Vec2f = main.vec.Vec2f;
const c = main.Window.c;
const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = @import("../components/Button.zig");
const CheckBox = @import("../components/CheckBox.zig");
const HorizontalList = @import("../components/HorizontalList.zig");
const Label = @import("../components/Label.zig");
const VerticalList = @import("../components/VerticalList.zig");
const ContinuousSlider = @import("../components/ContinuousSlider.zig");
const Button = gui.Button;
const CheckBox = gui.CheckBox;
const HorizontalList = gui.HorizontalList;
const Label = gui.Label;
const VerticalList = gui.VerticalList;
const ContinuousSlider = gui.ContinuousSlider;

pub var window = GuiWindow{
.contentSize = Vec2f{128, 192},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const Inventory = main.items.Inventory;
const Player = main.game.Player;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const TextInput = GuiComponent.TextInput;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const graphics = main.graphics;
const Texture = graphics.Texture;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiWindow = gui.GuiWindow;
const GuiComponent = gui.GuiComponent;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const Texture = graphics.Texture;
const Vec2f = main.vec.Vec2f;
const TaskType = main.utils.ThreadPool.TaskType;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiWindow = gui.GuiWindow;
const GuiComponent = gui.GuiComponent;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const Texture = graphics.Texture;
const network = main.network;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiWindow = gui.GuiWindow;
const GuiComponent = gui.GuiComponent;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const Texture = graphics.Texture;
const network = main.network;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiWindow = gui.GuiWindow;
const GuiComponent = gui.GuiComponent;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ const std = @import("std");
const main = @import("main");
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = @import("../components/Button.zig");
const Label = @import("../components/Label.zig");
const VerticalList = @import("../components/VerticalList.zig");
const Button = gui.Button;
const Label = gui.Label;
const VerticalList = gui.VerticalList;

pub var window = GuiWindow{
.contentSize = Vec2f{128, 256},
Expand All @@ -35,7 +35,7 @@ fn flawedDeleteWorld(name: []const u8) !void {
const path = std.mem.concat(main.stackAllocator.allocator, u8, &.{"saves/", name}) catch unreachable;
defer main.stackAllocator.free(path);
try main.files.cubyzDir().deleteTree(path);
gui.windowlist.save_selection.needsUpdate = true;
gui.getWindow("cubyz:save_selection").needsUpdate = true;
}

fn deleteWorld(_: usize) void {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ const files = main.files;
const settings = main.settings;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = @import("../components/Button.zig");
const CheckBox = @import("../components/CheckBox.zig");
const Label = @import("../components/Label.zig");
const VerticalList = @import("../components/VerticalList.zig");
const HorizontalList = @import("../components/HorizontalList.zig");
const Button = gui.Button;
const CheckBox = gui.CheckBox;
const Label = gui.Label;
const VerticalList = gui.VerticalList;
const HorizontalList = gui.HorizontalList;

pub var window = GuiWindow{
.contentSize = Vec2f{128, 64},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const draw = graphics.draw;
const Texture = graphics.Texture;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiWindow = gui.GuiWindow;
const GuiComponent = gui.GuiComponent;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ const settings = main.settings;
const Vec2f = main.vec.Vec2f;
const Texture = main.graphics.Texture;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiWindow = gui.GuiWindow;
const Label = @import("../components/Label.zig");
const VerticalList = @import("../components/VerticalList.zig");
const Button = @import("../components/Button.zig");
const Label = gui.Label;
const VerticalList = gui.VerticalList;
const Button = gui.Button;

var fileExplorerIcon: Texture = undefined;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const draw = graphics.draw;
const Texture = graphics.Texture;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiWindow = gui.GuiWindow;
const GuiComponent = gui.GuiComponent;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ const main = @import("main");
const settings = main.settings;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = @import("../components/Button.zig");
const CheckBox = @import("../components/CheckBox.zig");
const ContinuousSlider = @import("../components/ContinuousSlider.zig");
const DiscreteSlider = @import("../components/DiscreteSlider.zig");
const VerticalList = @import("../components/VerticalList.zig");
const Button = gui.Button;
const CheckBox = gui.CheckBox;
const ContinuousSlider = gui.ContinuousSlider;
const DiscreteSlider = gui.DiscreteSlider;
const VerticalList = gui.VerticalList;

pub var window = GuiWindow{
.contentSize = Vec2f{128, 256},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const draw = graphics.draw;
const Texture = graphics.Texture;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiWindow = gui.GuiWindow;
const GuiComponent = gui.GuiComponent;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const Player = main.game.Player;
const Vec2f = main.vec.Vec2f;
const Texture = main.graphics.Texture;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const HorizontalList = GuiComponent.HorizontalList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const ItemStack = main.items.ItemStack;
const Vec2f = main.vec.Vec2f;
const Texture = main.graphics.Texture;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = GuiComponent.Button;
Expand Down Expand Up @@ -45,7 +45,7 @@ pub fn onOpen() void {
// TODO: armor slots, backpack slot + stack-based backpack inventory, other items maybe?
{
const row = HorizontalList.init();
row.add(Button.initIcon(.{0, 0}, .{32, 32}, craftingIcon, true, gui.openWindowCallback("inventory_crafting")));
row.add(Button.initIcon(.{0, 0}, .{32, 32}, craftingIcon, true, gui.openWindowCallback("cubyz:inventory_crafting")));
list.add(row);
}
for(0..2) |y| {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const Player = main.game.Player;
const Texture = main.graphics.Texture;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = GuiComponent.Button;
Expand Down
14 changes: 7 additions & 7 deletions src/gui/windows/invite.zig → mods/cubyz/gui/windows/invite.zig
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ const ConnectionManager = main.network.ConnectionManager;
const settings = main.settings;
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = @import("../components/Button.zig");
const CheckBox = @import("../components/CheckBox.zig");
const Label = @import("../components/Label.zig");
const TextInput = @import("../components/TextInput.zig");
const VerticalList = @import("../components/VerticalList.zig");
const Button = gui.Button;
const CheckBox = gui.CheckBox;
const Label = gui.Label;
const TextInput = gui.TextInput;
const VerticalList = gui.VerticalList;

pub var window = GuiWindow{
.contentSize = Vec2f{128, 256},
Expand Down Expand Up @@ -73,7 +73,7 @@ pub fn onOpen() void {
ipAddressEntry = TextInput.init(.{0, 0}, width, 32, settings.lastUsedIPAddress, .{.callback = &invite}, .{});
list.add(ipAddressEntry);
list.add(Button.initText(.{0, 0}, 100, "Invite", .{.callback = &invite}));
list.add(Button.initText(.{0, 0}, 100, "Manage Players", gui.openWindowCallback("manage_players")));
list.add(Button.initText(.{0, 0}, 100, "Manage Players", gui.openWindowCallback("cubyz:manage_players")));
list.add(CheckBox.init(.{0, 0}, width, "Allow anyone to join (requires a publicly visible IP address+port which may need some configuration in your router)", main.server.connectionManager.allowNewConnections.load(.monotonic), &makePublic));
list.finish(.center);
window.rootComponent = list.toComponent();
Expand Down
12 changes: 6 additions & 6 deletions src/gui/windows/main.zig → mods/cubyz/gui/windows/main.zig
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ const std = @import("std");
const main = @import("main");
const Vec2f = main.vec.Vec2f;

const gui = @import("../gui.zig");
const gui = main.gui;
const GuiComponent = gui.GuiComponent;
const GuiWindow = gui.GuiWindow;
const Button = @import("../components/Button.zig");
const VerticalList = @import("../components/VerticalList.zig");
const Button = gui.Button;
const VerticalList = gui.VerticalList;

pub var window = GuiWindow{
.contentSize = Vec2f{128, 256},
Expand All @@ -21,9 +21,9 @@ fn exitGame(_: usize) void {
}
pub fn onOpen() void {
const list = VerticalList.init(.{padding, 16 + padding}, 300, 16);
list.add(Button.initText(.{0, 0}, 128, "Singleplayer", gui.openWindowCallback("save_selection")));
list.add(Button.initText(.{0, 0}, 128, "Multiplayer", gui.openWindowCallback("multiplayer")));
list.add(Button.initText(.{0, 0}, 128, "Settings", gui.openWindowCallback("settings")));
list.add(Button.initText(.{0, 0}, 128, "Singleplayer", gui.openWindowCallback("cubyz:save_selection")));
list.add(Button.initText(.{0, 0}, 128, "Multiplayer", gui.openWindowCallback("cubyz:multiplayer")));
list.add(Button.initText(.{0, 0}, 128, "Settings", gui.openWindowCallback("cubyz:settings")));
list.add(Button.initText(.{0, 0}, 128, "Touch Grass", .{.callback = &exitGame}));
list.finish(.center);
window.rootComponent = list.toComponent();
Expand Down
Loading