nodecore-cd2025/docs/issues-code.txt

144 lines
5.8 KiB
Plaintext
Raw Normal View History

========================================================================
ISSUES-CODE: Issues related to code quality and APIs
------------------------------------------------------------------------
#### ##### #### # # ###### ##### ####
# # # # # # # # # # #
#### # # # # # # ##### # # ####
# ##### # # # # # ##### #
# # # # # # # # # # # #
#### # #### # ###### ###### # # ####
- Unify Player API
- Because nc_player_setup is currently expensive.
- Combine existing globalsteps, wrap with metadata to do one
set of set_properties, physics, anim, etc calls at the end.
- All perplayer globalsteps maybe?
- Skybox, sunlight
- Physics, zoom, run speed
- Visuals, anims
- Move step hook into API layer
- Use prio system like recipes/mapgen_shared for moddability
- Reorg nc_player_* mods, simplify?
- Continue to chisel away at ABM perf issues.
- Simplify or optimize existing ABMs
- Convert things to DNTs.
2020-05-29 09:20:40 -04:00
2020-06-20 10:45:44 -04:00
- Some time-integral processes are not resetting when prereqs removed
- Cooking resumes instead of resetting when fire removed.
- Leaching resumes instead of resetting when water removed.
2020-05-29 09:20:40 -04:00
- Deprecation warnings for get_connected_players() at mod load time:
(at /config/.minetest/games/nodecore/mods/nc_envsound/init.lua:52)
(at /config/.minetest/games/nodecore/mods/nc_lux/radiation.lua:85)
(at /config/.minetest/games/nodecore/mods/nc_lux/react.lua:60)
(at ...fig/.minetest/games/nodecore/mods/nc_api_active/aism.lua:93)
(at ...fig/.minetest/games/nodecore/mods/nc_player_sky/init.lua:52)
(at ...inetest/games/nodecore/mods/nc_player_health/radiant.lua:61)
- Deprecation checks:
- get_connected_players() at loadtime
- old version of set_sky()
2020-06-20 10:45:44 -04:00
- Look for set_sun() to determine if new set_sky available?
- ...or wait for pre-5.2 deprecation
2020-05-29 09:20:40 -04:00
- Take advantage of the fact that players/inventories use a single shared
metatable for player inventory arrangement hooks in nc_player_pickup,
like we did for entity:set_properties.
2020-06-20 10:45:44 -04:00
- Currently inv pickup logic isn't working and we're relying on
rearrangement; need to resolve this one way or another.
2020-05-29 09:20:40 -04:00
- Make leaf decay group-driven for mod applicability.
- Switch some extended attributes to first-class support instead of modifying
definition at registration time.
- e.g. drop_in_place should hook the engine's dig event instead of
registering an on_dig on the node, so inheritance works.
- Add a nodecore.inherit_node() helper that registers a node as a
modified copy of another definition, e.g. for planted eggcorns copying
dirt, door panels copying original materials, etc.
- Add an on_falling_check handler to replace check_single_for_falling custom
hook in writing, and possibly other places.
- Hint System Refactor
- Move stats into an api layer to ensure availability.
- Simplify stats, track less detail, limit data growth.
- Break up hints into each individual mod.
- Add shortcuts for hint registrations, e.g. integrated with recipes.
- Should we create "recipe groups" to make it easier to specify
equivalent recipes for hint purposes?
- Item ent merge should use logic consistent with nodecore.stack_merge,
which handles item families.
2020-01-19 17:44:33 -05:00
- Need to find a way to make AISMs work with falling_node.
- Create ItemStack, run hooks, try to convert back to node
(assume node and item meta map 1:1) and if it fails then
spawn an item_ent.
- Need this for amalgamation remelting.
- Would it make sense to unify the item and falling_node ents?
2020-03-20 07:27:06 -04:00
- NodeCore Spreading ABM API
- Eligibility check
- Time cumulative process like soaking
- Push excess to adjacent nodes if eligible
- Don't trigger immediately; wait for next cycle
- API for map-seed-deterministic scatter.
- Given minp, maxp, seed and density, find all positions.
- Use for sponges, lava/water springs, etc.
2020-01-10 21:11:52 -05:00
- Replacement for mkreg, a.k.a. register_generic():
- Allow lazy registration, i.e. a register method that can
register for things not yet defined, and allow later registration
of the registration definition that will pick up those missed.
- Allow unregistering things...?
2020-01-19 17:44:33 -05:00
- Unify sponge growth logic so it can be used for mapgen, to ensure
that spawned sponges match naturally-grown ones?
- Easier recipe API:
- Use ascii art like ezschematic?
- Aliases like "sides"/"corners"?
- Make 3x3 recipes easier to define.
- Standardize visinv access API
- stack_access(pos, node, dirfrom) - return booly
whether access to inside stack is allowed.
- Use for shelf API.
- Use for touchtips inv access.
- Genericize sponge logic using stack_access API
- Wandering fluids API for concrete, glass?
- Configurable setting for generation count multiplier.
- API for recursing through embedded inventories, e.g. in totes.
- Lux reaction cannot sense other lux inside totes.
- Scripts to validate dependency graph.
- Tag deps directly in code at place of use.
- Auto-generate mod.conf / depends.txt
- API Cleanup
- Further nc_api break-up, clean up util functions.
- Heat API
- Quenched, Flames as numbers or nil?
- Unify nc_items and visinv API.
- Stack nodes are "special", get first-class support.
- APIs for different kinds of "neighbor" scans
- Face, edge, corner touching
2020-06-20 10:45:44 -04:00
- Need better handling of stuck item ents, e.g. items dropped into a
pit full of leaves.
- Detect, merge all in area, save as a single combined ent?
- Try placing items as a queue, so it only does 1 check per tick
and doesn't attempt other checks that would also fail.
- Maybe just cache item placement failures per tick.
........................................................................
========================================================================