58 lines
1.4 KiB
Zig
58 lines
1.4 KiB
Zig
data: core.GameObjectData = undefined,
|
|
entity: core.Entity,
|
|
|
|
pub const SpawnOptions: extras.ObjectSpawner.Options = .{
|
|
.absoluteSpawnposition = true,
|
|
};
|
|
|
|
const assetReferences = [_]assets.AssetImportReference{
|
|
assets.MakeImportRefOptions(
|
|
"Mesh",
|
|
"m_empire",
|
|
.{ .path = "meshes/lost_empire.obj" },
|
|
),
|
|
assets.MakeImportRefOptions(
|
|
"Texture",
|
|
"t_empire",
|
|
.{ .path = "textures/lost_empire-RGBA.png" },
|
|
),
|
|
};
|
|
|
|
pub var assetsLoaded: bool = false;
|
|
|
|
pub fn create(alloc: std.mem.Allocator) !*@This() {
|
|
const self = try alloc.create(@This());
|
|
|
|
if (!assetsLoaded) {
|
|
try assets.loadList(assetReferences);
|
|
assetsLoaded = true;
|
|
}
|
|
|
|
const lostEmpire = try core.createEntity();
|
|
const scene = lostEmpire.addComponent(core.Scene).?;
|
|
scene.setPosition(.{ .y = -20 });
|
|
const empireMesh = lostEmpire.addComponent(rend.MeshComponent).?;
|
|
empireMesh.setMesh("m_empire");
|
|
empireMesh.setTexture("t_empire");
|
|
|
|
self.entity = lostEmpire;
|
|
|
|
return self;
|
|
}
|
|
|
|
pub fn getEntity(self: *@This()) core.Entity {
|
|
return self.entity;
|
|
}
|
|
|
|
pub fn destroy(self: *@This()) void {
|
|
self.entity.destroy();
|
|
self.data.release(self);
|
|
}
|
|
|
|
const backlog = @import("Backlog");
|
|
const std = @import("std");
|
|
const rend = backlog.rend;
|
|
const core = backlog.core;
|
|
const assets = backlog.assets;
|
|
const extras = @import("gameExtras");
|