treescrub / acornlib Goto Github PK
View Code? Open in Web Editor NEWA lightweight modular Squirrel framework for Left 4 Dead 2 VScripts.
License: MIT License
A lightweight modular Squirrel framework for Left 4 Dead 2 VScripts.
License: MIT License
Currently HasModule, LoadModule, etc. checks the module table in a case sensitive way.
The module should allow creation of custom convars (using setinfo cvar value), with listeners for when convars change.
AddCustomConvar has a 1 tick delay before the convar is actually created due to SendToServerConsole.
Keep a list of references associated with module/script name in callbacks, timing, etc. Provide a function to free all resources.
When a module is unloaded, its dependencies should also be unloaded if no other modules depend on them.
Instead of having the arguments as variables in the same scope as the function, take an array of the arguments and pass them directly to the function as parameters.
Tasks with the repeat option do not reset their time when repeating, causing them to execute every tick after reaching the scheduled time.
Add an option for a module to enable buffering with normal print output.
Use github pages for detailed documentation of AcornLib and base modules.
RemoveTickFunction, RemoveConvarListener, RemoveKeyCallback, RemoveCommand are the functions that should allow removal by scope.
Currently the logger location regex assumes folders will be word characters or whitespace. It also assumes the calling script will be an actual script, as opposed to an anonymous script (for example, a script parsed and executed using the "script" command)
Add a parameter for tasks to bind the function to a scope
Add an option for command aliases
RefreshModule will only return false if LoadModule fails, and otherwise will return null. It should return false if either LoadModule or UnloadModule failed, true otherwise.
The logger module should log some extra info (such as module name, version, etc.) if the caller script is a module.
Dependencies are loaded before the module table is inserted into modules. This causes an infinite loop of dependency loading.
Allow dependencies to be an array instead of only a string. This might make it easier to read.
Instead of spawning a logic_timer in order to get function calls every tick, use worldspawn and AddThinkToEnt or similar.
This has no reason to exist as is, the script name can be used in its place.
Automatically generate a help chat command for a specific module
Add some info about required/optional variables in module scripts
Add LoadModules, RefreshModules, and UnloadModules functions to manage multiple modules at once.
RegisterTickFunction should return an ID number instead of a function to make it easier to understand and print.
You should be able to set a file log level at which the logs will be saved to a file.
Split ScheduleTask into seperate functions for repeating tasks, timestamp tasks, and delayed tasks.
Currently there is no simple way to log messages with a custom log level. Either a function should be added for each custom log level, or there should be a generic log function that takes a message and the level.
Add example scripts for each module, maybe write/rewrite a somewhat complicated mutation.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.