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
-
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
sentSpawn
collection, 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 newentityCollision
event 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
holoAnim
to 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 asholoBonemerge
andholoParentBone
to 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.
DARRAY
DerelictDrone, 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_workshop
will default to loading Canary branch if it does not detect the server is on the Workshop branchPlayerUse
hookFixes
BeingLookedAtByLocalPlayer
NULL
entityNULL
entityNULL
players in the Wire Pod Controller (community contribution from Astralcircle)NULL
error with looking at Wire entities (community contribution from Astralcircle)Expression 2
Additions
sentSpawn
functions to spawn various SENTs with propcore (community contribution from deltamolfar)trackCollision
collision tracking functionality to propcoreholoAnim
functions to animate holograms (community contribution from unknao)timer(..., function)
functions that utilize callbacks (community contribution from deltamolfar)and
holoParentBone` functions for attaching holos to bonesassertSoft
functions 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_max
to 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:parentToAttachment
to allow parenting an entity to an attachment directly (community contribution from unknao)entity:propNoDupe
function and getters to handle whether entities can be duped (community contribution from deltamolfar)printCaption
functions to display Source Engine subtitles to the playerentity:ragdollGetAng()
for symmetry withragdollSetAng
entity:propSleep(number)
to toggle whether an entity is physics sleeping (community contribution from Astralcircle)table:copy()
to shallow copy a tableholoLocalPos
andholoLocalAng
to set holo local pos/ang_WIREVERSION
and_WIREVERSION_STR
constants to represent current Wiremod versionwire_expression2_getowner
to allow servers to dictate ifEntity.GetOwner
should 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@autoupdate
now errors when defining it more than once, and warns when placing text after itFixes
#include
s with E2 errors would cause a Lua error_TAU
could break the number extension on older serversNULL
playervector2:toAngle()
was accidentally defined as a function instead of a methodentity:armor()
would error on NPCs (community contribution from Astralcircle)#include
d files (community contribution from deltamolfar)playerUse
event would not account for simulated uses properlyentity:ragdollSetAng(angle)
would always rotate relativelyentity:getFlexes()
could return a numberNULL
EGPObjects would be considered not an EGPObject@autoupdate
could cause network disconnects and crashesRemovals
timer(string, number)
andinterval(number)
CPU
Additions
CS:IP
andPHYS IP
to debuggerMEMRQ = 6
to avoid writing to the CPU's memoryzcpu_tests_benchmarking
DARRAY
instruction to draw an array of pixelsChanges
MOD
now interrupts on division by 0Fixes
LOOPB
would end on -1 instead of 0R0
toR31
would act as memory access instead of registersAPI
Additions
WireLib.SoundExists
to check if a sound exists on the serverE2Lib.EGP
to access EGPLib. This will eventuall replace the globalEGP
EGP.HookPostInit
for internal use in EGP to run code after EGP loadsChanges
WireLib.GetVersion
now returns a number and string representing version, as well as optimizing its internalsE2Lib.registerConstant
now throws a soft error instead of a Lua error on bad inputnetstream
and increased its timeout to 30 secondsWireLib.hud_debug
(community contribution from Astralcircle)Fixes
von
deserializingnan
orinf
numbersRemovals
EGP
Beta Was this translation helpful? Give feedback.
All reactions