1. Choose the best Old Gods themed skin at the Texturing Contest #29 - Poll!
    Dismiss Notice
  2. Melee Mapping Contest #2 - Poll is up! Vote for the best competitive 1v1 map!
    Dismiss Notice
  3. Please help test custom maps and more on the latest PTR!
    Dismiss Notice
  4. Evolution complete! Make Darwin proud and go vote in the Techtree Contest #12 - Poll.
    Dismiss Notice
  5. Icon Contest #17 - Results are out! Step by to congratulate our winners!
    Dismiss Notice
  6. We've created the Staff Job Openings thread. We're currently in need of icon, video production, and social/multimedia positions to be filled. Thank you!
    Dismiss Notice

Best of the Wurst 8

Discussion in 'News Submission' started by Frotty, Sep 15, 2018.

  1. Frotty

    Frotty

    Wurst Reviewer

    Joined:
    Jan 1, 2009
    Messages:
    1,252
    Resources:
    9
    Models:
    3
    Tools:
    1
    Maps:
    3
    Tutorials:
    1
    Wurst:
    1
    Resources:
    9
    [​IMG].

    This month we addressed some older issues, as well as adding juicy new features. Our spotlight this time is about new vscode features.
    We also want to say thanks to the community for the avid support and contributions in the last few months, helping Wurst to become better than ever!

    Tool updates
    • Patch 1.30 is supported and the reccommended version for Wurst development. (older still supported)
    • Vanilla Jass is now parsed with its own grammar, which improves compatibility for input maps.
    • Added
      @inline
      and
      @noinline
      annotations to allow more fine grained control over inlining behavior.
    • The inliner has also been improved and now handles inlining on a call by call basis.
    • Added breadcrumbs, outline view and symbol renaming to vscode extension.
    • Colors used in wurst color tuples and wc3 color codes are now shown in vscode.
    • Functions from
      blizzard.j
      that are used during map initialization no longer get inlined, preventing map script bloat, in particular with more than 12 players.
    • Added warnings for unused private class variables and functions.
    • Fixed a case of dead code not being detected, which resulted in duplicate statements when manually nulling handles
    • The error window's tab width has been reduced so the code isn't overly indented anymore.
    • Profiled and addressed a couple CPU and Memory concerns (thanks to ej-technologies' open-source JProfiler license).

    Standard library highlights
    • FileIO and Network libraries have been updated for 24 players and new natives (PR #94, PR #106, PR #107).
    • DamageType
      (PR #95, PR #97), and
      OnUnitEnterLeave
      (PR #96) received more fixes for edge case bugs.
    • Asset lists have been improved by (PR #98, PR #103, PR #114).
    • trigger
      API received fixes by (PR #102, PR #104)
    • Added
      Matrices
      and
      Quaternion
      math packages which can also be used to manipulate effects (PR #111, PR #112).
    • Removed another
      initlater
      import from the stdlib which improves code quality.
    • We have several more PRs currently in the reviewing process, regarding Damage Modification, Bitwise Manipulation and FileIO.
    WurstScript is a programming language and toolchain to build warcraft 3 maps.

     
    Last edited: Sep 22, 2018
  2. Frotty

    Frotty

    Wurst Reviewer

    Joined:
    Jan 1, 2009
    Messages:
    1,252
    Resources:
    9
    Models:
    3
    Tools:
    1
    Maps:
    3
    Tutorials:
    1
    Wurst:
    1
    Resources:
    9
    Spotlight: VSCode Integration

    One of the more noticable improvements these last months have been on making the wurst vscode development experience more feature rich and integrated. We implemented several more features of the language protocol, which we will preset here. Additionally, the wurst file icon is now an offical part of the vscode-icons extension.

    [​IMG]

    Breadcrumbs

    [​IMG]

    [​IMG]

    Breadcrumbs show the model hiearachy from your cursor positon.
    You can turn them on via
    View->Toggle Breadcrumbs
    .

    The [cur]Focus Breadcrumbs[/cur] command (shortcut
    Ctrl
    +
    Shift
    +
    .
    ) lets you navigate your code quickly.
    You can also search for symbols using the Goto symbol in workspace command (
    Ctrl
    +
    t
    ) or using Goto symbol in file (
    Ctrl
    +
    Shift
    +
    o
    ).

    Outline View

    [​IMG]

    The outline gives you a searchable overview over all elements in that file. Turn it on by rightclicking on the Explorer headline.

    [​IMG]

    Symbol Renaming

    VSCode recognizes Wurst's symbols, allowing for consistent renaming.

    [​IMG]

    Color Preview

    [​IMG]

    [​IMG]

    Wurst color tuples and wc3 color strings are now previewed and you can use the vscode color picker to adjust them.

    Import Quickfix

    [​IMG]

    When using types which are not imported into a given package yet, Wurst will suggest importing a package which will fulfill that type. If applied, the quickfix will add the import statement automatically.

    Themability

    While not a Wurst feature, it should be noted that everything style related you see here can be customized in some way. There are default and user created themes, take a look:

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    The theme used for the screenshots above, is called "Atom One Dark".

    Thanks for reading, we hope you enjoy these posts - and as usual, let us know what you think.
     
    Last edited: Sep 15, 2018
  3. BlueSaint

    BlueSaint

    Joined:
    Jun 18, 2012
    Messages:
    2,652
    Resources:
    3
    Tools:
    1
    Spells:
    2
    Resources:
    3
    The code navigation features and symbol renaming will come in super handy when my code base grows to appreciable extents. Great work as always!
     
  4. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,221
    Resources:
    17
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    17
    I'd be keenly interested in a few simple examples regarding the Matrices and Quaternions
     
  5. Veldris

    Veldris

    Joined:
    Jul 10, 2018
    Messages:
    142
    Resources:
    0
    Resources:
    0
    Can someone explain to me what is wurst?
     
  6. Frotty

    Frotty

    Wurst Reviewer

    Joined:
    Jan 1, 2009
    Messages:
    1,252
    Resources:
    9
    Models:
    3
    Tools:
    1
    Maps:
    3
    Tutorials:
    1
    Wurst:
    1
    Resources:
    9
    Hi, I added a small sentence and the link to our page to the post.
    WurstScript is foremost a programming language that compiles to Jass, the scripting language of warcraft 3.
    The language is closely bundled with a set of tools, providing code editor support and map building capabilities outside of the world editor, a standard library and much more.

    It is probably aimed more at the power mapper or teams which want to version control their maps - pretty steep learning curve.
    We post this series "best of the wurst" semi-regularly to inform the community about tool updates and display a spotlight topic.

    A very basic example is effect rotation, since there are various problems with just a euler triples such as gimbal locks and glitchy animations.
    I want to use this for some things in my maps. Might post something when I get it done soonish enough.
     
  7. Veldris

    Veldris

    Joined:
    Jul 10, 2018
    Messages:
    142
    Resources:
    0
    Resources:
    0
    Thanks for explaining it for me!
     
  8. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,221
    Resources:
    17
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    17
    I understand what it does in theory, I meant a practical demo
     
  9. Frotty

    Frotty

    Wurst Reviewer

    Joined:
    Jan 1, 2009
    Messages:
    1,252
    Resources:
    9
    Models:
    3
    Tools:
    1
    Maps:
    3
    Tutorials:
    1
    Wurst:
    1
    Resources:
    9
    If you know what they do, you should know how they are practically used. As I said, I can post a demo snippet when I implemented it for my maps. If you just wanna see how to use them/Syntax, see the tests packages wurstscript/WurstStdlib2
     
  10. GetLocalPlayer

    GetLocalPlayer

    Joined:
    Apr 11, 2018
    Messages:
    1
    Resources:
    0
    Resources:
    0
    Well, I can give you one. Primitives (boxes, quads, pyramids) use quaternions/matrices for rotation and matrices for scaling. "Frost Arrows" ability uses quaternions.
     

    Attached Files: