Replies: 1 comment
-
Aw they removed the ass operator... |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Update 2023-11-09: Delta operator was reverted back to its original functionality
Here's the October 2023 Wire release notes! Hopefully one of many!
There's been lots of changes with E2 this month, and we're excited to finally release them to the Workshop.
The E2 Compiler Rewrite
The E2 compiler has been rewritten. Vurv has been working on this for quite some time on this (since December!) and we're proud to finally release it to the Workshop.
Extension developers, your extensions may need to be updated to fit the changes! See a full list of updates to the API here.
Despite being a huge change for E2 internally, for users, the E2 compiler rewrite should be mostly unnoticeable. Some user-facing improvements include improved errors and warnings, but more importantly, your chips should use less ops and CPU time! Performance has been a huge focus on the compiler rewrite and we're hoping you won't be disappointed.
And, please pardon us if you notice a bug. We've worked hard trying to stomp out anything that's come up during this month, but if you happen to encounter one, please let us know!
Noteworthy functional differences:
$
operator now operates slightly differently, and instead now changes its value each time it's used. This may be getting fixed to previous behavior, but the$
operator is going to be deprecated. To future-proof your code, please use an alternative to$
, such as using a persistent variable.foreach
has changed slightly. Previously, you were able to useforeach
over a non-sequential array, but this has been changed so thatforeach
now only works on sequential array keys, starting from 1. To get non-sequential access, use a table instead.i
,j
, andk
are now prefixed with a 1, as1i
,1j
, and1k
.E2 Additions
And if you thought the E2 compiler being rewritten wasn't enough, we've got plenty of new additions to the E2 library that are likely to be useful to you.
First off, we have a new E2 event,
playerMove
, which brings along two types with it. You can expect this to work like a more accuratekeyPressed
event except focused on precise player movement. Especially, users may like theusercmd:getMouseDeltaX()
andusercmd:getMouseDeltaY()
functions, which get precise mouse movement data.Next, we have some pretty big changes to two E2 libraries. First off, the file extension has had a much-needed update to fix some glaring bugs and some modernized features. Files can now be loaded up to 5 (by default) queued operations. This change will make multi-file projects a lot easier to work with. Additionally, file has finally received a proper eventification update, so if you haven't made the switch already, now is the perfect time. And on top of all that, a new event just for writing files,
fileWritten
, has been added, that triggers when a file finishes writing.After that, we have a huge change to how you can create EGP objects. As part of the modernization of Wiremod, we've been working on removing index-based systems in favor of direct object references. In less technical terms, we're releasing the egpobject type along with the egpobjects extension, providing a new and superior method for interacting with EGPs. For more information, and some examples of the completely new things you can do, check out the PR details here.
Finally, as part of our efforts to decrease reliance on third-party E2 extensions, we're releasing a little addition that may be of use to at least a few people; you can now adjust flexes and eye targets on models!
That's all for this month's progress! We hope you enjoyed reading this and that you will enjoy these changes! Let us know what you think about these newsletters. In the meantime, this is where I get off.
Full changelog:
Wiremod
Additions
Fixes
Expression 2
Additions
event playerMove
and typesusercmd
andmovedata
for getting more detailed player movement information (Community contribution)setOverlayText(string)
to change the overlay text of individual E2scanSetName
to see if chip can usesetName
file<Load/Write/List>Queued
to get the current queued amountevent fileList
as event alternative tofileClk
event fileWritten
that executes when a file finishes sending to the clientegpobject
type and egpobjects extension. Full list of functions can be found in the E2 Helper under theegpobjects
extension.entity:setFlexWeight
and:setFlexScale
to manipulate model flexes (face posing), as well as various getters related to thementity:setEyeTarget
and two similar functions to allow model eye posingChanges
setName
to be more leniententity:bones()
to return a copy of the bones table to avoid exploitationFixes
entity:getBodyGroups
accidentally erroring (Community contribution)runOnFile
andrunOnList
running even when unsetRemovals
clk
-type file functionsDeveloper
Additions
iter
operator to replacefea
operatorindexget
andindexset
operators to replaceidx
legacy
attribute for old format E2 functionsChanges
Removals
fea
,ass
,inc
,dec
,and
,or
, andidx
operatorsAdvDupe2
Changes
Fixes
duplicator.RegisterEntityClass
with"Data"
argument not being duped properly (Community contribution)Beta Was this translation helpful? Give feedback.
All reactions