Skip to content

Commit 943f6ea

Browse files
committed
separate unique/explicit traits instead hidden
1 parent 4632a61 commit 943f6ea

6 files changed

Lines changed: 160 additions & 45 deletions

File tree

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ TAG :: fragment
3131
NAME :: fragment
3232
PREFAB :: fragment
3333
34-
HIDDEN :: fragment
34+
UNIQUE :: fragment
35+
EXPLICIT :: fragment
36+
3537
DEFAULT :: fragment
3638
DUPLICATE :: fragment
3739

develop/all.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,7 @@ print '----------------------------------------'
99
basics.describe_fuzz 'develop.fuzzing.destroy_fuzz'
1010
print '----------------------------------------'
1111
basics.describe_fuzz 'develop.fuzzing.batch_destroy_fuzz'
12+
print '----------------------------------------'
13+
basics.describe_fuzz 'develop.fuzzing.explicit_fuzz'
14+
print '----------------------------------------'
15+
basics.describe_fuzz 'develop.fuzzing.unique_fuzz'
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ for _, entity in ipairs(all_entity_list) do
3333
end
3434

3535
if math.random(1, 5) == 1 then
36-
evo.set(entity, evo.HIDDEN)
36+
evo.set(entity, evo.EXPLICIT)
3737
end
3838
end
3939

@@ -64,7 +64,7 @@ for _ = 1, 100 do
6464
local fragment_list, fragment_count = chunk:fragments()
6565
for i = 1, fragment_count do
6666
local fragment = fragment_list[i]
67-
assert(include_set[fragment] or not evo.has(fragment, evo.HIDDEN))
67+
assert(include_set[fragment] or not evo.has(fragment, evo.EXPLICIT))
6868
end
6969
end
7070

develop/fuzzing/unique_fuzz.lua

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
local evo = require 'evolved'
2+
3+
evo.debug_mode(true)
4+
5+
---
6+
---
7+
---
8+
---
9+
---
10+
11+
local __table_unpack = (function()
12+
---@diagnostic disable-next-line: deprecated
13+
return table.unpack or unpack
14+
end)()
15+
16+
---
17+
---
18+
---
19+
---
20+
---
21+
22+
local all_entity_list = {} ---@type evolved.entity[]
23+
24+
for i = 1, math.random(1, 10) do
25+
local entity = evo.id()
26+
all_entity_list[i] = entity
27+
end
28+
29+
for _, entity in ipairs(all_entity_list) do
30+
for _ = 0, math.random(0, #all_entity_list) do
31+
local fragment = all_entity_list[math.random(1, #all_entity_list)]
32+
evo.set(entity, fragment)
33+
end
34+
35+
if math.random(1, 5) == 1 then
36+
evo.set(entity, evo.UNIQUE)
37+
end
38+
end
39+
40+
---
41+
---
42+
---
43+
---
44+
---
45+
46+
for _, entity in ipairs(all_entity_list) do
47+
local entity_clone = evo.clone(entity)
48+
49+
for fragment in evo.each(entity_clone) do
50+
assert(not evo.has(fragment, evo.UNIQUE))
51+
end
52+
53+
for fragment in evo.each(entity) do
54+
assert(evo.has(entity_clone, fragment) or evo.has(fragment, evo.UNIQUE))
55+
end
56+
57+
evo.destroy(entity_clone)
58+
end
59+
60+
---
61+
---
62+
---
63+
---
64+
---
65+
66+
evo.destroy(__table_unpack(all_entity_list))
67+
evo.collect_garbage()

develop/untests.lua

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6160,8 +6160,8 @@ end
61606160
do
61616161
local f1, f2, f3 = evo.id(3)
61626162

6163-
evo.set(f2, evo.HIDDEN)
6164-
evo.set(f3, evo.HIDDEN)
6163+
evo.set(f2, evo.UNIQUE)
6164+
evo.set(f3, evo.UNIQUE)
61656165

61666166
do
61676167
local p = evo.spawn { [f1] = 11, [f2] = 22 }
@@ -6239,7 +6239,7 @@ end
62396239
do
62406240
local f1, f2, f3 = evo.id(3)
62416241

6242-
evo.set(f2, evo.HIDDEN)
6242+
evo.set(f2, evo.UNIQUE)
62436243

62446244
do
62456245
local p = evo.spawn { [f1] = 11, [f2] = 22, [f3] = 33 }
@@ -6275,7 +6275,7 @@ do
62756275

62766276
for c in evo.execute(q) do
62776277
local fs, fc = c:fragments()
6278-
for i = 1, fc do assert(not evo.has(fs[i], evo.HIDDEN)) end
6278+
for i = 1, fc do assert(not evo.has(fs[i], evo.EXPLICIT)) end
62796279
end
62806280
end
62816281

@@ -6284,15 +6284,15 @@ do
62846284

62856285
for c in evo.execute(q) do
62866286
local fs, fc = c:fragments()
6287-
for i = 1, fc do assert(not evo.has(fs[i], evo.HIDDEN)) end
6287+
for i = 1, fc do assert(not evo.has(fs[i], evo.EXPLICIT)) end
62886288
end
62896289
end
62906290
end
62916291

62926292
do
62936293
local f1, f2 = evo.id(2)
62946294

6295-
evo.set(f2, evo.HIDDEN)
6295+
evo.set(f2, evo.EXPLICIT)
62966296

62976297
local e1 = evo.builder():set(f1, 11):spawn()
62986298
local e2 = evo.builder():set(f1, 11):set(f2, 22):spawn()

0 commit comments

Comments
 (0)