-
Notifications
You must be signed in to change notification settings - Fork 12
/
todo.txt
458 lines (339 loc) · 16 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
-
ungreg the greg
custom hotbar - mode where hands unlinked
maybe shift chest positioning shenanigans into metaGUI itself
Stardust UI rumblings 2024 {
paneLayer="hud", dismissable=false
custom full UI since displayRegisteredPane exists to do the buttons' job
autohide stuff??
custom layout - theme dependent? configurable??
radial menu on holding r - doing what? do we want to venture away from the vanilla essential slot setup??
- - -
create a functional inventory replacement first!!
can puppet around a {0, 0} sized inventory pane as an origin for openWithInventory panes
hotbar slot indicator
sort button
techs?
pet stats??
- AUGMENT APPLICATION!!!
armor slot glyphs
burn sfx on overwriting an item in trash slot
right-click equipment on?
toggle: auto tab switch
have it only switch when first picking up an item (e.g. when swapslotitem's name changes)
eventually, figure out the smol oddness with nanofield head/leg slots
costumes still display base body for some reason
convert both inventory and hudengine to task lib
update rate optimizations
give metagui an eventhook dispatch for container/openWithInventory opening?
figure out how to force item tool tip refresh, especially after augment
}
- do mouse events happen before or after update()?? if after then we don't get startEvent immediately which is maybe kind of a problem??
mouse events are before update, also startevent manually resumes immediately; do we want to normalize events started from input events??
add integration info to startech part of readme (generators, autosmelter)
metaGUI tinkering 2023 {
> slider widget {
- actual assets
theme assets {
- Chroma
Carbon
x FU
}
- better buffer width sync magic
fixed number of decimal digits depending on range/granularity
scrollwheel step heuristic for step=0?
ADD TO DOCS
}
table layout?? or some manner of syncing label widths
layout variables!! {
dictionary in stuff, address variables by string "@@varname"
"$$varname"?
any type, not copied if a table (so you can technically pass an empty table to something for it to use as a shared pool/handle)
}
button right click option
> RESIZING SUPPORT {
theme resize thumbs {
/ Starbound
- Carbon
}
}
style value that doesn't call decorate
shouldDrawFrame I guess??
findWindowPosition shortcut for anchored windows
use input table for cursor position where available for added stability?
player-local "clipboard" support that gets used if there's no extension
OSB button sound path
}
hm... codex tracking I guess
HUD Manager {
- eventhook library
refactor current HUD stuff into hudmanager using said eventhook
figure out how to handle extensibility?
do the marking thing in pulseweapon too
}
> Beta v0.1.6 {
LOAD ON DEMAND FOR TERMINAL
^ keep visible item slot rows only
implement container hooking for update limiting
pulse rifle {
use bounding box center?
}
do I want to slip in a smelting recipe for slime?
nanofield wall jump
export bus {
precache items passing filter match
pick one item at a time
get signals on item entry created or removed (batch on next tick?)
copy display cache as array on first load, sort by count to pick next item??
hmm,
}
HUDs!! {
player generic script
can install to?? metatable crap? or just module scripts loaded in
}
} content update(s) {
get Pulse Knuckles to a good usable state
dynItemAnim: lights
(mention dynItemAnim in changelog)
pulse grapple? instant link, steady force in direction of point
pauses elytra thrust
pulse siphon - device that can pull energy from (specific) players
- pulsestrike glaive: charge much faster if buffered after combo finisher
} big things to do by Milestone 2 {
!!! metaGUI passive keysub {
can focus canvas then delete to capture without intercepting (FROM OTHER GAMEPLAY)
this will still block input to other panes!!
share passive keysub between all panes, whether requesting or not
notify all panes when click focus changed?? need to pass escape event to active pane!
UI flag to only spawn if something needs it so as to prevent unnecessary input blocking for other things
}
THREAT GENERATION SYSTEM {
self.board:getList("targets")
}
X metaGUI shift+click item tracking { shift clicking doesn't pick up from inventory with no container open >:|
keep track of cursor item every frame
store tracking globally
bookkeeping function as part of mg
}
attempt to provide non-StarExtensions multi-wheel
text box selections
(adjust cut/copy/paste!)
multiline text boxes?
eliminate ninepatch overlapping when too small (clamp areas to half render size)
stock icon system w/ manifest so themes can override
metaGUI-powered docs system
store multiple EPPs within augpack for quick swapping
option to always show beacon and enemy radar (deployment)
add some logging stuff to drive rectification
} and unspecified {
modules system for nanofield so other mods can add their own things
nanofield stats to implement {
- powerCapacity
- elytra damage bonus
elytra boost speed multiplier?
}
visual effects status for essentia booster?
toggle nodes (use canDeselect)
probably show item costs regardless of whether you have a path to a node
maybe also fixed costs
reset catalyst (how should this work...?)
probably some refund of AP from already-catalyst'd items?
better power generation, especially when Fenthes are considered
have batteries tick slower when not at full utilization
maybe revamp drive bay to use checkSync
}
balance notes {
}
the BIG IDEA UPDATE {
backend stuff {
? metaGUI module system (requires some slight reworks) {
container layout, immediately containing module UI
script loaded just before containing UI
... nesting?
need to make it possible for named stuff to place its proxy elsewhere...?
actually, needs to be basically a widget subclass in order to have multiple of the same module?
}
maybe some way to plonk widgets into the title bar
particularly, a function to turn the icon into an item slot
channeled universal communications {
explicit join protocol
public (msg board) and direct message queues
distinction between pub and all
abstract into event based things?
packet types of join, leave, update and message
public and connection datastores
pub can be pathed-updated
query as array
}
}
dialogue tree system {
metagui, fixed window; can intercept escape due to how keyboard capture works
dialogue is just lua coroutines
informal function call syntax makes a lot of sense for this
"accumulator" with active word wrap, processed on addition?
choice system, responds both to mouse and keyboard; option to have last choice as "default no" (escape)
letter-by-letter display is just part of the coroutine workings
customizable name heading, portrait display, talkboops
automatic paging
by default, automatic spacing between puts ("word array"-ish mechanics)
all spacing and newlines autocollapsed to a single space; explicit newline tag
specialized wait command that skips over if in "rush mode" {
triggered by hitting escape during display *or* at page wait
instant display until page
}
}
complete pulse equipment rework {
reset catalyst refunds everything invested into an item's progression
is AP gifting a bug or a feature?
maybe heat rises faster when pulling against gravity in elytra?
swappable spheres
}
eidolon hunting {
something you can build at endgame to enable queuing (within the same map)? can build lobbies on mp servers
huge, ancient crystalline constructs, maybe Aetheri-related?
scales independently of tier system, drops a lot of AP and components for things (Kinetic Field Cores anyone?)
unlimited elytra flight in atmosphere gated behind your first few eidolons (or at least someone's)
}
more pulse weapons! {
warblades
pulse rifle
shardstorm
flux knives
pulse chakram similar to razorwave
}
}
old - for (maybe not) next update {
...
} then {
give the glaive a light source paired with energy
proper tool tip for fp-containing objects
} then {
customizable elements for pulse weapons (via configurator)
give Pulsestrike Glaive a secondary that isn't just the combo finisher
maybe an alt finisher to main fire combo if buffered during?
rework phase drill to be tiered and also maybe a dynitem
}
? hook engine {
included by replaced util.lua
hijacks the first setting of _ENV.init to hook into core tables (widget, player etc.)
}
! TRADING SYSTEM {
part of stardustlib; basically Path of Exile's trade UI
quickbar button puts an item in cursor; clicking on a player prompts them to accept/reject trade, via playerext
right click dismisses without trading, and emits a sound effect to the player (might need UI shenanigans for local sfx?)
cursor item should make it look like a trade-icon cursor, if that's achievable
on (unexpected) uninit, spawn a stagehand at player position that lasts for ~.5sec and deletes cursor item from anywhere it can find
(consume item drops, consume from containers within reach, consume from player inventory)
}
sb.jsonQuery exists, adjust itemutil.property?
turn the liquid accumulator (phase drill, excavate) into a prefab
configurable tram stop {
built-in player sensor
}
reserve material ID range somewhere
semigloss black hull panel
x BYOS functionality as machine { // probably incompatible with FU's version
damageTileArea with ridiculously high strength and harvest level and radius big enough to cover a t8 vanilla ship from one end, in both fg and bg
itemDropQuery and collect into database
upgrade player ship to custom tier to get rid of bg image and collision material
force-kill objects set "residual" by Hacking them and using object.smash
}
patch warp state matching into encounter variations of booster flames (/objects/ship/boosters/)
add distinguishing names to even/odd small booster flames
lots of shiny new ship components, especially animating ones that match their state to flight {
warp cores should count as FU ones, if possible
}
move tag patches to stardustlib and add some more {
"component", "material" etc.
}
power stuffs {
Resonite Reactor!
fluxsaber - fluxpulse-charged beamsword, high combo potential especially when wearing nanofield or other control tech
pulse rifle - hitscan machine gun with shotgun secondary
vector rifle - railgun sniper with mechanics similar to Splatoon's chargers or Warframe's Ferrox
artemis bow - bouncy ray a la the shadowbeam staff from Terraria
powered lamp that fills a large region with full-bright light (basically volumetric lighting at the cost of fp)
^ local animator.
more smelter-type machines
^ chance bias stat (inverse exponent to random number)
prefix and move power categories to stardustlib?
eventually make transmatter network require power (after rewrite)
^ why? just because AE did it??
}
compost bin that makes food age faster, for use as biofuel
^ some sort of powered processor to make (liquid) biodiesel?
renamer (custom shortdescription, put vanilla one as category because tooltip)
some item transport for automation (and library to make use of input/output configuration)
networked wire I/O ports
metaGUI {
eventually {
icon support for buttons
debug console pane via common-table
rework preferredSize to take both a width and a height?
keyboard layouts...
it's technically possible to use metatable shenanigans to have the pane script survive a f8 reload?
}
}
ipc lib {
weakly-keyed by _ENV for automatic cleanup
}
Extend sync library {
//Recognize RpcPromise returning another RpcPromise and replace in queue
actually, response system with a proper response-message instead of just an RpcPromise
generate responseID with makeuuid? register with an anonymous function for continuation of operation after response
coroutine-based things? ...
fixed sync registry (register callback ahead of time; optional automatic timer)
}
Fenthes species {
base spritework on updated Zia costume
starts with nanofield w/ rcs pack (damaged?) and choice of pulse weapon (a la pokemon starters)
doesn't interact with vanilla story because was never a Protector
intro scenario {
starts on a shared ship on an asteroid mining mission
interact with weapon rack to pick starter weapon
ship is destroyed by a Leviathan-type Eidolon en route to target
player must navigate a debris field via rcs pack to get to a workable engine, fighting off Eidolon-spawn in the process
ends up on essentially a debris platform with an engine strapped on as your starting ship (native BYOS)
}
}
Aetheri species mod {
Androgynous, fullbright "core" (novakid male minus chest definition, with Avian-ish talons) with crystalline plates on top
(part of innate armor); hue and brightness sliders for core, fine-grained control over what plates you have
AP sharing?
"aether channeling" for particular weapon types (back up energy bar using aether when wielding specific weapon types)
figure out crit conditions for innates other than sniper
actually put crit multiplier somewhere on the tree
crit rate (multiplier on base chance, bonus timing length etc.)
make flight in air use aether; place behind unlock, add efficiency stat
Innates {
! standardize on a separate tag (energyColor?) for replace directives
Kinetic Burst {
refine secondary, place after unlock?
different secondary in water and zero-g?
}
Sniper Shot {
give it a final name!
figure out a secondary; overheat shot?
}
Shatterflurry? Shredflurry? rapid fire spread salvo similar to Terraria's Crystal Storm
Fireball
Charge Cannon (roughly mega man X style; secondary could be a melee attack?)
PUNCHY PUNCH
Shield Spheres {
kind of like magnorbs meets Mega Man shield weapons (or Mei's tears from that BoI:A+ mod)
primary to fire them off, secondary to make them spin faster and deflect projectiles
maybe always active with knockback but not damage? takes yeeting them off to actually dps
}
Artemis Bow - both single (piercing?) and spread shots
Shatterpulse - wide radial pulse that cuts armor down but doesn't do much damage
}
Skill tree {
"node keys" (catalysts?) dropped rarely by mobs depending on level, used as gate costs
use a vault key to gate off some lategame clusters
item for refunding nodes (stone of reattunement?)
}
Hunger system {
Stat locked so that food doesn't replenish; instead, it's based on exposure to the stars
Regenerates in about a minute when exposed to sun or starlight; 2-3x faster while on ship
}
}