Releases: Panakotta00/FicsIt-Networks
v0.3.19
Patch Update
Change List:
- New UReflection Source Metadata API
- Overhaul of the Network Manager Snapping Logic
- Lua struct construction now supporting default values
- GPU T2 drawBox now using a struct for parameters
- Add ValidationChanged Signal to Railroad Signals
- Fixes crash for GPU T1 replication
- Fixes Reflection Future crash on save load due to changed FINFunctions
- Fixes Game Crash on Computer GUI close without EEPROM
- Fixes Crash due to FileSystem Path unpersistance
- Fixes Network Adapter Reattachment Issues
- Fixes GitHub Issues
v0.3.18
Hotfix
Just another Hotfix.
Change List
- Fixes Crash related to gauges
- Fixes GPU T1 not showing text
- Fixes Nil values for Object/Trace properties
- Fix Lua EEPROM Code Editor not saving on Client
- Fix Lua Compile error messages not showing in log
- Fix crash of GPU T1 on early flush
- Fixes Computer Log Replication (Multiplayer)
v0.3.17
Hotfix
This update brings some hotfixes.
Change Log:
- Power Circuit Switch
isSwitchOn
is now readonly- new
setIsSwitchOn
function
- Micro Control Panels
- Fixes various properties
- Fixes Multiline Content with EEPROM & Type References in Log Viewer
- Fixes Sync only Properties and their Futures
- Fixes blueprint defined properties
- Fixes Unpersistence Crash on load old save files
- Fixes
coroutine.resume
return values - GitHub Issues
- #251 Game Freeze on "out of memory" in promoted tick state
v0.3.16
Update 8.3 Compatibility & (a lot) More!
(v.0.3.16)
This update introduces SF Update 8.3 compatibility and many new features.
Railroad Switch Control
You can now use the forceSwitchPosition
function on railroad switch (which you can now connect to the computer network) to force a train to go on a specific route.
This is implemented in a way so the train considers it also for train collision detection and route planning.
In combination with the new Train Passing and Docking signals for tracks and stations you can easily create more complex train networks with train waiting areas, custom priority routing and more!
Factory Connector Control
You can now "disable" factory outputs and inputs with the blocked
property.
Additionally you can specifiy an Item Filter to only allow items of the specified type using the allowedItems
property. And using the addUblockedTransfers
function, you can allow a specific amount of items pass the blocked factory connector.
This makes controlling containers and item flow on belts a lot easier, without requiering a codeable splitter or merger!
GPU T2
Ever wanted to draw Circles with FIN?
The new Graphical Processing Unit T2 can do that!
The new GPU provides many functions to draw lines, boxes and more anywhere you want onto the screen. Using layouting functions you can also control clipping behaviour and local drawing transformations.
Let your creativity go wild!
We plan to support custom images on a later date, allowing for even more customizeability!
Blueprint Parameters
You can now specify variables/parameters within the nick of computer components in a blueprint.
Once you place the blueprint, a window will open and ask you to specify what text should be used instead of these parameters.
Parameters can have a default value and they should follow this syntax: ${myVar|defaultVal}
where you can replace myVar
and defaultVal
with whatever you want.
Logging
The new and improved logger allows to check timestamps, log verbosity and message more easily!
Using the computer.log
function you can log with any verbosity you like. The print function will now simply log with info verbosity and the lua warning function will log with warning verbosity.
For people who don't like the new logger, you can change to a text based logger in the Mod Settings and configure it a bit further.
The logger will create clickable links for EEPROM Code Line references and type references allowing for a more easier way to debug your code.
Lua Code Editor
The new and improved Lua Code Editor now supports automatic indentation for new lines.
This works in combination with the line numbers and tab support that were already supported for some time now.
The Code Editor will also create clickable links (when holding CTRL) for class and struct type references using the classes and structs library.
These links also do a type check, if the type you reference does not exist, it will be underlined with red, if it does exist, it will be underlined with white.
New Lua Classes & Structs
The Lua Class and Struct system has got a complete overhaul. Instead of using findClass("MyClass")
to get a class reference you now can use the "classes" library like so:
classes.MyClass
or classes["MyClass"]
the former allows for some QoL feature mentioned later.
There is also now a similar library for structs. Using structs.MyStruct
or structs["MyStruct"]
you can retrieve a struct type representation, and it overrides the call operator, allowing you to construct the struct with parameters like you already were able to with parameters.
structs.Color(r,g,b,a)
f.e. can be used to construct a color type.
Not all structs can be constructed this way, currently there is no way to get this information from the reflection viewer but we plan to do so.
Why would you want to do that tho?
Struct Operators & Overloading
Structs can now have a special type of function, an operator.
Operators have to follow a specific naming scheme and have to have the Operator flag set.
Currently the operator flag has no representation in the Reflection Viewer, this means the only way to know if a function is a operator, is through the name.
So what gives?
Well you can now do magic stuff like: structs.Vector(1,2,3) + structs.Vector(4,5,6)
This makes working with structs a lot easier, especially with such arithmetic types.
And what is that overloading?
Well, due to the nature of operators, its kind of required for them to support overloading. This allows a struct (f.e. Vector) to have a Vector + Vector operator and a Vector + Number operator at the same time.
Depending on the type of operator and the type of the operants, Lua and FIN can figure out what operator is required for the operation.
It is important to note that non-commutative operators (like -
) currently cant have a overload for something like Number - Vector, as the first operant will be used for the search of the operator, Vector - Number is possible. This is not the case for commutative operators like + and *, there Lua and FIN will try to swap the operant and search for the operator if in the original orientation no matching operator was found.
This behaviour may change in the future and we are considering normal function overloading aswell. Struct Constructors currently are generated using their exposed writeable properties and can not have custom constructors (yet).
Struct parameters in various places now tend to require an explicit construction using the structs library. This is to prevent obfusication. There are still places where you can rely on implicit struct construction (just providing a table with the correct values) if its very clear what type is required.
Localization
The FicsIt-Networks Reflection data can now be localized together with some other texts. Other texts for assets like schematics etc can not be localized yet, but we are working on it.
If you want to help us localize FicsIt-Networks, joind our Discord Server and simply send us a message in the #general channel.
Additonal Change List
- Modular Indicator Light
- Fix graphics bug when loading or building from blueprint
- Computer Case
- new
ComputerStateChanged
signal - new
startComputer
function - new
stopComptuer
function - new
getLog
function - new
getState
function
- new
- Manufacturer
- fix
setRecipe
function (return value & flush items to output inventory if possible)
- fix
- Inventory
- add
swapStacks
function
- add
- new Buildable Class
ProductionChanged
signalnumPowerConnections
propertynumFactoryConnections
propertynumFactoryOutputConnections
property
- Train Platform Cargo
- Add
isLoading
property setter
- Add
- Train Station
- new
StartDocking
signal - new
FinishDocking
signal - new
CancelDocking
signal
- new
- Railroad Track
- new
VehicleEnter
signal - new
VehicleExit
signal - new
getVehicles
function
- new
- Railroad Signal
- new
getGuardedConnections
function - new
getObservedConnections
function
- new
- Time Table
- new
setStop
function
- new
- Train Docking Rule Set
- Multiple properties got replaced with getter and setter functions to prevent confusion on why structs did not change
- Railroad Signal Block
- Improved errormessages
- new
getOccupation
function - new
getQueuedReservations
function - new
getApprovedReservations
function
- Hypertubes
- Hyper Start now two sepperate Signals
PlayerEntered
andPlayerExited
- Hyper Start now two sepperate Signals
- Hook/Signal System
- Fixed Hooks not getting registered on save load
- FileSystem
- Fix random crash with "Overwrite Window"
- Add "Don't ask again" option to "Overwrite Window" to apply same selected option for all mismatching FileSystems in save load (gets reset after save load)
- Lua
- Big internal restructuring
- Better Error Messages
- Fix crash in promoted tick state caused by GC
- new
getItems
function - if a already promoted tick state gets demoted due to function call, tick state will try to automatically promote again
- Lua Warning system support (log with warning verbosity)
- Computer API
- new
isPromoted
function - new
textNotification
function - new
attentionPing
function
- new
- UI
- Fixed color issues with Reflection Viewer
- NetworkManager won't highlight foundation/walls anymore and cause big frame drops
- Fixed GitHub Issues
- Minor issues/bugs/crashes not listed above
- New issues/bugs/crashes
Have fun Coding :3
v0.3.15
Hotfix & API Update
This update introduces the API Update for U8 and some hotfixes aswell as minor features.
Change List:
- Priority Power Switch API
- Door Control API
- Auto Indentation on New Line in Lua Code Editor
- Fix Syntax Highlighting
- Add Railroad Switch Adapter
- Add
getComponents
to Actor API - Add
getControlledConnection
to Railroad Switch API - New Bugs
v0.3.14
SML Version Hotfix
Due to a wrong version number of the SML dependency, some people downloaded the latests version for EA which is not supported. This should be fixed now, v0.3.13 got removed and v0.3.14 pushed (which contains the correct version numbers)
Update 8 Compatibility
This update brings Update 8 Compatibility and some bug fixes.
Update 8 API additions/changes are not contained and will be released with a sepperated update.
Patch Notes:
- Update 8 Compatibility
- Invalid Name Checks for FIN-Supporting Mods
- Fix Lua Runtime Persistency
- Fix MP for Rotary Actuators
- added Lua
computer.getMemory()
- Signals for Hyper Tubes
- Other Bug Fixes
- New Bugs
v0.3.12
Line Numbers & Hot-Fix
This update introduces the long awaited line numbers for the code editor aswell as patches the crash with the latest SF EX version.
Features:
- Line Numbers in Code Editor
- Fixes Crashing Issues on EX
- Fixes some Bugs
- Introduces new Bugs
v0.3.10
Update 7 Compatibility & Wireless
This update introduces Satisfactory Update 7 compatibility.
And on top of that, it adds a new networking facility that allows you to use radio towers for wireless network message transmission.
Changelong:
- Update 7 Compatibility
- Adding Radio Tower Network Routers/Wireless Network Message Transmission
- Add Blueprint Designer support
- Train Signal Block API
- AWESOME Sink API
- Pump/Valve Flow & flow-limit properties
- Added Magic Time
- Fixes Lua Code Editor Syntax Highlighting formatting bug
- Fixes Font Bug (missing fallback)
- Fixes tempfs issues
- Fixes Hologram Crashes
- Fixes Computer Collision
- Fixes Some Bugs
- Adds new bugs
Hot-Fix for Experimental Branch
Hot-Fix
Support for latest experimental game version.
Features:
- Support of Experimental Branch
- Fixes tmpfs deep folder structures
- Fixes crash on save if unable to open file (silent fail with warning message in log) #206
- Fixes broken computer UI when last time removed PCI device was opened #227
- Other bug fixes
- Introduces new Bugs
As usual, please report any issue on the GitHub Page.