Skip to content

Commit c25769f

Browse files
authored
Merge pull request #5 from BlackMATov/dev
Dev
2 parents d727476 + b7496bd commit c25769f

9 files changed

Lines changed: 1034 additions & 770 deletions

File tree

README.md

Lines changed: 29 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -115,49 +115,37 @@ debug_mode :: boolean -> ()
115115
collect_garbage :: ()
116116
```
117117

118-
## Builders
118+
## Builder
119119

120120
```
121-
entity :: entity_builder
122-
entity_builder:set :: fragment, component -> entity_builder
123-
entity_builder:build :: entity
124-
```
125-
126-
```
127-
fragment :: fragment_builder
128-
fragment_builder:tag :: fragment_builder
129-
fragment_builder:name :: string -> fragment_builder
130-
fragment_builder:single :: component -> fragment_builder
131-
fragment_builder:default :: component -> fragment_builder
132-
fragment_builder:duplicate :: {component -> component} -> fragment_builder
133-
fragment_builder:on_set :: {entity, fragment, component, component?} -> fragment_builder
134-
fragment_builder:on_assign :: {entity, fragment, component, component} -> fragment_builder
135-
fragment_builder:on_insert :: {entity, fragment, component} -> fragment_builder
136-
fragment_builder:on_remove :: {entity, fragment} -> fragment_builder
137-
fragment_builder:destroy_policy :: id -> fragment_builder
138-
fragment_builder:build :: fragment
139-
```
140-
141-
```
142-
query :: query_builder
143-
query_builder:name :: string -> query_builder
144-
query_builder:single :: component -> query_builder
145-
query_builder:include :: fragment... -> query_builder
146-
query_builder:exclude :: fragment... -> query_builder
147-
query_builder:build :: query
148-
```
149-
150-
```
151-
system :: system_builder
152-
system_builder:name :: string -> system_builder
153-
system_builder:single :: component -> system_builder
154-
system_builder:group :: system -> system_builder
155-
system_builder:query :: query -> system_builder
156-
system_builder:execute :: {chunk, entity[], integer} -> system_builder
157-
system_builder:prologue :: {} -> system_builder
158-
system_builder:epilogue :: {} -> system_builder
159-
system_builder:disabled :: system_builder
160-
system_builder:build :: system
121+
builder :: builder
122+
builder:has :: fragment -> boolean
123+
builder:has_all :: fragment... -> boolean
124+
builder:has_any :: fragment... -> boolean
125+
builder:get :: fragment... -> component...
126+
builder:set :: fragment, component -> builder
127+
builder:remove :: fragment... -> builder
128+
builder:clear :: builder
129+
builder:tag :: builder
130+
builder:name :: string -> builder
131+
builder:prefab :: entity -> builder
132+
builder:single :: component -> builder
133+
builder:default :: component -> builder
134+
builder:duplicate :: {component -> component} -> builder
135+
builder:include :: fragment... -> builder
136+
builder:exclude :: fragment... -> builder
137+
builder:on_set :: {entity, fragment, component, component?} -> builder
138+
builder:on_assign :: {entity, fragment, component, component} -> builder
139+
builder:on_insert :: {entity, fragment, component} -> builder
140+
builder:on_remove :: {entity, fragment} -> builder
141+
builder:group :: system -> builder
142+
builder:query :: query -> builder
143+
builder:execute :: {chunk, entity[], integer} -> builder
144+
builder:prologue :: {} -> builder
145+
builder:epilogue :: {} -> builder
146+
builder:disabled :: builder
147+
builder:destroy_policy :: id -> builder
148+
builder:build :: boolean -> entity
161149
```
162150

163151
## [License (MIT)](./LICENSE.md)

ROADMAP.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Backlog
44

55
- builders should be rewritten :/
6+
- add PREFAB entity trait
67
- is/has_all/any for lists?
78

89
## After first release

develop/example.lua

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
local evo = require 'evolved'
44

5+
evo.debug_mode(true)
6+
57
---@class evolved.vector2
68
---@field x number
79
---@field y number
@@ -16,41 +18,41 @@ local function vector2(x, y)
1618
end
1719

1820
local groups = {
19-
awake = evo.system():build(),
20-
physics = evo.system():build(),
21-
graphics = evo.system():build(),
22-
shutdown = evo.system():build(),
21+
awake = evo.builder():build(),
22+
physics = evo.builder():build(),
23+
graphics = evo.builder():build(),
24+
shutdown = evo.builder():build(),
2325
}
2426

2527
local singles = {
26-
delta_time = evo.fragment():single(0.016):build(),
27-
physics_gravity = evo.fragment():single(vector2(0, 9.81)):build(),
28+
delta_time = evo.builder():single(0.016):build(),
29+
physics_gravity = evo.builder():single(vector2(0, 9.81)):build(),
2830
}
2931

3032
local fragments = {
31-
force = evo.fragment():build(),
32-
position = evo.fragment():build(),
33-
velocity = evo.fragment():build(),
33+
force = evo.builder():build(),
34+
position = evo.builder():build(),
35+
velocity = evo.builder():build(),
3436
}
3537

3638
local queries = {
37-
physics_bodies = evo.query()
39+
physics_bodies = evo.builder()
3840
:include(fragments.force, fragments.position, fragments.velocity)
3941
:build(),
4042
}
4143

42-
local awake_system = evo.system()
44+
local awake_system = evo.builder()
4345
:group(groups.awake)
4446
:prologue(function()
4547
print '-= | Awake | =-'
46-
evo.entity()
48+
evo.builder()
4749
:set(fragments.force, vector2(0, 0))
4850
:set(fragments.position, vector2(0, 0))
4951
:set(fragments.velocity, vector2(0, 0))
5052
:build()
5153
end):build()
5254

53-
local integrate_forces_system = evo.system()
55+
local integrate_forces_system = evo.builder()
5456
:group(groups.physics)
5557
:query(queries.physics_bodies)
5658
:execute(function(chunk, entities, entity_count)
@@ -71,7 +73,7 @@ local integrate_forces_system = evo.system()
7173
end
7274
end):build()
7375

74-
local integrate_velocities_system = evo.system()
76+
local integrate_velocities_system = evo.builder()
7577
:group(groups.physics)
7678
:query(queries.physics_bodies)
7779
:execute(function(chunk, entities, entity_count)
@@ -94,7 +96,7 @@ local integrate_velocities_system = evo.system()
9496
end
9597
end):build()
9698

97-
local graphics_system = evo.system()
99+
local graphics_system = evo.builder()
98100
:group(groups.graphics)
99101
:query(queries.physics_bodies)
100102
:execute(function(chunk, entities, entity_count)
@@ -111,7 +113,7 @@ local graphics_system = evo.system()
111113
end
112114
end):build()
113115

114-
local shutdown_system = evo.system()
116+
local shutdown_system = evo.builder()
115117
:group(groups.shutdown)
116118
:epilogue(function()
117119
print '-= | Shutdown | =-'

develop/fuzzing/batch_destroy_fuzz.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ end
8181

8282
do
8383
local r = math.random(1, 2)
84-
local q = evo.query():include(__table_unpack(destroying_include_list)):build()
84+
local q = evo.builder():include(__table_unpack(destroying_include_list)):build()
8585

8686
if r == 1 then
8787
evo.batch_destroy(q)
@@ -98,7 +98,7 @@ end
9898
---
9999
---
100100

101-
local all_chunk_query = evo.query():build()
101+
local all_chunk_query = evo.builder():build()
102102

103103
for chunk in evo.execute(all_chunk_query) do
104104
assert(not evo.has_any(chunk, __table_unpack(should_be_destroyed_entity_list)))

develop/fuzzing/destroy_fuzz.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ end
102102
---
103103
---
104104

105-
local all_chunk_query = evo.query():build()
105+
local all_chunk_query = evo.builder():build()
106106

107107
for chunk in evo.execute(all_chunk_query) do
108108
assert(not evo.has_any(chunk, __table_unpack(destroying_entity_list)))

develop/unbench.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ basics.unload 'evolved'
44
local evo = require 'evolved'
55

66
local N = 1000
7-
local B = evo.entity()
7+
local B = evo.builder()
88
local F1, F2, F3, F4, F5 = evo.id(5)
9-
local Q1 = evo.query():include(F1):build()
9+
local Q1 = evo.builder():include(F1):build()
1010

1111
print '----------------------------------------'
1212

0 commit comments

Comments
 (0)