added register and get

master
RedStealthDev 10 months ago
parent b93bc32d44
commit c5ca08a610

@ -40,8 +40,22 @@ pub fn GetSignature(entity: Etyp.entity) Etyp.signature {
return Signatures[entity]; return Signatures[entity];
} }
//Component Manager //Component Manager variables
pub fn RegisterComponent() void { const ComponentTypeList: std.StringArrayHashMap(Etyp.Component) = std.StringArrayHashMap(Etyp.Component);
const ComponentArrays: std.StringArrayHashMap(Etyp.ComponentArray) = std.StringArrayHashMap(Etyp.ComponentArray);
var NextComponent: Etyp.Component = 0;
//component manager
pub fn RegisterComponent(in: type) void {
var name = @typeName(in);
ComponentTypeList.put(name, NextComponent);
ComponentArrays.put(name, ComponentArrays{});
}
fn GetComponentArray(in: type) Etyp.ComponentArray {
return ComponentArrays[@typeName(in)];
} }

@ -16,7 +16,7 @@ pub const Signature = std.bit_set.IntegerBitSet(MAXComponents);
//Component array type //Component array type
const ComponentArray = struct { pub const ComponentArray = struct {
Components: [MAXEntitys]type, Components: [MAXEntitys]type,
Entity2Array: [usize]Entity, Entity2Array: [usize]Entity,
Array2Entity: [Entity]usize, Array2Entity: [Entity]usize,

Loading…
Cancel
Save