December 2024 Workshop Release Notes #3207
Denneisk
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
What's this... a Wiremod release notes?
Well, yes! After taking brief vacation, I'm back to inform you on how much Wiremod has changed!
It's been a while, and there's been so much cool stuff added since I last informed you, so hopefully you'll enjoy the word count of this one. Consider it an early Christmas present! And, yes, I will be starting from after the April update, just to be comprehensive.
E2
E2 has been busy these past few months! With so many additions, I'm going to cover the 4 big ones, spanning all kinds of new features.
SENT Spawning
This has been a long time coming: being able to spawn Wiremod entities (and, optionally, other entities) using Expression 2. Well today that comes with DeltaMolfar's
sentSpawncollection, providing a full suite to spawn entities and get some very needed information for setting up certain entities, all through E2.christmas.tree.mp4
And, for server owners, don't worry—the system is wide open for you to modify or disable, and it runs the proper checks before doing anything—but hey, at least throw us a bone and let us spawn buttons, eh?
Collision Tracking
Another long-desired feature, tracking collisions! This one comes from DerelictDrone, starring
trackCollision. Passed only an entity, the function will expect the newentityCollisionevent to trigger. Passed an entity and a function, it will only use that callback for collision handling. In addition, some getters for collision tracking status are also added, naturally.Hologram Animations
From community member unknao we have animations added to holos! This features a port of the Wire Extras holoanim extension into the main hologram extension, providing
holoAnimto run animations as well as many getters and setters for animation information and poses. And if that wasn't enough, we also added some extra holo functions such asholoBonemergeandholoParentBoneto really seal the deal.dancing.gman.mp4
Callback Timers
Finally, after months of procrastination, these have finally been added. Also thanks to DeltaMolfar, this update introduces how timers should have always been, with an extensive suite of timer functions all utilizing callbacks.
These need little explanation, but to keep everyone on the same page, never use the old timers ever again. These are far more intuitive to use. For a quick refresh, here's an example of how to convert to the new system:
That should explain enough on why you'd want to use these. In addition, there's also various new functions to play with the values of these new timers.
CPU
CPU has also been thriving during this time! Although development isn't as riotous as E2's, there's been some neat stuff that I'll go over briefly.
DARRAYDerelictDrone, our resident CPU necromancer, has resurrected yet another lost ZASM function.
DARRAY, from its single reference in a comment, apparently was meant to draw (D) to the screen an array (ARRAY) of pixels. DerelictDrone has implemented this and the examples are pretty sweet.wirecpu.rendertest.128128.mp4
If you like what you see, consider trying your hand at ZCPU! It's actually quite easy to get started, and you'll be sure to impress every E2 user!
Besides these relatively big changes, we also have various smaller additions that you'll be able to see in the changelog, and, of course, many bugfixes and improvements all over Wiremod. I'm very proud of the work that's been accomplished and our community's contributions since I last spoke, and I hope you'll enjoy every part of it, even if you don't notice most of it.
Finally, I'd like to officially welcome @wrefgtzweve as our latest Wiremod developer. Congratulations! We hope you'll enjoy the added responsibilities and blame that comes with it.
Full changelog:
Wiremod
Additions
Vehicles [ARRAY]input to Wire Camera Controller to set multiple target vehicles (community contribution from deltamolfar)Changes
wiremod_force_workshopwill default to loading Canary branch if it does not detect the server is on the Workshop branchPlayerUsehookFixes
BeingLookedAtByLocalPlayerNULLentityNULLentityNULLplayers in the Wire Pod Controller (community contribution from Astralcircle)NULLerror with looking at Wire entities (community contribution from Astralcircle)Expression 2
Additions
sentSpawnfunctions to spawn various SENTs with propcore (community contribution from deltamolfar)trackCollisioncollision tracking functionality to propcoreholoAnimfunctions to animate holograms (community contribution from unknao)timer(..., function)functions that utilize callbacks (community contribution from deltamolfar)andholoParentBone` functions for attaching holos to bonesassertSoftfunctions that only assert on strict chips (community contribution from deltamolfar)isStrict()to check if the current chip is in strict mode (community contribution from deltamolfar)wire_expression2_entity_trails_maxto limit how many trails an player can make (community contribution from deltamolfar)trailsLeft(),trailsCount(), andtrailsMax()to query the amount of trails that can be created with said convar (community contribution from deltamolfar)entity:parentToAttachmentto allow parenting an entity to an attachment directly (community contribution from unknao)entity:propNoDupefunction and getters to handle whether entities can be duped (community contribution from deltamolfar)printCaptionfunctions to display Source Engine subtitles to the playerentity:ragdollGetAng()for symmetry withragdollSetAngentity:propSleep(number)to toggle whether an entity is physics sleeping (community contribution from Astralcircle)table:copy()to shallow copy a tableholoLocalPosandholoLocalAngto set holo local pos/ang_WIREVERSIONand_WIREVERSION_STRconstants to represent current Wiremod versionwire_expression2_getownerto allow servers to dictate ifEntity.GetOwnershould be used for ownership when CPPI failsChanges
entity:use()now passes the E2 chip as the caller (community contribution from Bonyoze)NaN(community contribution from Zvbhrf)tostring(bone)to cope with internal changesbone:index()to a slower alternativewire_holograms_display_owners(community contribution from Astralcircle)table:clone()to be faster and severely reduce dynamic op cost@autoupdatenow errors when defining it more than once, and warns when placing text after itFixes
#includes with E2 errors would cause a Lua error_TAUcould break the number extension on older serversNULLplayervector2:toAngle()was accidentally defined as a function instead of a methodentity:armor()would error on NPCs (community contribution from Astralcircle)#included files (community contribution from deltamolfar)playerUseevent would not account for simulated uses properlyentity:ragdollSetAng(angle)would always rotate relativelyentity:getFlexes()could return a numberNULLEGPObjects would be considered not an EGPObject@autoupdatecould cause network disconnects and crashesRemovals
timer(string, number)andinterval(number)CPU
Additions
CS:IPandPHYS IPto debuggerMEMRQ = 6to avoid writing to the CPU's memoryzcpu_tests_benchmarkingDARRAYinstruction to draw an array of pixelsChanges
MODnow interrupts on division by 0Fixes
LOOPBwould end on -1 instead of 0R0toR31would act as memory access instead of registersAPI
Additions
WireLib.SoundExiststo check if a sound exists on the serverE2Lib.EGPto access EGPLib. This will eventuall replace the globalEGPEGP.HookPostInitfor internal use in EGP to run code after EGP loadsChanges
WireLib.GetVersionnow returns a number and string representing version, as well as optimizing its internalsE2Lib.registerConstantnow throws a soft error instead of a Lua error on bad inputnetstreamand increased its timeout to 30 secondsWireLib.hud_debug(community contribution from Astralcircle)Fixes
vondeserializingnanorinfnumbersRemovals
EGPBeta Was this translation helpful? Give feedback.
All reactions