Terasology - open source voxel world

Overview

Terasology

Gitpod Ready-to-Code Build Status Release Downloads Bounties Total alerts Language grade: Java License(code) License(art) Discord IRC Channel

Welcome!

The Terasology project was born from a Minecraft-inspired tech demo and is becoming a stable platform for various types of gameplay settings in a voxel world.

The creators and maintainers are a diverse mix of software developers, designers, game testers, graphic artists, and musicians. We encourage others to join!

Terasology is fully open source and licensed Apache 2.0 for code and CC BY 4.0 for artwork (unless indicated otherwise - see credits for minor exceptions.)

We encourage contributions from anybody and try to keep a warm and friendly community and maintain a code of conduct.

Terasology

Playing

Minimum Requirements Recommended Requirements
System (OS) Windows, MacOS, Linux (64 bit)
Processor (CPU) dual-core CPU quad-core CPU
Memory (RAM) 2 GB 8 GB
Graphics (GPU) Intel HD Graphics (Gen 5)
GeForce 6xxx series or
Radeon HD 2000 series
with OpenGL 2.1*
GeForce 8xxx series (or higher) or
Radeon HD 2000 series (or higher)
with OpenGL 3.x
Storage (HDD) 1 GB

Internet connectivity is required for downloading Terasology via the Launcher, afterwards offline play is possible.

For easy game setup (recommended) you can use our launcher - download it here.

For more information about playing, like hot keys or server hosting, see the dedicated page or check out the modules.

Alternate Install Method

If you know you already have a Java Runtime Environment installed, you may use a direct download release as an alternative to using the launcher. Java versions 8 and 11 are supported.

Direct download stable builds are uploaded to our release section here on GitHub while the cutting-edge develop version can be downloaded direct here from our Jenkins

Developing

We strive to make developing and modding Terasology as easy as possible. See our wiki for instructions on setting up a development environment and how to develop modules.

Links

Comments
  • FlexibleConfig

    FlexibleConfig

    Closes #2668. Implements a FlexibleConfig and Setting class which allows for an extensible configuration system which does not have hard-coded settings.

    Testing

    • Run tests (all relevant tests are in the org.terasology.config.flexible package)

    Outstanding before merging

    • [x] Add tests for each method in Setting
    • [x] Add tests for each method in FlexibleConfig
    • [x] Add JavaDoc
      • [x] Document RangedValueValidator
      • [x] Document Setting
      • [x] Document SettingImpl
      • [x] Document FlexibleConfig
      • [x] Document FlexibleConfigImpl
    • [x] Update tests to be more "test" like (check @emanuele3d review)
    Topic: Architecture 
    opened by eviltak 99
  • Vive support

    Vive support

    Contains

    Adds OpenVR support to Terasology.

    When making my changes, my objective was to make this change completely invisible to people without VR headsets. There are many design decisions that will need to come downstream of this change, such as in-world overlays. This commit does not include any of that. If Terasology is launched with the vrSupport flag in config.cfg set equal to true, the world will be rendered in the headset (as well as on the screen). If not, everything acts exactly as it did before.

    The designers of the game should draw their attention to the following aspects of this commit.

    • I have removed any references to Oculus and TeraOVR.
    • I renamed the flag oculusVrSupport to vrSupport for consistency.
    • Since this uses OpenVR, it should work with both Oculus headsets and HTC Vive.
    • OpenVR native libraries are included in project_root/openvr_natives. This directory must be present when the game is launched.
    • My wrapper has been added directly to the Terasology source code / repository. I did this rather than keep it in a separate repository because the wrapper uses lwjgl, and compiling the wrapper to a jar would add a certain version dependency for lwjgl that could conflict with Terasology.
    • A jar for jopenvr has replaced TeraOVR. This jar depends on JNA version 4.2.2, so as to follow Terasology. If the JNA dependency in Terasology ever changes, we will need to rebuild this jar. I felt this was cleaner than having a ton of machine-generated source code tagging along in the main repository, and the JNA version is unlikely to change in the future.
    • Motion controller support is implemented through a listener. This listener is not used at the moment; this patch is already big enough, and that should be done separately and in a focused manner.
    • As far as I know, this patch adds no work and actually subtracts some work to the directed acrylic graph effort. It's not programmed in an ideal way (My render frame buffers exist outside of their managing system), but it works as it is, mostly follows their design patterns (VR support is isolated to a single, new DAG node), and can be refactored later. The reason I left it like that is that it's clean/tidy that openvrprovider has no dependencies inside of Terasology and is completely self-contained.
    • Ideally, down the road, we probably want to add some way that modules can add DAGs to the rendering pipeline and refactor VR support into an external module, but that is impossible with the DAG stuff in its current state. However, by merging this patch now, it's no more difficult to refactor later, and I can begin to write some of the support classes for VR interaction/gameplay.

    Anyway, this has already gotten long enough. I'll add more comments later if I think of them.

    How to test

    • If you have a VR headset, edit config.cfg such that vrSupport is set to true. Launch SteamVR. Launch the game. Edit your rendering settings to disable anything that could be incompatible with VR; for example "film grain" or "blur." Launch the game and put on your headset.
    • If you have no VR headset, this patch should have no visible effect on your gameplay. If it does, I did something wrong and we should address it.
    Topic: Architecture Category: Build/CI Topic: Rendering 
    opened by indianajohn 72
  • Intergrate gestalt asset core

    Intergrate gestalt asset core

    This PR integrates gestalt-asset-core, replacing the previous asset framework. This provides a number of major features:

    • Support for modules introducing new asset types and formats
    • Better support for programmatically generated assets
    • Automatic reload of assets changed on disk (of any sort, although this may not have immediate effect depending how the assets are used).
    • Better and clearer treatment of assets when module environment changes (assets are either reloaded if available in the new environment, or disposed).

    This PR will likely break most modules.

    Known problems:

    • Initialization is a little screwy at the moment. I think it works ok, and if there are no major issues will follow up with an initialization rework after this PR.
    opened by immortius 72
  • Overhauled serialization system

    Overhauled serialization system

    Contents

    • Clean serialization API for use in the engine and in modules
    • Add serialization support for various types previously unsupported
    • Modularize serialization to make it easier to add custom type serialization
    • Rework serialization to serialize objects via Gson or Protobuf by changing a single line of code (see AbstractSerializer, GsonSerializer and ProtobufSerializer)

    Closes #3490.

    Review guide

    This PR is finally ready to review and merge! Since there are a lot of changes to review, I'd recommend taking a look at the user-facing API introductions/changes first:

    Since there are a lot of files changed by this PR (still no conflicts, surprisingly!), I'd suggest you initially skip the ones with few (< 20) changed lines and a similar number of additions and deletions -- almost all of these files were changed by the IDE during a refactor and have no real reviewable changes.

    After you finish reviewing the API changes in the files listed above, you can take a look at the logic introduced by the code in this PR: almost all of it resides in the persistence.typeHandling package under a TypeHandler or a TypeHandlerFactory, or the ReflectionUtil class. However, I am pretty confident that all these classes/methods have been tested thoroughly to ensure they work as intended, so this step can be skipped if needed.

    I'd then recommend looking at the tests to see how the new serialization system would be used; the main ones to look at here are TypeSerializerTest and TypeHandlerLibraryTest, since these test most of the user-facing APIs.

    Testing

    Check out branch MovingBlocks/newSerialization and run ./gradlew tests

    TODO

    • [x] Prevent modules for adding handlers for types they do not declare (compare module declaring TypeHandler<T> and module declaring T).
    • [x] Add TypeHandlerLibrary.getRuntimeTypeHandler that returns the retrieved type handler wrapped in a RuntimeDelegatingTypeHandler to support subtype serialization
    • [x] Create a reflection abstraction over ModuleEnvironment/Reflections with more AbstractClassLibrary-esque resolution features (if made with a ModuleEnvironment).
    • [x] Flatten the RuntimeDelegatingTypeHandler serialization format by adding the class entry to the serialized object itself, if the serialized representation is a map

    Module Fixes

    • [x] Terasology/Tasks#7
    • [x] Terasology/DynamicCities#33
    • [x] Terasology/Dialogs#8
    • [x] Terasology/MasterOfOreon#29
    • [x] Terasology/LightAndShadow#74
    • [ ] Terasology/GooeyDefence#30
    • [ ] Terasology/GooeysQuests#31
    Topic: Architecture Size: L 
    opened by eviltak 64
  • Trying to add drag drop of items from inventory

    Trying to add drag drop of items from inventory

    Fixing #2218 . I added an interaction region on all sides of the InventoryGrid, so the cells are put in the center of the screen (the offset is calculated by giving half of width left after drawing the cells). There are 4 rectangular regions which need to be targetted. I have added all 4 with appropriate names.

    I just tried to immitate the existing functionality of right click.. So the code is adapted version of onUseItemButton from LocalPlayerSystem . I Expected that if I drag an item out of the inventory cells (on the inventory screen) and drop it on empty area around the grid then it would get dropped on the terrain. I saw that on right click I could put items on the terrain. So, I used its code. . But instead what happens is actually (i think) similar to if I press left click while inventory screen is not opened. i.e, the player tries to destroy the block which is just ahead (pointed to). . I tried to debug it checking for the function calls and yes all the lines are being executed as required. The problem that I think (as @flo mentioned) is that I couldn't understand the parameters which are passed to onUseItemButton and hence duplicated it in a wrong way. . . I will now try to add the overlay as suggested.

    Topic: UI/UX 
    opened by genuinelucifer 59
  • Ability to Broadcast games on the Local Area Network

    Ability to Broadcast games on the Local Area Network

    Ability to Broadcast games on the Local Area Network

    Contains

    JoinGameScreen.java - Added the broadcast button to be enabled only when the server is not broadcasting, along with a custom message of all the modules, ports and IpAddresse's

    Broadcast.java - Added the ability to broadcast the game on all local listening servers. The message is broadcasted every 5 minutes. "Fixes https://github.com/MovingBlocks/Terasology/issues/3760"

    How to test

    The broadcast button is added to the User Interface and the respective broadcasted message can be read on the Join Game Server on a machine present on the LAN.

    Outstanding before merging

    • :heavy_check_mark: UI button for broadcasting
    • :heavy_check_mark: Make sure Broadcasting is enabled for headless server.
    • [ ] Need to add documentation for this.
    opened by sladyn98 50
  • OpenVR motion controller gameplay through controller button API and e…

    OpenVR motion controller gameplay through controller button API and e…

    Contains

    Support for gameplay using OpenVR-compatible motion-tracked controllers. The controller can be used to target in-game objects and trigger actions (i.e. mine blocks that you are touching with the controller).

    A video is worth a thousand words: https://youtu.be/zkZ04NFy73U

    How to test

    If you have a VR headset, start the program, load/create a game, and put the headset on. Put on a controller. Try to do the same thing in the video.

    If you do not, try to turn play the game as you normally would. If you notice any problems with the targeting system, it could be a side effect of this commit. (However, I have tested non-VR gameplay, and everything seems to work as normal). Also pay attention to the animations / position of the tool.

    A couple of things that I should mention.

    • Before this commit, the target of actions and the target as seen by the renderer were being determined by two different instances of ray casting in the gaze direction. I changed it so that the target assigned to both is given by the targeting system instead of being done separately. This made it easier to hijack the targeting system for my own purposes.
      • When VR is being used, the target system is used to assign a target based on the OpenVR controller location.
      • When VR is not being used, the target system follows the gaze location, and the behavior is the same as it used to be (although what is happening behind the scenes is a little more efficient).
    • I found some time ago that, when VR mode was active, I was only able to see the world rendered in the headset. The rendering to the computer monitor was not working, because the CopyImageToHMD node was binding a different FBO without telling the DAG about it. I made a temporary fix - to bind FBO 0 after CopyImageToHMD terminates. It's at least not much uglier than before.
    • Controller support is done through the existing controller API. Each controller has a trigger, a grip button, a menu button, and a touchpad with joystick axes. On the left controller, the first three buttons are bound to buttons 0 - 2, and the touchpad is bound to movement. On the second controller, the first three buttons are bound to 3-5 and the four directions of the touchpad are bound to buttons 6-9. I haven't given much thought to what the best layout for gameplay is, but the back-end is in place.
    • There are a couple of random VR fixes in there too. Before, the eye height was not being accounted for and the floor plane didn't match the floor plane in the room. That is fixed. There was also a minor problem with the camera that regarding the inverse projection matrix that could have been causing some problems that is now fixed.
    Status: Needs Investigation Topic: Architecture 
    opened by indianajohn 50
  • FlexibleConfig

    FlexibleConfig

    Introduction The current rendering config is a relatively straightforward (if long) Java class with hardcoded video settings and their handling. This includes accessors (get*(), set*(), is*()), but also functionality to subscribe to the config to be notified of changes - to specific values or to the whole config.

    This works, but is inflexible. Ideally engine and modules should be able to publish their configuration settings, as needed. Here is a couple of simple scenarios to ponder about.

    Scenario 1 - ShadowMapNode The ShadowMapNode is responsible for generating a ShadowMap used to cast shadows from the main light (sun/moon). This node wishes to publish two settings to the rendering config: a) a boolean defining its enabled/disabled state b) an integer defining the size of the (square) shadow map, in pixels.

    Sceneario 2 - RealCameras module The RealCameras module (so far a fictional one) introduces a number of realistic effects for the camera. Among them are lens flares. These are generated by a specialized node injected into the render graph on module startup. The node renders up to 20 lens flare elements, each having a set of parameters to play with, such as the texture asset used, the distance along the flare axis and the maximum opacity of the element. All these settings need to be published at runtime on the rendering config, for the user to play with.

    FlexibleConfig and Setting classes Enter the FlexibleConfig class, barely more than a <ResourceURN, Setting> map:

    • void add(Setting) - doesn't allow overwriting a stored setting object with a new one using the same ResourceUrn
    • boolean remove(ResourceUrn) - return true if the setting has been removed from the config. This happens only if the setting no longer has subscribers.
    • Setting get(ResourceUrn)
    • boolean has(ResourceUrn)

    Individual Setting instances would contain:

    • an id - of type ResourceURN: the prefix is engine-set and is either "engine" or the fully qualified name of the module publishing the setting.
    • a stored value
    • a type - i.e. boolean, integer, float, double, one-selection/multiple-selection lists
    • a default value
    • a range - where applicable, i.e. integers, float, double
    • a list of choices - where applicable, i.e. list-type settings
    • a comma-separated list of ui-path
    • a human-readable name - translation friendly, to be displayed in the UI
    • a description - translation-friendly, potentially verbose, describing in plain language what a setting does.

    Setting is largely immutable and contains the information from the FlexibleConfigs Features section. But it would have a setter methods for the stored value. It also provides subscribe()/unsubscribe() methods and a boolean hasSubscribers() method.

    A few clarifications about the ui-path feature. A ui path would provide a hint to the ui on how to group settings together. I.e. all settings having a path /engine/shadows/shadowmap could be displayed together when the "shadows" list item is selected in the "engine" tab of the rendering config. It could be meaningful however for the same setting to be also be displayed in a separate tab/menu, hence the possibility for multiple ui paths. Ultimately however, it is up to the UI code to decide how to take advantage of them. I.e. a simpler UI might not provide "tabs" and might group settings between horizontal separators instead, potentially ignoring the deeper sections of a path.

    How does this all sound? And notice that this issue specifically avoids dealing with the UI needed to display the content of a FlexibleConfig instance. That will be for a separate issue.

    Topic: Architecture Topic: Rendering 
    opened by emanuele3d 50
  • Physics refactor

    Physics refactor

    Goal

    This refactor aims to reduce the dependency of engine code on the physics engine library used. Engine items currently use items in the com.bulletphysics (MovingBlocks/TeraBullet) package, which can cause problems while refactoring (moving to a different engine) and necessitates adding an otherwise unrelated package to the module whitelist. The main cuplrits were references to com.bulletphysics.collision.shapes.CollisionShape and its subclasses, and com.bulletphysics.linearmath.Transform. All these classes have been wrapped around engine classes and interfaces, which can be easily used in both engine as well as module code.

    These changes also allow for easily changing the underlying physics engine used without having to change any engine or module code (except the contents of the PhysicsEngineManager class). All physics engine integration code will reside in a subpackage of the physics subpackage, and will only be interacted with via the relevant interfaces. Theoretically, this also allows multiple physics engine integrations to coexist, with the ability to change the physics engine used at runtime (or in the worst case, a couple of lines of code).

    Contents

    Introduces

    • Wrapper around TeraBullet's CollisionShape (and derivatives) by way of interfaces of the same name under the physics.shapes subpackage
    • CollisionShapeFactory interface for creating CollisionShapes for entities and blocks, primarily used in the prefab and block loading system
    • Functional equivalent of TeraBullet's Transform in the math subpackage
    • A static helper class PhysicsEngineManager containing a helper method which creates a new PhysicsEngine instance and a constant reference to a CollisionShapeFactory instance

    Changes

    • Removes reliance on com.bulletphysics.linearmath.AabbUtil2 by inlining functionally equivalent implementations of the methods used.
    • Moves the collision shape component classes from physics.shapes to the more suited physics.components.shapes package
    • Adds a custom EPSILON value to Vector3fUtil instead of referring to BulletGlobals.SIMD_EPSILON

    Removals

    • Removes MeshRenderer.addToBatch (unrelated to the goals of this PR)

    Considerations

    1. ~Introduce a CompoundShapeFactory that helps create a CompoundShape and add child shapes to it in order to restrict the CollisionShape interface API to read-only methods, further increasing API security~ Not required, as discussed below.

    Future Work

    1. Introduce more methods to the CollisionShape interface family that may be required in the future
    2. Improve upon and widely adopt or fully remove the Transform class
    3. Add an EPSILON constant to the PhysicsEngineManager class, thereby making PhysicsEngine.getEpsilon redundant, or find a way to make available the value returned by getEpsilon everywhere without needing a PhysicsEngine instance (using a static method or a constant). This makes it easier to refer to the epsilon value used by the physics engine without needing to refer to the PhysicsEngine instance (like in the case of Vector3fUtil.safeNormalize).
      Related: #3204

    TODO

    • Document
      • [x] CollisionShape interface family
      • [x] CollisionShapeFactory
      • [x] Transform

    Comments on the future considerations, general suggestions and improvements are welcome.

    Topic: Architecture Topic: Physics 
    opened by eviltak 41
  • chore: migrate to gestalt v7—fork 🅰, keep subsystems separate

    chore: migrate to gestalt v7—fork 🅰, keep subsystems separate

    This is a variant of #4593. It diverges after 20546f1853a8f5cce99fff8018700d81340181d3 in an attempt to find an alternative to moving subsystems back in to the org.terasology.engine namespace.

    The diff is usable if you only include the later commits, i.e. after all the import changes. https://github.com/MovingBlocks/Terasology/pull/4622/files/94e1e419d3d9cff599a2ec4e7bd68cdf4983ebc3..HEAD
    but this trick is working less well the longer this branch is around, as that diff includes merge commits in a way that diffs from the branch root do not.

    To generate a diff from the command line that excludes the import clutter:

    git diff --ignore-matching-lines="^import .*"  --ignore-all-space \
        origin/develop origin/feature/migrate-gestalt-v7.a 
    

    Build Instructions

    Use chore/gestalt-v7-migration branches for /modules/*.

    Notes for Reviewers

    • The place most related to gestalt-module is the ModuleManager: https://github.com/MovingBlocks/Terasology/blob/feature/migrate-gestalt-v7.a/engine/src/main/java/org/terasology/engine/core/module/ModuleManager.java but there are also changes spread across asset loaders and type handlers.
    • Does anyone think it is critical that we keep building reflections.cache at compile time? In play testing, do you notice this being a lot slower to start or join a game?
    • Do we need to fix anything about the way we're handling NUI or subsystems? These are libraries that are outside of engine, but define things that need to be discoverable to the ECS or TypeRegistry systems. i.e. they have @API annotations or have classes involved in some getSubtypes query.
      • is #4593's approach better?

    Notes for Testing

    To Do

    • [ ] reinstate cache-reflections build tasks?
    • [x] Merge gestalt fix for asset manager race condition: https://github.com/MovingBlocks/gestalt/pull/102
    • [x] something jmh-related preventing running from IntelliJ?
    • [x] tidy use of google() repository
    • [x] migrate the modules: many have branches under the name chore/gestalt-v7-migration
    Topic: Architecture Category: Build/CI Category: Security Size: L 
    opened by keturn 40
  • Improved particle systems [$25]

    Improved particle systems [$25]

    Terasology has a basic particle system implementation. It could be extended to support advanced features like particles that leave a trails.

    Suggestions for additional effects

    Ribbons

    Examples of ribbon like effects in other games/engines:

    • http://docs.runicgames.com/wiki/Missile_Particles_and_Ribbons
    • https://docs.unrealengine.com/latest/INT/Engine/Rendering/ParticleSystems/Reference/TypeData/Ribbon/index.html

    Those could be used to make spell like effects.

    Force fields

    Other advanced features could be force fields that change the direction of particles. Like for example force fields in blender:

    • https://www.blender.org/manual/de/physics/force_fields.html

    Animated particles

    Particles could have an animation that is based on a tile map and that plays in a loop.

    Hints for new developers:

    Familiarize yourself wit the Entity-System architecture of terasology: e.g. by reading ( https://github.com/MovingBlocks/Terasology/wiki/Entity-System-Architecture https://github.com/MovingBlocks/Terasology/wiki/Events-and-systems ) and by trying it out in practice.

    The current particle system implementation can be found in the class BlockParticleEmitterSystem. It makes entities with a "BlockParticleEffect" compoent to a particle system.

    A "prefab" that uses the component "BlockParticleEffect" is dustEffect.prefab. It can be spawned with the command "spawnPrefab dustEffect". Prefabs (at least those in modules) reload automatically, so you don't have to restart terasology. It is enough to spawn antother instance of the prefab to see the effect of your change in the json file.

    Category: Doc Topic: Architecture Topic: Rendering Size: M 
    opened by flo 40
  • Refactor `UseWorldGenerator` and `Dependencies` annotations in Module Land

    Refactor `UseWorldGenerator` and `Dependencies` annotations in Module Land

    In the aftermath of https://github.com/MovingBlocks/Terasology/pull/5046 reworking the test annotations for MTE, the UseWorldGenerator and Dependencies annotations need to be replaced all across module land.

    Migration Path

    The replacement annotation is the class annotation @IntegrationEnvironment which will apply MTEExtension, mark it with an MteTest JUnit tag and includes parameters for world generation and module dependencies. The worldGenerator parameter is replacing @UseWorldGenerator, the dependencies parameter is replacing @Dependencies.

    Contributes to https://github.com/Terasology/ModuleTestingEnvironment/issues/76

    Good First Issue Topic: Stabilization Category: Test/QA Type: Refactoring 
    opened by jdrueckert 1
  • Add the game to steam

    Add the game to steam

    Motivation

    The game is hard to find, also it's hard to assess if it's worth playing.

    Proposal

    Add the game to steam

    Why I think it will be beneficial:

    • it is very popular and it's website has a lot of visitors (Alexa ranks it as the 314 most popular website on the internet).

    • Seeing a lot of good reviews can really tip the scales and make me (and probably others) take a chance on trying a game (it's basically social proof), it could lead to more exposure which will mean more developers and more feedback (former developer of naev said it brought new developers).

    • Steam is one of the only game review systems that i know of which is able to rank games only based on "recent reviews" (besides gog.com), so if a game starts badly and keeps getting developed and becomes good the old review don't prevent it from getting a good rating, this is especially good for open source games that can have a very long history of development (being developed for more then a 15 years is common).

    • Another nice feature of steam is that you can find reviews for players that played more then a certain number of hours , some games can be half done and a review after three hours of play time might not reflect problems, a review after say 30h indicates you can pour some time into it without the game failing (and you will have to wait for a newer version and maybe play it until the point you reached before because save files are not always compatible with future versions).

    • Some FOSS projects on steam have a price (for example the game Mindustry ). Maybe you could use that for funding and paying freelancers to create graphics and sound (iirc this is what shattered pixel dungeon does).

    • early feedback can be useful, there is a saying that if you are not embarrassed when releasing the software then you released it too late, steam can mark a game as early access (like supertux does) so there is no danger of disappointing players because the game isn't fully polished.

    Alternatives

    Maybe just add it to gog.com, it has some of the benefits (A "recent reviews" feature, and it is somewhat popular but not like steam so it won't provide the same exposure).

    Status: Needs Discussion Type: Dream 
    opened by wiki-me 5
  • #5055 Unable to build Terasology on M1 Mac.

    #5055 Unable to build Terasology on M1 Mac.

    Contains

    Brief description of what the PR does like "Fixes #12345"

    How to test

    Brief description of how to test / confirm this PR before merging

    Outstanding before merging

    If anything. You can use neat checkboxes! Feel free to delete if not needed

    • [ ] Need to consider use case x
    • [ ] Still have to adjust the wiki doc
    • [ ] Will need translation work
    opened by asotona 0
  • Roadmap for Module Loading and Module Configuration

    Roadmap for Module Loading and Module Configuration

    Motivation

    Terasology uses a modular approach to game assets, concepts and features - everything is a module. When creating a new game players select which modules they want to use and then proceed to create a new world to begin a game in.

    We want to offer players the possibility to configure the selected modules before they actually launch the game or the world is created. This includes

    • preview of world generation
      • #5012 Provide Access to Module Assets in AGS
    • configuration of world generation
      • #4068 New create game phase / UI screen: Game universe pre-initialization
    • key and control bindings for module-specific features
    • configuration of game play features
      • #2476 Player selection of avatar / character model
    • configuration of rendering options
    • #5075 RenderingModuleSettingScreen is not working and giving Java NullPointerException

    Proposal

    tbd

    Concerns

    There are a lot of dependencies between different aspects, and it will be hard to model and resolve them correctly. We frequently run into issue like the following ones, where we suspect some race condition or loading order issue to be at fault:

    • #2385 Race condition / bad initialization order during game start vs chunk generation

    tbd

    Task Breakdown

    tbd

    Additional Notes & Related Resources

    • #1770 Engine Initialisation and Lifecycle improvement
    • #4304 Split engine to subsystems
    Category: Doc Status: Needs Discussion 
    opened by skaldarnar 0
  • Game Screen goes dark after minimizing

    Game Screen goes dark after minimizing

    What you were trying to do

    I was minimizing the game screen using 3 finger gesture support in laptops. I wasn't using windows in built 3 finger gesture but I used 3 finger gesture that is provided by TaskbarX application.

    What actually happened

    I minimized the game screen using gesture (that is provided by TaskbarX application) and when I maximised the game screen, it became dark. After exiting the game and relaunching it, the screen went back to normal.

    How to reproduce

    Repro steps

    • Download TaskbarX application.
    • Add some gesture for minimizing window in TaskbarX application.
    • Open Terasology game.
    • Start playing it.
    • Minimize the game screen using gesture.
    • Maximize the game screen and it shows dark screen.

    Game version

    Game version - 5.3.0

    Type: Bug Status: Needs Investigation Topic: Stabilization 
    opened by ujjman 0
  • Fix author tag in github action and make it friendlier

    Fix author tag in github action and make it friendlier

    Motivation

    The GitHub action for marking issues stale and eventually closing them when we need author input but don't get any is working fine except that the author is not properly tagged. Instead of the author's account name only a lonely @ shows up. This needs to be fixed.

    Additionally, while keeping these automated bot comments short, simple, and factual has it's benefits, maybe people are more inclined to come back and provide the missing information if we design this message to be a tad friendlier.

    Proposal

    A friendlier message could be something along the lines of:

    Hey there @<author>, thank you for originally opening this issue! It has been marked stale / closed because we haven't heard back from you these past 30 (or whatever time is configured) days. If you're still around it would be awesome if you could answer the open questions or provide the requested feedback / input. Thank you very much and hopefully see you around!

    Additional notes

    The GitHub action in question is https://github.com/MovingBlocks/Terasology/blob/develop/.github/workflows/autoclose.yml

    Category: Build/CI Topic: Stabilization Size: S Type: Chore 
    opened by jdrueckert 0
Releases(v5.3.0)
  • v5.3.0(Sep 3, 2022)

    Special thanks to everyone that contributed to this release: @Cervator, @DarkWeird, @dragonempire96, @Jacob-Rueckert, @jdrueckert, @keturn, @kvaithin, @mohamedation, @MrGizmo123, @pollend, @shadowasphodel2919, @sid2002CN, @skaldarnar, @ujjman.

    Changelog

    🚀 Features

    • #5061 feat: add type handlers for SimpleUri and BlockUri (@jdrueckert)
    • #5028 feat(InjectionHelper): inject() returns the object for chaining (@keturn)
    • #5025 feat(#4948): restrict default memory settings (@jdrueckert)
    • #5000 feat: add ball mesh (@jdrueckert)
    • #4996 feat: add convenience method PhyiscEngine#recomputeCharacterCollider(entity) (@skaldarnar)
    • #4947 feat: micrometer metrics over JMX (@keturn)
    • #4898 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • #4621 feat: Add BlockAreac#distanceSquared (@shadowasphodel2919)

    🐛 Bug Fixes

    • #5066 fix(rendering): Don't try to set window icon on macOS (@skaldarnar)
    • #5062 fix: do not crash on unexpected map format in GenericMapTypeHandler (@jdrueckert)
    • #5054 fix: do not run behavior simulation while paused (@keturn)
    • #5053 fix(facade): fix broken --load-last-game (@keturn)
    • #5048 fix(TypeHandlerLibrary): fix error-during-error-logging in GenericMap (@keturn)
    • #5043 fixup! test(MTE)! set default NetworkMode to NONE (#5041) (@skaldarnar)
    • #5036 fix(PathManager): allow paths to be symlinks (@keturn)
    • #5035 fix(templates): replace perlin with simplex as the default override.cfg (@keturn)
    • #5017 fix(Context)!: correct signature of Context.get (@keturn)
    • #5014 fix(ChunkProcessingPipeline): base thread pool size on available processors (@keturn)
    • #5013 fix(test): set jacoco excludes for engine-test's unitTest and integrationTest tasks (@keturn)
    • #5008 fix(SelectionScreen): be more robust in the face of save files with incomplete manifests (@keturn)
    • #5006 fix: path quirk on an M1 Mac using Azul JDK 11 (@Cervator)
    • #4980 fix: fix game screen goes black bug (@sid2002CN)
    • #4973 bugfix: resolve BlockSelectionRenderer (@pollend)

    🧰 Maintenance

    • #5067 chore(world): improve logging for BlockManager (@skaldarnar)
    • #5064 chore: simplify implementation in Assets to one-liners (@skaldarnar)
    • #5063 chore(subsystems/discord): catch runtime exception and log only message (@skaldarnar)
    • #5052 chore(EntityPool): workaround "unchecked generics array creation" for getEntitiesWith (@keturn)
    • #5033 chore: CoreRegistry removal from engine.network (@keturn)
    • #5026 chore(#4908): match IntelliJ and Checkstyle formatting rules (@jdrueckert)
    • #5016 chore: remove unused ByteCodeReflectFactory (@keturn)
    • #5009 chore(StorageManager): typos and minor code cleanups (@keturn)
    • #5002 chore: Update lwjgl version to 3.3.1 (@DarkWeird)
    • #4992 chore: remove no longer existing CharacterMovement fields from prefabs (@jdrueckert)
    • #4989 refactor(Chunk): provide default implementations of methods where possible (@keturn)
    • #4984 chore: add security policy (@jdrueckert)
    • #4972 refactor: split out chunk work as a seperate helper class (@pollend)
    • #4970 chore: remove TessellatorHelper (@pollend)
    • #4965 chore: remove deprecated method in Block (@pollend)
    • #4964 chore: remove usage of Tesselator for BlockSelectionRenderer (@pollend)
    • #4888 chore: remove deprecated Chunk#getPosition(Vector3i) (@pollend)
    • #4786 chore(rendering): migrate chunk mesh generation Flux (@pollend)
    • #4768 chore: move SideBitFlags into Side (@pollend)

    🧪 Tests

    • #5044 test(MTE): allow a test to add its own EngineSubsystem (@keturn)
    • #5041 test(MTE)! set default NetworkMode to NONE (@keturn)
    • #5040 test: add info logs to help track down sporadic (@jdrueckert)
    • #5039 test(MTE): replace IsolatedMTEExtension with JUnit's TestInstance.Lifecycle (@keturn)
    • #5037 test: add NetworkMode setting to MTE (@keturn)
    • #5022 test: reducing logspam (@keturn)
    • #5010 test: Move ModuleTestingEnvironment to engine-tests (@keturn)
    • #4987 test(ChunkMeshWorker): initial attempt at using reactor-test (@keturn)

    🐌 Performance

    • #5029 performance(network): shutdown faster with parallelization (@keturn)

    📚 Documentation

    • #5019 doc: replace IRC link with Discord (@keturn)
    • #4994 doc: update README (@jdrueckert)

    ⚙️ Logistics

    • #5068 build(idea): exclude some things from import suggestions (@keturn)
    • #5065 build(idea): fix parameters in run configurations (@skaldarnar)
    • #5027 build(checkstyle): update to version 10.2, update .idea to match (@keturn)
    • #5020 build: extract project metrics/analytics to terasology-metrics gradle plugin (@keturn)
    • #5007 build(idea): update dictionary and gitignores (@keturn)
    • #4568 build(modules): add :modules:reportModuleOrder task (@keturn)

    🧩 Other Changes

    • #5021 security: upgrade dependencies (@keturn)
    • #4999 made changes in BlockCommands.java to prevent adding of wrong number … (@ujjman)

    Module Changelog

    🚀 Features

    • Terasology/AdditionalItemPipes#25 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/AdditionalRails#53 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@pollend)
    • Terasology/AdditionalRails#52 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/AdvancedRails#13 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/AdventureAssets#43 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Alchemy#23 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/AlterationEffects#33 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Anatomy#16 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/AnotherWorldPlants#12 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Apiculture#19 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/BasicCrafting#12 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Behaviors#96 feat: simulate gravity-less movement, add movement plugin for falling (@jdrueckert)
    • Terasology/Behaviors#89 feat!: Replace Pathfinding with FlexiblePathfinding (part 2) (@skaldarnar)
    • Terasology/Behaviors#80 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/BiomesAPI#19 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/BlockPicker#21 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Books#36 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Breathing#19 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/ChangingBlocks#13 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/ClimateConditions#58 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@pollend)
    • Terasology/ClimateConditions#57 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Climbables#10 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/CombatSystem#93 feat: add slimeBall projectile and clean up projectile assets (@jdrueckert)
    • Terasology/CombatSystem#89 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/ComputerMonitors#11 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Cooking#161 feat: add missing recipes to the CookingRecipes (@dragonempire96)
    • Terasology/Cooking#159 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/CoreAssets#11 feat: add slime ball item (@jdrueckert)
    • Terasology/DamagingBlocks#22 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Dialogs#30 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Drops#12 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Durability#15 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/DynamicCities#106 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Economy#27 feat: make shop screen optional (@skaldarnar)
    • Terasology/Economy#25 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/EdibleFlora#15 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/EdibleSubstance#8 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Equipment#137 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/EquipmentSmithing#15 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/EventualSkills#18 feat(#17): add notification on new skill learned (@MrGizmo123)
    • Terasology/EventualSkills#16 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Exoplanet#25 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Explosives#11 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/FallingBlocks#12 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/FlexiblePathfinding#25 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/FlowingLiquids#38 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Fluid#36 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/FluidComputerIntegration#9 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/FunnyBlocks#29 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Furnishings#14 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Genome#24 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Gooey#13 feat: add sound and tooltip assets (@jdrueckert)
    • Terasology/GooeyDefence#71 feature: update shop with economy, add notification (@jdrueckert)
    • Terasology/GooeyDefence#69 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/GooeysQuests#69 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/GrowingFlora#41 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Health#97 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/HumanoidCharacters#13 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Hunger#28 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/IRLCorp#41 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/InGameHelp#14 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/InGameHelpAPI#12 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Inferno#27 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Inventory#49 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/ItemPipes#41 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/ItemRendering#22 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Journal#18 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/KComputers#13 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Kallisti#5 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/LightAndShadow#253 feat: add in-game shop in pregame phase (@jdrueckert)
    • Terasology/LightAndShadow#236 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Lost#40 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Machines#56 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/ManualLabor#60 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/ManualLaborEventualSkills#7 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/MasterOfOreon#99 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Maze#12 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/MetalRenegades#184 feat: add custom MetalRenegades loading screen (@jdrueckert)
    • Terasology/MetalRenegades#173 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Minesweeper#27 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Minimap#32 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/MobileBlocks#12 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/ModularComputers#23 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/ModuleTestingEnvironment#67 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/MultiBlock#29 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/MusicDirector#5 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/NameGenerator#35 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Notifications#9 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Pathfinding#67 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/PhysicalStats#11 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Portals#6 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/PotentialEnergyDevices#6 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Potions#69 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Projectile#20 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Rails#88 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Sample#128 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Scenario#63 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Seasons#9 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/SegmentedPaths#21 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Sensors#13 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Signalling#32 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/SimpleFarming#121 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Smithing#18 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Spawning#8 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/StaticCities#34 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/StructuralResources#19 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/StructureTemplates#72 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/SubstanceMatters#16 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Tasks#28 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Thirst#27 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/TutorialQuests#20 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@MrGizmo123)
    • Terasology/Valentines#2 feat: add heart block (@jdrueckert)
    • Terasology/WeatherManager#30 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/WildAnimals#87 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/WildAnimalsGenome#15 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Workstation#19 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/WorkstationCrafting#29 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/WorldlyTooltip#21 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/WorldlyTooltipAPI#3 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)
    • Terasology/Xmas#12 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)

    🐛 Bug Fixes

    • Terasology/BasicCrafting#13 fix(checkstyle): Fix checkstyle issues and Copyrights (@DarkWeird)
    • Terasology/Behaviors#105 fix: Prevent movement to origin after spawning (@skaldarnar)
    • Terasology/Behaviors#92 fix: FlexiblePathfinding migration follow-ups (@skaldarnar)
    • Terasology/Behaviors#91 fix: revert replacement of behavior node prefabs for findPathTo, moveAlongPath and moveTo (@jdrueckert)
    • Terasology/ChangingBlocks#15 fix: make ChangingBlocks case insensitive via BlockUri (@jdrueckert)
    • Terasology/Equipment#139 fix(138): MysticNecklace type (@kvaithin)
    • Terasology/FlexiblePathfinding#29 fix: fix and re-enable some pathfinding tests (@jdrueckert)
    • Terasology/LightAndShadow#254 fix: prevent npe on player death by thrown spear (@skaldarnar)
    • Terasology/Minimap#33 fix: player arrow not rendered correctly (@mohamedation)
    • Terasology/TutorialProfiling#5 fix: blank homepage (@jdrueckert)

    🧰 Maintenance

    • Terasology/AlterationEffects#34 chore: resolve checkstyle problems (@pollend)
    • Terasology/Behaviors#104 refactor: rename checkFleeStopAction -> checkFleeContinueAction (@Jacob-Rueckert)
    • Terasology/Behaviors#103 chore: clean up some code (@jdrueckert)
    • Terasology/Behaviors#102 chore: apply workaround for @In malfunction in actions (@jdrueckert)
    • Terasology/Behaviors#100 refactor: invert air and solid block symbols in test world definition (@jdrueckert)
    • Terasology/Behaviors#98 chore: temporarily disable failing test (@jdrueckert)
    • Terasology/Behaviors#97 refactor: use EntityBuilder for creating test character (@jdrueckert)
    • Terasology/Behaviors#94 chore: add debug logs for movement plugins (@jdrueckert)
    • Terasology/Behaviors#93 chore: remove no longer existing CharacterMovement fields from prefabs (@jdrueckert)
    • Terasology/Behaviors#90 chore: clean up test prefabs (@jdrueckert)
    • Terasology/Behaviors#88 chore: Use FlexiblePathfinding / Remove Pathfinding (@skaldarnar)
    • Terasology/Books#38 chore: fix checkstyle problems (@pollend)
    • Terasology/Books#37 chore: migrate getMesh() (@pollend)
    • Terasology/Cities#52 chore: remove unused dependency on Pathfinding (@skaldarnar)
    • Terasology/ComputerMonitors#12 chore: resolve checkstyle problems (@pollend)
    • Terasology/Cooking#162 chore: remove migrated recipes (@jdrueckert)
    • Terasology/CoreWorlds#44 chore: remove Perlin (@jdrueckert)
    • Terasology/Dialogs#32 chore: fix checkstyle issues (@skaldarnar)
    • Terasology/FlexiblePathfinding#28 refactor: invert air and solid block symbols in test world definition (@jdrueckert)
    • Terasology/FlexiblePathfinding#26 chore: FlexiblePathfinding migration follow-ups (@skaldarnar)
    • Terasology/Fluid#37 chore: fix assorted style and linter issues (@keturn)
    • Terasology/Gooey#14 chore: add MawGooey tooltip icon asset and remove MawGooey prefab and dependencies (@jdrueckert)
    • Terasology/Gooey#12 chore: remove no longer existing CharacterMovement fields from prefabs (@jdrueckert)
    • Terasology/GooeysQuests#72 chore: remove no longer existing CharacterMovement fields from prefabs (@jdrueckert)
    • Terasology/GooeysQuests#71 refactor: Adjust for Behaviors#88 (@skaldarnar)
    • Terasology/GooeysQuests#70 chore: remove unused dependency on Pathfinding (@skaldarnar)
    • Terasology/Journal#20 chore: migrate getMesh() (@pollend)
    • Terasology/LightAndShadow#258 chore: remove unused Behaviors dependency (@jdrueckert)
    • Terasology/LightAndShadow#257 chore: remove unused dependency on Pathfinding (@skaldarnar)
    • Terasology/LightAndShadow#255 chore: move CombatSystem deltas from LaSR to LaS (@jdrueckert)
    • Terasology/LightAndShadowResources#81 chore: remove fireball duplicates and reference CombatSystem:fireBall (@jdrueckert)
    • Terasology/LightAndShadowResources#80 chore: remove no longer existing CharacterMovement fields from prefabs (@jdrueckert)
    • Terasology/LightAndShadowResources#78 chore: move CombatSystem deltas from LaSR to LaS (@jdrueckert)
    • Terasology/MasterOfOreon#103 chore: remove no longer existing CharacterMovement fields from prefabs (@jdrueckert)
    • Terasology/MasterOfOreon#102 refactor: Adjust for Behaviors#89 (@skaldarnar)
    • Terasology/MasterOfOreon#101 refactor: Adjust for Behaviors#88 (@skaldarnar)
    • Terasology/MetalRenegades#181 chore: consume tooltip icon from Gooey module (@jdrueckert)
    • Terasology/MetalRenegades#180 chore: remove no longer existing CharacterMovement fields from prefabs (@jdrueckert)
    • Terasology/MetalRenegades#179 refactor: Adjust for Behaviors#89 (@skaldarnar)
    • Terasology/MetalRenegades#178 refactor: Adjust for Behaviors#88 (@skaldarnar)
    • Terasology/Pathfinding#70 refactor: remmove GeneralPathFinder utility class (@skaldarnar)
    • Terasology/PlantPack#20 chore: adjust formatting of map in ChangingBlocks component (@jdrueckert)
    • Terasology/Rails#89 chore: make CoreAssets dependency optional (@ujjman)
    • Terasology/ShatteredPlanes#22 chore: replace Perlin with Simplex (@jdrueckert)
    • Terasology/StaticCities#36 chore: replace Perlin with Simplex (@jdrueckert)
    • Terasology/StaticCities#35 chore: remove dependency on Pathfinding (@skaldarnar)
    • Terasology/WildAnimals#97 refactor: rename checkFleeStopAction -> checkFleeContinueAction (@Jacob-Rueckert)
    • Terasology/WildAnimals#96 chore: move MawGooey tooltip icon to Gooey module (@jdrueckert)
    • Terasology/WildAnimals#95 chore: remove no longer existing CharacterMovement fields from prefabs (@jdrueckert)
    • Terasology/WildAnimals#94 chore: FlexiblePathfinding migration follow-ups (@skaldarnar)
    • Terasology/WildAnimals#93 chore: remove reference to non-existant component (@jdrueckert)
    • Terasology/WildAnimals#92 refactor: Adjust for Behaviors#88 (@skaldarnar)
    • Terasology/WildAnimals#91 chore: remove unused dependency on Pathfinding (@skaldarnar)
    • Terasology/WildAnimalsGenome#18 refactor: Adjust for Behaviors#89 (@skaldarnar)
    • Terasology/WildAnimalsGenome#17 refactor: Adjust for Behaviors#88 (@skaldarnar)
    • Terasology/Workstation#20 chore: resolve checkstyle problems (@pollend)

    🧪 Tests

    • Terasology/Behaviors#107 test: use ModuleTestingEnvironment provided by engine-tests (@jdrueckert)
    • Terasology/Behaviors#101 test: re-enable movement tests (@jdrueckert)
    • Terasology/Behaviors#99 test: add basic movement tests (@jdrueckert)
    • Terasology/BlockDetector#13 test: use ModuleTestingEnvironment provided by engine-tests (@keturn)
    • Terasology/DynamicCities#109 test: use ModuleTestingEnvironment provided by engine-tests (@keturn)
    • Terasology/FlexiblePathfinding#27 test: add basic pathfinding test cases (@jdrueckert)
    • Terasology/Health#99 test: use ModuleTestingEnvironment provided by engine-tests (@keturn)
    • Terasology/ItemPipes#42 test: use ModuleTestingEnvironment provided by engine-tests (@keturn)
    • Terasology/NameGenerator#36 test: use ModuleTestingEnvironment provided by engine-tests (@keturn)
    • Terasology/Rails#90 test: use ModuleTestingEnvironment provided by engine-tests (@keturn)
    • Terasology/SimpleFarming#122 test: use ModuleTestingEnvironment provided by engine-tests (@keturn)
    • Terasology/Tasks#29 test: use ModuleTestingEnvironment provided by engine-tests (@keturn)

    📚 Documentation

    • Terasology/Behaviors#106 doc: migrate wiki to docsify page (@skaldarnar)
    • Terasology/TutorialProfiling#3 doc: introducing JDK Mission Control's JMX Console (@keturn)
    Source code(tar.gz)
    Source code(zip)
    sha256sums.txt(86 bytes)
    TerasologyOmega.zip(157.20 MB)
  • v5.3.0-rc.2(Aug 23, 2022)

    Changes

    :rocket: Features

    • #5061 feat: add type handlers for SimpleUri and BlockUri (@jdrueckert)

    :bug: Bug Fixes

    • #5062 fix: do not crash on unexpected map format in GenericMapTypeHandler (@jdrueckert)
    • #5066 fix(rendering): Don't try to set window icon on macOS (@skaldarnar)
    • #5065 build(idea): fix parameters in run configurations (@skaldarnar)

    :toolbox: Maintenance

    • #5067 chore(world): improve logging for BlockManager (@skaldarnar)
    • #5066 fix(rendering): Don't try to set window icon on macOS (@skaldarnar)
    • #5064 chore: simplify implementation in Assets to one-liners (@skaldarnar)

    :gear: Logistics

    • #5062 fix: do not crash on unexpected map format in GenericMapTypeHandler (@jdrueckert)
    • #5068 build(idea): exclude some things from import suggestions (@keturn)
    • #5065 build(idea): fix parameters in run configurations (@skaldarnar)
    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(157.20 MB)
  • v5.3.0-rc.1(Aug 21, 2022)

    Changes

    • #5029 performance(network): shutdown faster with parallelization (@keturn)
    • #5044 test(MTE): allow a test to add its own EngineSubsystem (@keturn)
    • #5039 test(MTE): replace IsolatedMTEExtension with JUnit's TestInstance.Lifecycle (@keturn)
    • #5041 test(MTE)! set default NetworkMode to NONE (@keturn)
    • #5010 test: Move ModuleTestingEnvironment to engine-tests (@keturn)
    • #4987 test(ChunkMeshWorker): initial attempt at using reactor-test (@keturn)
    • #4999 made changes in BlockCommands.java to prevent adding of wrong number … (@ujjman)
    • #4980 fix: fix game screen goes black bug (@sid2002CN)

    :rocket: Features

    • #5037 test: add NetworkMode setting to MTE (@keturn)
    • #5022 test: reducing logspam (@keturn)
    • #5028 feat(InjectionHelper): inject() returns the object for chaining (@keturn)
    • #5025 feat(#4948): restrict default memory settings (@jdrueckert)
    • #4621 feat: Add BlockAreac#distanceSquared (@shadowasphodel2919)
    • #5000 feat: add ball mesh (@jdrueckert)
    • #4996 feat: add convenience method PhyiscEngine#recomputeCharacterCollider(entity) (@skaldarnar)
    • #4994 doc: update README (@jdrueckert)
    • #4947 feat: micrometer metrics over JMX (@keturn)
    • #4898 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)

    :bug: Bug Fixes

    • #5053 fix(facade): fix broken --load-last-game (@keturn)
    • #5054 fix: do not run behavior simulation while paused (@keturn)
    • #5048 fix(TypeHandlerLibrary): fix error-during-error-logging in GenericMap (@keturn)
    • #5043 fixup! test(MTE)! set default NetworkMode to NONE (#5041) (@skaldarnar)
    • #5036 fix(PathManager): allow paths to be symlinks (@keturn)
    • #5035 fix(templates): replace perlin with simplex as the default override.cfg (@keturn)
    • #5017 fix(Context)!: correct signature of Context.get (@keturn)
    • #5013 fix(test): set jacoco excludes for engine-test's unitTest and integrationTest tasks (@keturn)
    • #5014 fix(ChunkProcessingPipeline): base thread pool size on available processors (@keturn)
    • #5008 fix(SelectionScreen): be more robust in the face of save files with incomplete manifests (@keturn)
    • #5006 fix: path quirk on an M1 Mac using Azul JDK 11 (@Cervator)
    • #4973 bugfix: resolve BlockSelectionRenderer (@pollend)

    :toolbox: Maintenance

    • #5053 fix(facade): fix broken --load-last-game (@keturn)
    • #5052 chore(EntityPool): workaround "unchecked generics array creation" for getEntitiesWith (@keturn)
    • #5048 fix(TypeHandlerLibrary): fix error-during-error-logging in GenericMap (@keturn)
    • #5033 chore: CoreRegistry removal from engine.network (@keturn)
    • #5027 build(checkstyle): update to version 10.2, update .idea to match (@keturn)
    • #5040 test: add info logs to help track down sporadic (@jdrueckert)
    • #5026 chore(#4908): match IntelliJ and Checkstyle formatting rules (@jdrueckert)
    • #5021 security: upgrade dependencies (@keturn)
    • #5016 chore: remove unused ByteCodeReflectFactory (@keturn)
    • #5009 chore(StorageManager): typos and minor code cleanups (@keturn)
    • #4786 chore(rendering): migrate chunk mesh generation Flux (@pollend)
    • #5007 build(idea): update dictionary and gitignores (@keturn)
    • #4768 chore: move SideBitFlags into Side (@pollend)
    • #5002 chore: Update lwjgl version to 3.3.1 (@DarkWeird)
    • #4970 chore: remove TessellatorHelper (@pollend)
    • #4992 chore: remove no longer existing CharacterMovement fields from prefabs (@jdrueckert)
    • #4989 refactor(Chunk): provide default implementations of methods where possible (@keturn)
    • #4972 refactor: split out chunk work as a seperate helper class (@pollend)
    • #4984 chore: add security policy (@jdrueckert)
    • #4888 chore: remove deprecated Chunk#getPosition(Vector3i) (@pollend)
    • #4965 chore: remove deprecated method in Block (@pollend)
    • #4898 feat(gestaltv7-eventsystem): Migration Event and @ReceiveEvent to gestalt's (@DarkWeird)

    :books: Documentation

    • #5019 doc: replace IRC link with Discord (@keturn)
    • #4994 doc: update README (@jdrueckert)
    • #4984 chore: add security policy (@jdrueckert)

    :gear: Logistics

    • #5022 test: reducing logspam (@keturn)
    • #5027 build(checkstyle): update to version 10.2, update .idea to match (@keturn)
    • #5026 chore(#4908): match IntelliJ and Checkstyle formatting rules (@jdrueckert)
    • #5020 build: extract project metrics/analytics to terasology-metrics gradle plugin (@keturn)
    • #5007 build(idea): update dictionary and gitignores (@keturn)
    • #5006 fix: path quirk on an M1 Mac using Azul JDK 11 (@Cervator)
    • #4568 build(modules): add :modules:reportModuleOrder task (@keturn)
    • #5002 chore: Update lwjgl version to 3.3.1 (@DarkWeird)
    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(157.60 MB)
  • v5.2.0(Dec 5, 2021)

    Special thanks to everyone that contributed to this release: @ahv15, @casals, @Cervator, @DarkWeird, @jdrueckert, @keturn, @meetcshah19, @mohamedation, @opl-, @pollend, @rzats, @skaldarnar, @tolziplohu, @ujjman

    :rocket: Features

    • #4147 feat: set limits for maximum memory use. (@keturn)
    • #4753 feature(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • #4833 feat: add priority to Updates annotation of facet providers (@tolziplohu)
    • #4843 feat: hide NotificationOverlay (chat box) if HUD is hidden (@skaldarnar)
    • #4849 feat: add random distribution utilities from AnotherWorld (@tolziplohu)
    • #4855 feat: add debug bounding box rendering (@pollend)
    • #4857 feat: add commands for visual debugging (bounding boxes, etc.) (@skaldarnar)
    • #4858 feat: make render distance for (partially) transparent blocks adjustable (@tolziplohu)
    • #4902 feat(RelevanceSystem): addRelevanceEntity returns the relevant region (@keturn)
    • #4906 feat: add vertex attribute bindings for short and byte (@pollend)
    • #4934 feat(i18n): Update Ukrainian locale with current strings (@rzats)
    • #4935 feat(i18n): Update engine settings i18n (@rzats)
    • #4946 feat(F3): show process data size and limit (@keturn)
    • #4968 feat: add support for skinned Mesh (@pollend)

    :bug: Bug Fixes

    • #4840 fix: resolve Advance World Settings issue (@pollend)
    • #4841 fix: Better handling of ComponentSystem loading with optional dependencies (@DarkWeird)
    • #4845 fix(build): use Maps from guava, not Google API Client (@keturn)
    • #4847 fix: enable block tinting in LOD chunks (@tolziplohu)
    • #4853 bugfix: change bullet physics implement into component system (@pollend)
    • #4862 bugfix: PojoPrefab was getting seriliazed as a value type (@pollend)
    • #4863 bugfix: fix debug for skeleton renderer (@pollend)
    • #4884 fix(autoconfig): fix back-animation to empty screen (@DarkWeird)
    • #4892 bugfix: migrate deprecated texture2D (@pollend)
    • #4897 fix(rendering): replicate SkeletalMesh fields, fix debug skeleton scale (@pollend)
    • #4895 fix(PathManager): working directory should always be a fallback (@keturn)
    • #4907 fix(headless-fixes): remove InputSystem and NuiManager from headlesses (@DarkWeird)
    • #4916 build(server): fix --homedir arg for gradle task server (@DarkWeird)
    • #4919 fix: Avoid a couple cases where no NUIManager would cause trouble. (@Cervator)
    • #4932 fix(engine/rendering): Fix ChunkMeshRenderer listens to wrong deactivate event (@opl-)
    • #4937 fix(SystemConfig): ensure thread max limit is never less than one (@keturn)
    • #4962 fix(headless-execution): MainMenuState can handle headless now. Correct loadingstate for headless clients. (@DarkWeird)

    :toolbox: Maintenance

    • #4157 chore[facade]: use picocli for processing command line options (@keturn)
    • #4795 chore: remove finite check from LocalPlayer (@pollend)
    • #4799 refactor: replace usage of ThreadManagerSubsystem with reactor Scheduler (@pollend)
    • #4800 refactor: transaction manager with reactor (@pollend)
    • #4839 refactor(GameScheduler): provide ThreadMonitor-compatible schedule method (@keturn)
    • #4842 chore: adjust default logback configuration (@skaldarnar)
    • #4844 chore: add maven repo that contains jpastebin (@jdrueckert)
    • #4864 chore: stop ignoring checkstyle findings (@jdrueckert)
    • #4867 chore: remove SubmersibleCamera abstraction (@pollend)
    • #4869 chore: address some checkstyle warnings (@skaldarnar)
    • #4870 chore: some lintings and suggested simplifications (@keturn)
    • #4873 chore: upgrade crashreporter dependency 4.1.0 -> 4.2.0 (@jdrueckert)
    • #4878 chore: remove internal ai system for engine (@pollend)
    • #4883 chore: remove unused render utilities (@pollend)
    • #4885 chore: minor fixes and introduce some test cases for VertexResource (@pollend)
    • #4886 chore: add test cases for IndexResource and address some problems found through test cases (@pollend)
    • #4887 chore: cleanup extra qualification for org.joml from termath migration (@pollend)
    • #4889 chore: remove deprecated LegacyGsonTypeHandlerAdapter (@pollend)
    • #4890 chore(PathManager): remove some "probably isn't needed anymore" code (@keturn)
    • #4893 refactor: split chunkMesh to ChunkMeshImpl (@pollend)
    • #4894 refactor: construct block mesh generator single shape with standard mesh data (@pollend)
    • #4896 refactor: refactor mesh generation for IconMeshFactory (@pollend)
    • #4899 ci: fail checkstyle on all findings except warning.LOW (@jdrueckert)
    • #4901 chore(LocationComponent): provide convenience constructor for Vector3i (@keturn)
    • #4903 chore: update vertex attribute with put(T[] data) (@pollend)
    • #4905 refactor: add test cases for vertex resource and update api with put and replace (@pollend)
    • #4918 chore(StateMainMenu): include message in toString representation for debugging (@keturn)
    • #4931 refactor(translation): use ResourceUrn instead of SimpleUrn (@DarkWeird)
    • #4936 chore: remove some slow logging (@Cervator)
    • #4939 chore: add reactor-extra to dependencies (@keturn)
    • #4954 chore: overhaul issue template (@jdrueckert)
    • #4964 chore: remove usage of Tesselator for BlockSelectionRenderer (@pollend)

    :gear: Logistics

    • #4938 build(javadoc): disable doclint messages about missing tags (@keturn)
    • #4859 build(facade): oops, junit was supposed to be a test-only dependency (@keturn)
    • #4864 chore: stop ignoring checkstyle findings (@jdrueckert)
    • #4891 build(IntelliJ): turn on checkstyle.scan-before-checkin (@keturn)
    • #4899 ci: fail checkstyle on all findings except warning.LOW (@jdrueckert)
    • #4914 build(IntelliJ): add inspections allowing IntelliJ to correct "modifier out of order" infractions (@keturn)
    • #4916 build(server): fix --homedir arg for gradle task server (@DarkWeird)
    • #4927 build(ci): build using a java 11 toolchain (@keturn)
    • #4928 build: upgrade minimum compatible version to Java 11 (@keturn)
    • #4938 build(javadoc): disable doclint messages about missing tags (@keturn)
    • #4939 chore: add reactor-extra to dependencies (@keturn)
    • #4941 Revert "build(ci): build using a java 11 toolchain" (@keturn)
    • #4942 build: build using a java 11 toolchain (@keturn)
    • #4945 build: fix mystery Artifactory issue (@Cervator)
    • #4955 chore: reduce logger level for animation-action link on behaviors (@casals)

    :snail: Performance

    • #4961 perf: remove trove map and added flags to Side (@pollend)
    • #4872 perf: upgrade to use proto3 (@pollend)
    • #4881 perf: minor adjusments to chunkprocessing pipeline (@pollend)
    • #4882 perf: replace creating streams by arrays in stream (@DarkWeird)
    • #4794 perf: improve performance of mesh generator for chunks (@pollend)

    :test_tube: Tests

    • #3992 test(TypeHandlerLibrary): RuntimeDelegatingTypeHandler test failure (@keturn)
    • #4913 test(modules): make com.google.truth assertion library available (@keturn)
    • #4940 test: add unitTest target to TypeHandlerLibrary and facades (@keturn)
    • #4944 test(TypeHandlerLibrary): provide a logger during test execution (@keturn)
    • #4846 test: have IntelliJ ask if tests should be run by itself or gradle (@keturn)

    Module Changes

    :rocket: Features

    • Terasology/DynamicCities#103 feat: make SolidRasterizer and ResourceProvider scalable to enable LOD chunks (@tolziplohu)
    • Terasology/Economy#22 feat: add shop-screen (@ahv15)
    • Terasology/Economy#27 feat: make shop screen optional (@skaldarnar)
    • Terasology/FlexibleMovement#4 feature(alternative-behavior): Provide alternatives and overrides for Behavior Pathfinding-related behaviors. (@DarkWeird)
    • Terasology/GooeyDefence#71 feature: update shop with economy, add notification (@jdrueckert)
    • Terasology/Hunger#30 feat: add food icon beside the Hunger Bar (@mohamedation)
    • Terasology/LightAndShadow#225 feat: add in-game statistics screen (@ahv15)
    • Terasology/LightAndShadow#228 feat: implementation for economy (@ahv15)
    • Terasology/LightAndShadow#238 feat: extend dialogue with fool to explain gameplay (@ujjman)
    • Terasology/LightAndShadow#250 feat: making players invulnerable before game round starts (@ujjman)
    • Terasology/LightAndShadow#253 feat: add in-game shop in pregame phase (@jdrueckert)
    • Terasology/MetalRenegades#89 feat: add oldwest-style buildings (@jdrueckert)
    • Terasology/MetalRenegades#161 feat: cypress/juniper and baobab trees with GrowingFlora (@tolziplohu)
    • Terasology/MetalRenegades#162 feat: make facet providers scalable to enable LOD chunks (@tolziplohu)
    • Terasology/MetalRenegades#163 feat: add explicit facet provider priority (@tolziplohu)
    • Terasology/MetalRenegades#165 feat: tweak distribution of grass and dry rivers (@tolziplohu)
    • Terasology/ModuleTestingEnvironment#66 feat: async functions to make sure blocks/chunks are loaded (@keturn)
    • Terasology/SimpleFarming#120 feat: split GenomeAuthoritySystem based on modules (@skaldarnar)
    • Terasology/StructureTemplates#70 feat: order block shapes in toolbox alphabetically by ResourceUrn (@skaldarnar)
    • Terasology/Thirst#29 feat: add water droplet icon beside the Thirst Bar (@mohamedation)
    • Terasology/WildAnimals#86 feat: add luring behavior (@meetcshah19)

    :bug: Bug Fixes

    • Terasology/Behaviors#81 fix(MTE): update MTE version. (@DarkWeird)
    • Terasology/Behaviors#85 fix: fleeing entities must have a CharacterMovement component (@skaldarnar)
    • Terasology/BiomesAPI#18 fix: enable block tinting in LOD chunks (@tolziplohu)
    • Terasology/CombatSystem#85 fix: arrow cooldown time (@jdrueckert)
    • Terasology/CoreRendering#72 bugfix: migrate deprecated texture2D (@pollend)
    • Terasology/CoreRendering#70 fix: resolve issues with vignette (@pollend)
    • Terasology/CoreWorlds#42 fix: circular dependency with new facet update priority (@tolziplohu)
    • Terasology/Drops#13 fix(getRandomLoot): use correct type for map query (@keturn)
    • Terasology/DynamicCities#105 fix: building placement in parcels (@jdrueckert)
    • Terasology/Economy#23 fix: avoid NPE in WalletClientSystem by using a binding (@skaldarnar)
    • Terasology/FlowingLiquids#36 fix: update block tinting API (@keturn)
    • Terasology/Gooey#10 fix: remove mawgooey animation duplicates (@jdrueckert)
    • Terasology/Gooey#11 fix: remove mawgooey armature duplicates (@jdrueckert)
    • Terasology/GrowingFlora#40 fix: planted saplings will actually grow (@tolziplohu)
    • Terasology/GrowingFlora#42 fix: NullPointerException in Advanced Game Setup (@tolziplohu)
    • Terasology/Health#98 fix: only send OnDamagedEvent on positive amount of damage (@skaldarnar)
    • Terasology/Hunger#29 fix: increase spacing of hunger bar to health bar (@mohamedation)
    • Terasology/Hunger#31 fix: move breathing bar above hunger bar when Hunger is active (@mohamedation)
    • Terasology/Inventory#47 fix: avoid NPE in binding for container title (@skaldarnar)
    • Terasology/LightAndShadow#233 fix: Destroy magic barriers and make players vulnerable on headless servers (@ahv15)
    • Terasology/LightAndShadow#235 fix: coinciding-keys (@ahv15)
    • Terasology/LightAndShadow#242 fix: don't update kill statistics if player died of own account (@ujjman)
    • Terasology/LightAndShadow#252 fix: NPE while using kill command on platform (@ujjman)
    • Terasology/LightAndShadow#254 fix: prevent npe on player death by thrown spear (@skaldarnar)
    • Terasology/LightAndShadowResources#75 fix: make yinyang blocks indestructible (@jdrueckert)
    • Terasology/LightAndShadowResources#76 fix: changed deltas/CombatSystem/prefab directory name to deltas/Comb… (@ujjman)
    • Terasology/MetalRenegades#170 fix: correctly reference MeshAnimations in enemyGooey.prefab (@skaldarnar)
    • Terasology/MetalRenegades#177 fix: check for existing selections on both trading sides (@jdrueckert)
    • Terasology/Minimap#35 fix: make DefaultMinimapSystem client-only (@jdrueckert)
    • Terasology/ModuleTestingEnvironment#64 fix: more consistent disposal of resources at the end of the test (@keturn)
    • Terasology/SegmentedPaths#20 bugfix: change systems to always be accessible between remote/authority (@pollend)
    • Terasology/StructureTemplates#69 fix: create new vector instances when filling blocksToPlace (@skaldarnar)
    • Terasology/Thirst#28 fix: increase spacing of thirst bar to health bar (@mohamedation)
    • Terasology/Thirst#30 fix: move breathing bar above thirst bar when Thirst is active (@mohamedation)
    • Terasology/Towers#3 fix: align with recent major migrations (@jdrueckert)
    • Terasology/WildAnimals#89 fix: add missing FleeComponent properties (@casals)

    :toolbox: Maintenance

    • Terasology/Alchemy#22 chore: adjust for Terasology/GrowingFlora#38 (@skaldarnar)
    • Terasology/Behaviors#82 Fixed checkstyle issues (@casals)
    • Terasology/Behaviors#84 refactor(Prepare-for-FlexableMoving): replace WalkingBlock(PF) usingwith Vector3ic(Joml) in work package's interfaces and impls. (@DarkWeird)
    • Terasology/Breathing#21 chore: fix checkstyle issues (@mohamedation)
    • Terasology/CombatSystem#86 chore: update copyright and optimize imports (@jdrueckert)
    • Terasology/CoreRendering#71 chore:replace SubmersibleCamera with Camera (@pollend)
    • Terasology/DynamicCities#104 chore: small code and doc improvements (@skaldarnar)
    • Terasology/Economy#24 chore: fix checkstyle warnings (@skaldarnar)
    • Terasology/FlexibleMovement#2 Update module to latest workspace (@DarkWeird)
    • Terasology/GooeyDefence#68 refactor!: move shop screen to Economy module (@ahv15)
    • Terasology/GooKeeper#53 chore: fixed checkstyle issues (@ujjman)
    • Terasology/GrowingFlora#38 refactor: remove dependency on AnotherWorld (@tolziplohu)
    • Terasology/Health#93 chore: overhaul the block damage system (@skaldarnar)
    • Terasology/Health#94 chore: adjust for changes to BlockPart (@pollend)
    • Terasology/LightAndShadow#224 refactor: split restart system (@ahv15)
    • Terasology/LightAndShadow#232 refactor: clean up Score system (@ahv15)
    • Terasology/LightAndShadow#237 chore: fix checkstyle findings (@jdrueckert)
    • Terasology/LightAndShadow#245 refactor: merge las and ligthandshadow pkgs into lightandshadow pkg (@jdrueckert)
    • Terasology/LightAndShadow#255 chore: move CombatSystem deltas from LaSR to LaS (@jdrueckert)
    • Terasology/LightAndShadowResources#78 chore: move CombatSystem deltas from LaSR to LaS (@jdrueckert)
    • Terasology/MetalRenegades#164 chore: adjust for changes to BlockPart (@pollend)
    • Terasology/MetalRenegades#169 style: fix all remaining Checkstyle warnings (@skaldarnar)
    • Terasology/MetalRenegades#171 chore: reduce max number of enemies (@jdrueckert)
    • Terasology/ModuleTestingEnvironment#68 chore: make runUntil/runWhile return values consistent (@keturn)
    • Terasology/ModuleTestingEnvironment#73 refactor: split public MainLoop methods from Engine-management code (@keturn)
    • Terasology/Pathfinding#65 chore: replace Rectangle with BlockArea (@pollend)
    • Terasology/Pathfinding#68 chore: CheckStyle and functional interface 🚮 (@keturn)
    • Terasology/Spawning#9 chore: extract ai logic from engine (@jdrueckert)
    • Terasology/Spawning#10 chore: fix checkstyle issues (@jdrueckert)
    • Terasology/StructureTemplates#71 style: fix checkstyle warnings (@skaldarnar)
    • Terasology/WeatherManager#28 chore: remove unused components and migrate deprecated noise implementation (@pollend)
    • Terasology/WorkstationCrafting#30 chore: migrate getMesh() (@pollend)
    • Terasology/WorldlyTooltip#22 chore: migrate getMesh() (@pollend)

    :arrow_up: Gestalt Component Migration

    • Terasology/AdditionalItemPipes#24 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/AdditionalRails#51 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/AdvancedRails#12 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/AdventureAssets#42 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Alchemy#21 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/AlchemyPlantGenerator#8 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/AlterationEffects#32 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Anatomy#15 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/AnotherWorldPlants#11 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Apiculture#18 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/BasicCrafting#11 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Behaviors#78 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/BlockPicker#20 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Books#35 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Breathing#18 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Caves#18 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/ChangingBlocks#12 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/ClimateConditions#56 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Climbables#9 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/CombatSystem#82 feature(ecs-gestalt): Migrate Components to gestalt's Components (@skaldarnar)
    • Terasology/ComputerMonitors#10 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/CoreWorlds#40 feature(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/CustomOreGen#16 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/DamagingBlocks#21 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Dialogs#29 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Drops#11 Feature/migrate ecs to gestalt (@DarkWeird)
    • Terasology/Durability#14 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/DynamicCities#102 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Economy#21 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/EdibleFlora#14 feature(ecs-gestalt): Migrate Components to gestalt's Components (@pollend)
    • Terasology/EdibleSubstance#7 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Equipment#136 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/EquipmentSmithing#14 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/EventualSkills#15 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Exoplanet#24 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Explosives#10 feature(ecs-gestalt): Migrate Components to gestalt's Components (@pollend)
    • Terasology/FallingBlocks#11 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Fences#18 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/FlowingLiquids#34 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Fluid#35 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/FluidComputerIntegration#8 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/FunnyBlocks#28 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Furnishings#12 feature(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Genome#23 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/GooeyDefence#67 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/GooeysQuests#68 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/GooKeeper#48 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/GrowingFlora#37 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Health#95 Feature/migrate ecs to gestalt (@DarkWeird)
    • Terasology/HumanoidCharacters#12 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Hunger#27 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Inferno#26 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/InGameHelp#13 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/InGameHelpAPI#11 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Inventory#48 feature(ecs-gestalt): Migrate Components to gestalt's Components. (@skaldarnar)
    • Terasology/IRLCorp#40 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/ItemPipes#40 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/ItemRendering#21 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/JoshariasSurvival#72 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Journal#17 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/KComputers#12 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/LightAndShadow#227 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/LightAndShadowResources#71 feature(ecs-gestalt): Migrate Components to gestalt's Components (@pollend)
    • Terasology/Lost#39 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Machines#55 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/ManualLabor#56 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/ManualLaborEventualSkills#6 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/MasterOfOreon#98 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Maze#11 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/MetalRenegades#156 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Minesweeper#26 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Minimap#29 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/MobileBlocks#11 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/ModularComputers#22 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/ModuleTestingEnvironment#57 feature(ecs-gestalt): Migrate Components to gestalt's Components (@pollend)
    • Terasology/MultiBlock#27 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/MusicDirector#4 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/NameGenerator#33 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Notifications#8 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/OreGeneration#15 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/PhysicalStats#10 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/PolyWorld#42 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Portals#5 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/PotentialEnergyDevices#5 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Potions#68 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Projectile#19 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Rails#86 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Sample#127 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Scenario#62 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/SegmentedPaths#19 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Sensors#12 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/ShatteredPlanes#21 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Signalling#31 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/SimpleFarming#115 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Smithing#17 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/SoundyGenetics#6 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Spawning#6 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/StaticCities#32 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/StructuralResources#18 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/StructureTemplates#67 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/SubstanceMatters#15 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Tasks#27 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Thirst#26 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/TutorialWorldGeneration#23 fix(ecs-gestalt): Migrate Components to gestalt's Components (@tolziplohu)
    • Terasology/WeatherManager#29 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/WildAnimals#84 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/WildAnimalsGenome#14 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Workstation#18 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/WorkstationCrafting#28 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/WorkstationInGameHelp#12 fix(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • Terasology/Xmas#11 feature(ecs-gestalt): Migrate Components to gestalt's Components (@pollend)

    :books: Documentation & Tutorials

    • Terasology/CoreRendering#69 doc: add graphic effects documentation (@jdrueckert)
    • Terasology/TutorialWorldGeneration#22 doc: update tutorial with some new API features (@tolziplohu)
    • Terasology/TutorialAssetSystem#15 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialBehaviors#10 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialBlockFamily#2 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialDynamicCities#8 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialEntitySystem#1 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialEventsInteractions#1 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialGroups#1 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialI18n#1 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialMinimalEngineDemo#4 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialMultiplayerExtras#1 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialNui#11 chore: Update tutorial to latest engine (@DarkWeird)
    • Terasology/TutorialParticleSystem#2 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialPathfinding#2 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialProfiling#2 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialQuests#19 chore: Update tutorial to latest engine (@DarkWeird)
    • Terasology/TutorialSectors#4 chore: Update tutorials to lastest engine (@DarkWeird)
    • Terasology/TutorialSnakeTournament#9 chore: Update tutorials to lastest engine (@DarkWeird)

    :test_tube: Tests

    • Terasology/DynamicCities#107 test: add SettlementEntityManagerTest for placeParcel (@keturn)
    • Terasology/DynamicCities#94 test: Convert to MTEExtension (@keturn)
    • Terasology/ModuleTestingEnvironment#56 test: fix TestEventReceiverTest by giving target entity a DummyComponent (@skaldarnar)
    • Terasology/ModuleTestingEnvironment#65 test: remove old DeprecationTest; replace ReuseEngineTest (@keturn)
    • Terasology/Pathfinding#69 test(ConnectNavGraphChunk): use the world generator that creates floors (@keturn)
    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(157.90 MB)
  • v5.2.0-rc.4(Nov 19, 2021)

    Changes

    • #3992 test(TypeHandlerLibrary): RuntimeDelegatingTypeHandler test failure (@keturn)
    • #4934 feat(i18n): Update Ukrainian locale with current strings (@rzats)

    :rocket: Features

    • #4946 feat(F3): show process data size and limit (@keturn)

    :bug: Bug Fixes

    • #4897 fix(rendering): replicate SkeletalMesh fields, fix debug skeleton scale (@pollend)
    • #4932 fix(engine/rendering): Fix ChunkMeshRenderer listens to wrong deactivate event (@opl-)
    • #4944 test(TypeHandlerLibrary): provide a logger during test execution (@keturn)
    • #4940 test: add unitTest target to TypeHandlerLibrary and facades (@keturn)
    • #4937 fix(SystemConfig): ensure thread max limit is never less than one (@keturn)

    :toolbox: Maintenance

    • #4936 chore: remove some slow logging (@Cervator)
    • #4893 refactor: split chunkMesh to ChunkMeshImpl (@pollend)
    • #4939 chore: add reactor-extra to dependencies (@keturn)
    • #4896 refactor: refactor mesh generation for IconMeshFactory (@pollend)
    • #4867 chore: remove SubmersibleCamera abstraction (@pollend)
    • #4931 refactor(translation): use ResourceUrn instead of SimpleUrn (@DarkWeird)
    • #4878 chore: remove internal ai system for engine (@pollend)
    • #4795 chore: remove finite check from LocalPlayer (@pollend)
    • #4905 refactor: add test cases for vertex resource and update api with put and replace (@pollend)
    • #4954 chore: overhaul issue template (@jdrueckert)

    :books: Documentation

    • #4938 build(javadoc): disable doclint messages about missing tags (@keturn)
    • #4954 chore: overhaul issue template (@jdrueckert)

    :gear: Logistics

    • #4938 build(javadoc): disable doclint messages about missing tags (@keturn)
    • #4945 build: fix mystery Artifactory issue (@Cervator)
    • #4928 build: upgrade minimum compatible version to Java 11 (@keturn)
    • #4942 build: build using a java 11 toolchain (@keturn)
    • #4940 test: add unitTest target to TypeHandlerLibrary and facades (@keturn)
    • #4941 Revert "build(ci): build using a java 11 toolchain" (@keturn)
    • #4927 build(ci): build using a java 11 toolchain (@keturn)
    • #4939 chore: add reactor-extra to dependencies (@keturn)
    • #4914 build(IntelliJ): add inspections allowing IntelliJ to correct "modifier out of order" infractions (@keturn)
    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(157.89 MB)
  • v5.2.0-rc.3(Oct 3, 2021)

  • v5.2.0-rc.2(Oct 1, 2021)

    Changes

    • #4881 perf: minor adjusments to chunkprocessing pipeline (@pollend)
    • #4872 perf: upgrade to use proto3 (@pollend)
    • #4882 perf: replace creating streams by arrays in stream (@DarkWeird)

    :rocket: Features

    • #4902 feat(RelevanceSystem): addRelevanceEntity returns the relevant region (@keturn)
    • #4906 feat: add vertex attribute bindings for short and byte (@pollend)
    • #4857 feat: add commands for visual debugging (bounding boxes, etc.) (@skaldarnar)
    • #4855 feat: add debug bounding box rendering (@pollend)
    • #4887 chore: cleanup extra qualification for org.joml from termath migration (@pollend)
    • #4853 bugfix: change bullet physics implement into component system (@pollend)

    :bug: Bug Fixes

    • #4916 build(server): fix --homedir arg for gradle task server (@DarkWeird)
    • #4907 fix(headless-fixes): remove InputSystem and NuiManager from headlesses (@DarkWeird)
    • #4885 chore: minor fixes and introduce some test cases for VertexResource (@pollend)
    • #4886 chore: add test cases for IndexResource and address some problems found through test cases (@pollend)
    • #4895 fix(PathManager): working directory should always be a fallback (@keturn)
    • #4892 bugfix: migrate deprecated texture2D (@pollend)
    • #4884 fix(autoconfig): fix back-animation to empty screen (@DarkWeird)
    • #4853 bugfix: change bullet physics implement into component system (@pollend)

    :toolbox: Maintenance

    • #4903 chore: update vertex attribute with put(T[] data) (@pollend)
    • #4913 test(modules): make com.google.truth assertion library available (@keturn)
    • #4901 chore(LocationComponent): provide convenience constructor for Vector3i (@keturn)
    • #4885 chore: minor fixes and introduce some test cases for VertexResource (@pollend)
    • #4886 chore: add test cases for IndexResource and address some problems found through test cases (@pollend)
    • #4890 chore(PathManager): remove some "probably isn't needed anymore" code (@keturn)
    • #4887 chore: cleanup extra qualification for org.joml from termath migration (@pollend)
    • #4889 chore: remove deprecated LegacyGsonTypeHandlerAdapter (@pollend)
    • #4883 chore: remove unused render utilities (@pollend)

    :books: Documentation

    • #4885 chore: minor fixes and introduce some test cases for VertexResource (@pollend)
    • #4886 chore: add test cases for IndexResource and address some problems found through test cases (@pollend)

    :gear: Logistics

    • #4916 build(server): fix --homedir arg for gradle task server (@DarkWeird)
    • #4891 build(IntelliJ): turn on checkstyle.scan-before-checkin (@keturn)
    • #4895 fix(PathManager): working directory should always be a fallback (@keturn)
    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(157.73 MB)
  • v5.2.0-rc.1(Aug 29, 2021)

    Changes

    • #4846 test: have IntelliJ ask if tests should be run by itself or gradle (@keturn)

    :rocket: Features

    • #4753 feature(ecs-gestalt): Migrate Components to gestalt's Components. (@DarkWeird)
    • #4843 feat: hide NotificationOverlay (chat box) if HUD is hidden (@skaldarnar)
    • #4147 feat: set limits for maximum memory use. (@keturn)
    • #4849 feat: add random distribution utilities from AnotherWorld (@tolziplohu)
    • #4157 chore[facade]: use picocli for processing command line options (@keturn)
    • #4833 feat: add priority to Updates annotation of facet providers (@tolziplohu)

    :bug: Bug Fixes

    • #4862 bugfix: PojoPrefab was getting seriliazed as a value type (@pollend)
    • #4863 bugfix: fix debug for skeleton renderer (@pollend)
    • #4858 feat: make render distance for (partially) transparent blocks adjustable (@tolziplohu)
    • #4847 fix: enable block tinting in LOD chunks (@tolziplohu)
    • #4845 fix(build): use Maps from guava, not Google API Client (@keturn)
    • #4841 fix: Better handling of ComponentSystem loading with optional dependencies (@DarkWeird)
    • #4840 fix: resolve Advance World Settings issue (@pollend)

    :toolbox: Maintenance

    • #4873 chore: upgrade crashreporter dependency 4.1.0 -> 4.2.0 (@jdrueckert)
    • #4870 chore: some lintings and suggested simplifications (@keturn)
    • #4799 refactor: replace usage of ThreadManagerSubsystem with reactor Scheduler (@pollend)
    • #4864 chore: stop ignoring checkstyle findings (@jdrueckert)
    • #4869 chore: address some checkstyle warnings (@skaldarnar)
    • #4794 perf: improve performance of mesh generator for chunks (@pollend)
    • #4844 chore: add maven repo that contains jpastebin (@jdrueckert)
    • #4842 chore: adjust default logback configuration (@skaldarnar)
    • #4157 chore[facade]: use picocli for processing command line options (@keturn)
    • #4840 fix: resolve Advance World Settings issue (@pollend)
    • #4839 refactor(GameScheduler): provide ThreadMonitor-compatible schedule method (@keturn)
    • #4800 refactor: transaction manager with reactor (@pollend)

    :books: Documentation

    • #4859 build(facade): oops, junit was supposed to be a test-only dependency (@keturn)

    :gear: Logistics

    • #4864 chore: stop ignoring checkstyle findings (@jdrueckert)
    • #4859 build(facade): oops, junit was supposed to be a test-only dependency (@keturn)
    • #4147 feat: set limits for maximum memory use. (@keturn)
    • #4845 fix(build): use Maps from guava, not Google API Client (@keturn)
    • #4841 fix: Better handling of ComponentSystem loading with optional dependencies (@DarkWeird)
    Source code(tar.gz)
    Source code(zip)
    md5sums.txt(54 bytes)
    sha256sums.txt(86 bytes)
    TerasologyOmega.zip(156.96 MB)
  • v5.1.1(Aug 8, 2021)

    :warning: This release has a known issue that crashes the game in the Advanced Game Setup (AGS) stage "Universe Setup". For details, see https://github.com/MovingBlocks/Terasology/issues/4911 :warning:

    Module Changes

    🐛 Bug Fixes

    Terasology/Inventory#46 fix: retrieve character entity within binding (@skaldarnar)

    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(156.44 MB)
  • v5.1.0(Aug 8, 2021)

    Special thanks to everyone that contributed to this release: @ahv15, @BenjaminAmos, @Cervator, @IsaiahBlanks, @jdrueckert, @KdotJPG, @keturn, @meetcshah19, @NicholasBatesNZ, @NicolaasJKotze, @pollend, @remram44, @ryuk156, @skaldarnar, @tolziplohu

    🚀 Features

    • #4828 feat: restore biome-based grass and foliage tinting (@tolziplohu)
    • #4823 feat: add SetDirection event to set player orientation (@ahv15)
    • #4818 feat: allow for ranged item activation (@skaldarnar)
    • #4813 feat(ModuleManager): do not depend on PathManager to load modules from the classpath (@keturn)
    • #4802 feat(noise): Add domain rotation to mitigate Perlin squareness (@KdotJPG)

    🐛 Bug Fixes

    • #4829 fix: resolve issue when loading a world a second time (@pollend)
    • #4827 fix: flip first two verticies for double sided meshes (@pollend)
    • #4826 fix: replicate mesh and material over network (@meetcshah19)
    • #4824 fix: collide with characters instead of walking through (@jdrueckert)
    • #4816 fix: resolve problems with gui editor (@pollend)

    🧰 Maintenance

    • #4817 chore: remove unecessary cast (@pollend)
    • #4815 chore(rendering): cleanup and remove deprecated glDisabled (@pollend)
    • #4809 refactor(GameState): extract common code from MainMenu and HeadlessSetup (@keturn)
    • #4804 chore: remove url check when updating repositories (@pollend)

    🐢 Performance

    • #4825 perf: remove extra locking in pipeline to avoid thread contention (@pollend)
    • #4821 perf: remove extra length prepend (@pollend)
    • #4820 perf(network): replace de-/inflate with lz4 for both directions (@pollend)
    • #4814 perf: avoid calling GLFW.glfwGetWindowSize (@pollend)

    🧪 Tests

    • #4830 test: deprecate WorldProvidingHeadlessEnvironment (@keturn)

    ⚙️ Logistics

    • #4812 build: avoid transitive dependency on org.reflections (@keturn)

    Module Changes

    🚀 Features

    Terasology/BiomesAPI#17 feat: restore biome-based grass and foliage tinting (@tolziplohu) Terasology/CoreRendering#68 feat: restore biome-based grass and foliage tinting (@tolziplohu) Terasology/CoreWorlds#41 feat: restore biome-based grass and foliage tinting (@tolziplohu) Terasology/FlowingLiquids#35 feat: add support for biome-based block tinting (@tolziplohu) Terasology/GenericRocks#3 feat: update sandstone and slate textures (@tolziplohu) Terasology/Inventory#45 feat: add inventory screen titles (@jdrueckert) Terasology/LightAndShadow#226 feat: use item activation (right click) for magic staff (@skaldarnar) Terasology/LightAndShadow#229 feat: face opponents base on spawn (@ahv15) Terasology/LightAndShadow#230 feat: use cards for defense (@ahv15) Terasology/LightAndShadowResources#70 feat: add range to magic staff (@skaldarnar) Terasology/ManualLabor#50 feat: Add shearing system (@meetcshah19) Terasology/ManualLabor#51 feat: add wool item drop (@meetcshah19) Terasology/ManualLabor#52 feat: add Durability and assembly process for CrudeShears (@meetcshah19) Terasology/ManualLabor#54 feat: add particle effect and shearing sound (@meetcshah19) Terasology/MetalRenegades#150 feat: rock strata in rocky biome (@tolziplohu) Terasology/MetalRenegades#155 feat: variable-size mesas based on noise (@tolziplohu) Terasology/MetalRenegades#158 feat: add world preview colors for new biomes (@tolziplohu) Terasology/MetalRenegades#159 feat: shallower or completely dry rivers in drier areas (@tolziplohu) Terasology/MetalRenegades#160 feat: block tinting support for MR biomes and dry grass in scrublands (@tolziplohu) Terasology/ModuleTestingEnvironment#58 feat!: load only modules listed as dependencies, not all in modules/ (@keturn)

    🐛 Bug Fixes

    Terasology/BiomesAPI#16 fix: add initialize() method to Biome (@tolziplohu) Terasology/CombatSystem#81 fix: picking up weapons (@ahv15) Terasology/CoreWorlds#39 fix: move block caching to Biome.initialize (@tolziplohu) Terasology/Furnishings#13 fix: incorrect placement of doors (@ahv15) Terasology/Health#96 fix: only render damage overlay on client receiving damage (@skaldarnar) Terasology/LightAndShadow#216 fix: update surfaces facet to prevent tree's in certain locations (@ahv15) Terasology/LightAndShadow#223 fix: move block caching out of static initializer (@tolziplohu) Terasology/ManualLabor#53 fix: increase attack event priority and consume it (@meetcshah19) Terasology/ManualLabor#57 fix: Consume event only when shearing (@meetcshah19) Terasology/ManualLabor#58 fix: particle effect in multiplayer (@meetcshah19) Terasology/MetalRenegades#154 fix: move block caching to Biome.initialize (@tolziplohu) Terasology/MetalRenegades#157 fix: clamp steepness to avoid inverted rivers (@tolziplohu) Terasology/Minimap#30 fix: use correct tile size for minimap grid (@tolziplohu) Terasology/ModuleTestingEnvironment#62 fix: docs link on README.md (@jdrueckert) Terasology/SimpleFarming#117 fix(#116): Hard crash destroying Joshaberry Bush due to missing berryseed. (@NicolaasJKotze) Terasology/WildAnimals#85 fix: play animal damage sounds for all clients (@skaldarnar)

    🧰 Maintenance

    Terasology/CoreAdvancedAssets#5 chore: add display name to chest prefab (@jdrueckert) Terasology/DynamicCities#101 chore(BlockBufferSystem): reduce log spam (@skaldarnar) Terasology/JoshariasSurvival#73 chore: remove obsolete itemPickup delta (@jdrueckert) Terasology/LightAndShadowResources#73 chore: Adjust for changes in MovingBlocks/Terasology#4818 (@skaldarnar) Terasology/ModuleTestingEnvironment#59 chore: set scenario properties in the Config (@keturn)

    🧪 Tests

    Terasology/ManualLabor#59 test: Add shearing system tests (@meetcshah19) Terasology/NameGenerator#34 test: port to ModuleTestingEnvironment, replacing NameGeneratorTestingEnvironment (@keturn) Terasology/Pathfinding#64 test: port to ModuleTestingEnvironment from HeadlessEnvironment (@keturn) Terasology/Rails#87 test: re-enable tests with the current MTE version (@keturn)

    📚 Documentation

    Terasology/LightAndShadow#221 doc: add documentation (@ahv15)

    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(156.44 MB)
  • v5.0.0(Jul 5, 2021)

    :information_source: The minimal system requirements have changed. The GPU now has to support at least OpenGL 3.3 :information_source:

    :warning: This release has a known rendering bug showing square artifacts in the corner/at the edges of the screen (#4542). :warning:

    Changes

    Contains all changes from:

    • https://github.com/MovingBlocks/Terasology/releases/tag/v5.0.0-rc.1
    • https://github.com/MovingBlocks/Terasology/releases/tag/v5.0.0-rc.2

    :toolbox: Maintenance

    • #4817 chore: remove unecessary cast (@pollend)
    Source code(tar.gz)
    Source code(zip)
    md5sums.txt(54 bytes)
    sha256sums.txt(86 bytes)
    TerasologyOmega.zip(155.64 MB)
  • v5.0.0-rc.2(Jul 4, 2021)

    Changes

    • #4806 test: mockito inline for modules (@keturn)
    • #4796 test: provide a subsystem to register the unittest module (@keturn)
    • #4780 perf: replace stream with for loop when retrieving facets. (@pollend)

    :rocket: Features

    • #4755 feature: migrate RegionOutlineRenderer and allow support to specify AllocationType (@pollend)

    :bug: Bug Fixes

    • #4797 fix: make BlockArea.iterator() use the same order as noise and facet data (@tolziplohu)
    • #4788 Revert "chore: remove finite check from LocalPlayer" (@jdrueckert)
    • #4791 fix(ci): backslash-escape multi-line shell command (@keturn)
    • #4787 fix: use link to new Jenkins in readme (@Avalancs)
    • #4781 style: fix checkstyle findings (@jdrueckert)
    • #4779 fix(audio): skip update when player is invalid (@pollend)
    • #4766 fix(rendering): remove unsupported ARB for opengl 2.0 (@pollend)
    • #4759 chore: fix PackageDeclarationCheck findings (@jdrueckert)
    • #4740 fix: prevent NPE with DelayManager on remote clients (@skaldarnar)
    • #4752 fix: lightgeometrypass to allow shadows to be disabled (@pollend)

    :toolbox: Maintenance

    • #4808 build(IntelliJ): update annotation paths and other configurations (@keturn)
    • #4807 test: make parts of PathManagerProvider public for use by MTE (@keturn)
    • #4793 chore: minor cleanup Block (@pollend)
    • #4777 chore: remove DynamicPriorityBlockingQueue (@pollend)
    • #4789 chore: empty default implementation for RenderSystem interface (@skaldarnar)
    • #4788 Revert "chore: remove finite check from LocalPlayer" (@jdrueckert)
    • #4784 refactor: convert Jenkinsfile to declarative pipeline syntax (@jdrueckert)
    • #4782 feat: expose scale for BrownianNoise (@pollend)
    • #4781 style: fix checkstyle findings (@jdrueckert)
    • #4776 refactor(bootstrap): remove duplicate registerComponents method (@keturn)
    • #4772 chore: cache hashcode for uniform id (@pollend)
    • #4662 chore: remove finite check from LocalPlayer (@pollend)
    • #4771 chore: minor cleanup for ChunkProcessingPipeline (@pollend)
    • #4760 chore(rendering): migrate use of ARB bind framebuffer EXT and reworked readBackPixels (@pollend)
    • #4765 chore: cleanup migrate shaders into CoreRendering (@pollend)
    • #4762 chore: reusue Floatbuffer for uniform (@pollend)
    • #4764 build: update TeraConfig to 1.6.3 and adjust IntelliJ settings (@skaldarnar)
    • #4756 chore: replace getAllSides with values() (@pollend)
    • #4763 chore: remove check for Opengl33 (@pollend)
    • #4758 style: address checkstyle findings (@jdrueckert)
    • #4761 chore: upgrade to gestalt 7.1.0 from snapshot (@keturn)
    • #4759 chore: fix PackageDeclarationCheck findings (@jdrueckert)
    • #4747 chore(ModuleManager): refactor and document engine module setup (@keturn)
    • #4740 fix: prevent NPE with DelayManager on remote clients (@skaldarnar)
    • #4670 chore: replace map with switch cases for Side (@pollend)

    :books: Documentation

    • #4787 fix: use link to new Jenkins in readme (@Avalancs)
    • #4749 build(Jenkinsfile): improve pipeline performance; add docstrings (@skaldarnar)
    • #4754 doc: update minimal system requirements for OpenGL 3.3 (@skaldarnar)

    :gear: Logistics

    • #4808 build(IntelliJ): update annotation paths and other configurations (@keturn)
    • #4791 fix(ci): backslash-escape multi-line shell command (@keturn)
    • #4784 refactor: convert Jenkinsfile to declarative pipeline syntax (@jdrueckert)
    • #4764 build: update TeraConfig to 1.6.3 and adjust IntelliJ settings (@skaldarnar)
    • #4749 build(Jenkinsfile): improve pipeline performance; add docstrings (@skaldarnar)
    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(155.64 MB)
  • v5.0.0-rc.1(Jun 8, 2021)

    :exclamation: This preview build has a known regression on MacOS. The game does not render correctly and instead just displays a red flickering screen. :exclamation:

    :information_source: The minimal system requirements have changed. The GPU now has to support at least OpenGL 3.3 :information_source:

    Changes

    :rocket: Features

    • #4724 feat?: Don't swallow exceptions in EventSystem#invoke (@skaldarnar)
    • #4705 feat: rework location change event (@pollend)
    • #4634 feat(rendering)!: add vertex attribute scheme (@pollend)
    • #4620 feat!: refactor mesh for GL330 (@pollend)
    • #4614 feat: Allow entities to be rendered like chunks (@4Denthusiast)
    • #4613 feat: migrate gestalt v7 discord subsystem (@pollend)
    • #4609 feat: allow repeated jumping by key press (@mahela97)
    • #4599 feat(player-config): migrate PlayerConfig to AutoConfig (@DarkWeird)
    • #4597 feat(entitySystem): Introduce DoNotPersist annotation (@antag99)

    :bug: Bug Fixes

    • #4751 fix: world generation with zones (@tolziplohu)
    • #4745 fix: resolve lightgeometry pass problems with nonfunctional point lights (@pollend)
    • #4744 fix: correct extra indices sphere builder (@pollend)
    • #4726 fix: adjust 'Land.ogg' sound asset to be mono channel (@skaldarnar)
    • #4725 fix: ensure absolute path in PathManager (@skaldarnar)
    • #4732 fix(rendering): correct order of initilization for GLSLShader (@pollend)
    • #4723 fix(DiscordRPC): NPE on shutdown (@skaldarnar)
    • #4717 fix: version directives need to come before comments (@jdrueckert)
    • #4711 fix: set core profile to 3.3 (@Hume2)
    • #4706 fix: fix opengl memory leak in OpenGLMesh (@pollend)
    • #4700 fix: remove restriction of input bindings to source modules (@jdrueckert)
    • #4696 fix(engine): explicitly register TypeHandler.class as representative for TypeHandlerLibrary (@skaldarnar)
    • #4694 fix: don't restrict world generators to a certain type of module source (@keturn)
    • #4693 fix: update hasInSight with camera position instead of viewPosition (@pollend)
    • #4691 fix: update FloatingTextRender with GLSL change for mesh layout (@pollend)
    • #4689 fix: correct getModulesProviding for screenquad (@pollend)
    • #4677 fix: replace gl_TexCoord with v_uv0 for post_frag (@pollend)
    • #4676 fix: texture3d is deprecated after 120 for nvidia cards (@pollend)
    • #4674 fix: UI in game will get scaled with chaning "Resolution Scale" in world (@pollend)
    • #4672 fix: version file for launcher + increment to next major release (@Cervator)
    • #4660 fix(json-config-loading): Fix handling invalid AutoConfigs and config writing (@DarkWeird)
    • #4651 fix: add excluded entity for rayTrace (@pollend)
    • #4630 fix: Gitignore some more files that Intellij automatically generates. (@4Denthusiast)
    • #4625 fix: correct colliders for LIQUID (@pollend)
    • #4619 fix: avoid writing window size of 0 to the config (@mahela97)
    • #4608 fix: could place blocks inside the player (@tolziplohu)
    • #4602 fix: restore version info (@keturn)
    • #4590 fix: Don't move the camera when window is refocused (@tolziplohu)
    • #4531 fix: save world gen facet information in manifest (@pollend)

    :toolbox: Maintenance

    • #4750 chore(rendering): remove usage of GL_ARB_framebuffer and reworked shadowmap and lightpass (@pollend)
    • #4748 chore: consume TeraNUI v3 release (@jdrueckert)
    • #4746 chore(rendering): remove refrences to immediate mode (@pollend)
    • #4741 chore: change entity dump filename to '-entityDump.json' (@skaldarnar)
    • #4739 chore(rendering): remove OpenGLUtils (@pollend)
    • #4738 chore: mark stateChange as deprecated with changes to camera (@pollend)
    • #4737 chore(rendering): remove bindings from ShaderManager (@pollend)
    • #4735 refactor(rendering)!: migrate chunk vertex attribute changes (@pollend)
    • #4731 refactor(rendering): rework AABBRenderer with Mesh and update default glsl (@pollend)
    • #4730 chore: migrate light deferred shader and cleanup usage of Sphere (@pollend)
    • #4729 chore(rendering): migrate sky sphere (@pollend)
    • #4722 chore: rename engine-module.txt to module.txt (@jdrueckert)
    • #4721 refactor(rendering): migrate ssaoBlur for GLSL 330 (@pollend)
    • #4720 refactor(rendering): replace defaultTextured with outputPass shader (@pollend)
    • #4715 rendering: fix canvas fbo render with GL330 (@pollend)
    • #4714 chore: mark methods using deprecated opengl for removal camera (@pollend)
    • #4712 rendering: migrate extension logic (@pollend)
    • #4697 chore: add doc and todo on module presence as source check (@jdrueckert)
    • #4695 chore(telemetry): drop module scanning from telemetry.TelemetryScreen (@jdrueckert)
    • #4692 chore: remove unused displaylist in SpriteParticleRenderer (@pollend)
    • #4690 chore: migrate lightBufferPass to glsl 330 (@pollend)
    • #4688 chore: migrate prePostComposite to glsl 330 (@pollend)
    • #4687 chore: migrate downsampler to glsl 330 (@pollend)
    • #4686 chore: migrate highpass to glsl 330 (@pollend)
    • #4685 chore: remove unused shaders (@pollend)
    • #4684 chore: migrate vignette to glsl 330 (@pollend)
    • #4683 chore: migrate blur to glsl 330 (@pollend)
    • #4682 chore: migrate sobel to glsl 330 (@pollend)
    • #4681 chore: migrate initialPost to glsl 330 (@pollend)
    • #4680 chore: migrate lightshafts to glsl 330 (@pollend)
    • #4679 chore: migrate ssao 330 (@pollend)
    • #4678 chore: migrate tone mapping to GLSL 330 (@pollend)
    • #4675 chore(telemetry): drop module scanning from telemetry.Metrics (@jdrueckert)
    • #4668 chore: replace map with switch for mapping direction (@pollend)
    • #4667 chore: clean up usage of getPosition for chunk (@pollend)
    • #4666 chore: inline ImmutableCollectionUtil within CollectionWidgetFactory (@pollend)
    • #4664 chore: replace TypeMap with ClassToInstanceMap (@pollend)
    • #4663 chore: remove unused collection utilities (@pollend)
    • #4661 chore: add logging for when location is invalid for playing sound (@pollend)
    • #4659 chore: combine NativeHelper and OS (@pollend)
    • #4658 chore: remove EnumBooleanMap in favor of a boolean array (@pollend)
    • #4657 chore: replace ViewFrustum with JOML FrustumIntersection (@pollend)
    • #4656 chore: replace hex logic from color (@pollend)
    • #4654 chore: minor cleanup for string operations (@pollend)
    • #4652 chore: simplify logic for getShapeFor (@pollend)
    • #4644 chore: remove unused qualifier org.joml.* (@pollend)
    • #4636 chore: remove GLBufferPool (@pollend)
    • #4635 chore: remove deprecated ProtobufSerializer (@keturn)
    • #4624 chore: remove unused gelatinousCube asset (@pollend)
    • #4623 chore: improve block mesh generator (@pollend)
    • #4622 chore: migrate to gestalt v7—fork 🅰, keep subsystems separate (@keturn)
    • #4616 chore: add primative mesh producer in-place of OpenGLUtils#renderFullscreenQuad (@pollend)
    • #4615 chore: refactor physics voxel world system (@pollend)
    • #4610 chore: remove DebugPropertySystem (@pollend)
    • #4604 chore: TeraNUI 3.0 update: Implemented UISkinTypeHandler.getAsString (@BenjaminAmos)
    • #4600 refactor!: Simplify Chunk inheritance hierarchy (@4Denthusiast)
    • #4598 chore: update to TeraNUI 3.0 from 1.5, for gestalt separation (@keturn)
    • #4584 refactor(CreateWorldEntity): aggressive refactoring (@keturn)
    • #4719 style: fix checkstyle findings (@jdrueckert)
    • #4710 style: fix AnnotationUseStyle (@skaldarnar)
    • #4702 style: improve code style (@skaldarnar)

    :turtle: Performance

    • #4727 perf: reuse Vector3f/Quaternionf between game ticks (@skaldarnar)

    :books: Documentation

    • #4734 doc: broken wiki link in README (@meetcshah19)
    • #4728 doc: improve document of PlaySound and PlaySoundForOwner events (@skaldarnar)
    • #4665 doc: Update README (@Onkar627)
    • #4594 doc: Fixing spelling error (@mahela97)

    :test_tube: Tests

    • #4703 test(ModuleManager): new tests for existing behavior (@keturn)
    • #4648 test: provide a stub PathManager during tests (@keturn)
    • #4605 test: add "TteTest" tag (@jdrueckert)

    :gear: Logistics

    • #4701 ci: split Analytics stage (@jdrueckert)
    • #4669 build(github): add common 'labels.json'; update release drafter config (@skaldarnar)
    • #4649 build(modules): use same DependencyInfo -> String logic for modules and engine (@skaldarnar)
    • #4645 build(modules): improve matching of compatible versions in module deps (@keturn)
    • #4632 logistics: Replace usage of jcenter (shutting down) (@Cervator)
    • #4631 logistics: use new pre-cached builder image in Jenkins (@Cervator)
    • #4611 build: add tasks for 'unit' and 'integration' tests (@skaldarnar)
    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(156.61 MB)
  • v4.3.0(Mar 20, 2021)

    Engine Changes

    :rocket: Features

    • #4235 feature(autoconfig): migrate SystemConfig (@DarkWeird)
    • #4543 feat(ModuleManager): do not load all modules in the classpath by default (@keturn)
    • #4324 feat(TypeHandlerLibrary): Add generic Serializer for TypeHandlerLibrary. (@DarkWeird)
    • #4567 feat: Reduce the amount of gaps that appear while LOD chunks load (@4Denthusiast)
    • #4565 feature(subsystem-prepare): extract Network and R&R code from EventSystemImpl (@pollend)
    • #4513 feat: improve debug overlay with compass and additional heaps (MovingBlocks/Terasology#1942) (@pollend)
    • #4271 feat(discord-rpc): improve the system (@iHDeveloper)
    • #4546 feat(logs): improve prefab deserialization logging (@jdrueckert)
    • #4244 feat: Reviving of "UI for editing arbitrary types and AutoConfigs" (@DarkWeird)

    :bug: Bug Fixes

    • #4585 fix(player): target box not disappearing when target is removed (@antag99)
    • #4588 fix(PathManager): avoid calling Files method on paths that may not exist yet (@keturn)
    • #4581 fix: ModuleManager: ensure engine module is always present in environment (@antag99)
    • #4577 fix: trigger update for location component for physics update (@pollend)
    • #4552 fix(ConstructorLibrary): prevent AccessControlException by using AccessController.doPrivilaged (@DarkWeird)
    • #4541 fix: correct matrix calculation for compound shapes (#4403) (@pollend)

    :toolbox: Maintenance

    • #4589 refactor: restore generated files to their generated location (@keturn)
    • #4578 chore: migrate into engine (@pollend)
    • #4521 chore: remove usage of fixed function pipline methods (@pollend)
    • #4560 refactor! move engine code in to org.terasology.engine package (@keturn)
    • #4556 refactor(PathManager): do all the createDirectories at once (@keturn)
    • #4562 refactor: move DiscordRPC to org.terasology.subsystem (@keturn)
    • #4559 chore(engine-test): use a temp directory instead of a Shrinkwrap archive (@keturn)
    • #4574 test: HeadlessEnvironment loads modules from classpath (@keturn)
    • #4579 test(modules): set default test case timeout to four minutes (@keturn)
    • #4572 test: initialize Bullet for [Headless]Environment (@keturn)
    • #4563 chore!: remove JUnit 4 from module dependencies (@keturn)
    • #4561 chore!: limit API for BlockComponent (2/2) (@skaldarnar)
    • #4528 chore!: limit API for BlockComponent (1/2) (@pollend)
    • #4549 chore: update with joml math and update copyright for LocationComponentTest (@pollend)
    • #4527 chore: replace FrustrumPlane with plane from joml-ext (@pollend)
    • #4548 chore: adding some null checks (@keturn)
    • #4540 refactor(ModuleManager): factor initiliaztion code to multiple methods (@keturn)
    • #4539 refactor(ModuleManager): replace interface with concrete class (@keturn)

    :gear: Logistics

    • #4564 chore: upgrade reflections to 0.9.12-MB from 0.9.10 (@keturn)
    • #4557 chore: upgrade guava to 30.1 from 23.0 (@keturn)
    • #4558 chore: upgrade gson to 2.8.6 from 2.6 (@keturn)
    • #4554 ci: buildSrc moved to build-logic (@keturn)
    • #4553 build: move buildSrc to build-logic (@keturn)
    • #4522 build: move more implementation details about gestalt out of terasology-module (@keturn)
    • #4533 chore: Updated default ports, server for logstash (@agent-q1)
    • #4463 build(PC): remove unused tasks for running headless server from source (@keturn)

    Module Changes

    :rocket: Features

    • feat: Add a red flash on receiving damage Terasology/Health#53 (@askneller)
    • feat: add better texture for Laputa Adamant Terasology/FlyingIslands#8 (@skaldarnar)
    • feat: add rigidbody collision support for cart to cart-rigid Terasology/Rails#78 (@pollend)
    • feat: ask ModuleManager to load classpath modules Terasology/ModuleTestingEnvironment#43 (@keturn)
    • feat: show all damage indicators if no instigator Terasology/Health#67 (@skaldarnar)
    • feat: crafting a wooden cup no longer requires crafting lvl 1 Terasology/ManualLabor#43 (@skaldarnar)
    • feat: update assets for minecart Terasology/Rails#76 (@pollend)
    • feat: add falling blocks support and LaputaAdamant block Terasology/FlyingIslands#5 (@sin3point14)
    • feature(autoconfig): migrate SystemConfig Terasology/ModuleTestingEnvironment#28 (@DarkWeird)
    • perf: improve performance of facet providers Terasology/Caves#16 (@pollend)

    :bug: Bug Fixes

    • fix: add exception to tests Terasology/BlockDetector#10 (@pollend)
    • fix: migrate packages Terasology/Volcanoes#9 (@pollend)
    • fix: fix normal calculation Terasology/SegmentedPaths#18 (@pollend)
    • fix: ModuleContext import in SerializationTest Terasology/Dialogs#23 (@jdrueckert)
    • fix: fixes module resolution error Terasology/ModuleTestingEnvironment#40 (@keturn)
    • fix: avoid NPE in RegenAuthoritySystem Terasology/Health#65 (@skaldarnar)
    • fix: initialize hutPosition vector to enable level spawning Terasology/Lost#36 (@skaldarnar)

    :books: Documentation

    • doc: improve README Terasology/FlyingIslands#7 (@skaldarnar)

    🧪 Tests

    • test: update paths to engine-test classes Terasology/Pathfinding#56 (@keturn)
    • test: fix RegenTest and disable BlockTest Terasology/Health#70 (@skaldarnar)
    • test: fix (some) failing MTE tests Terasology/Health#68 (@skaldarnar)
    • test: prevent test event handlers from interfering with each other Terasology/Health#66 (@keturn)
    • test: expect the serialized form to use fully-qualified names Terasology/Tasks#24 (@keturn)
    • test: migrate test to jupiter API Terasology/Machines#53 (@pollend)
    • test: migrate to jupiter test Terasology/StructureTemplates#62 (@pollend)
    • test: migrate test cases to jupiter Terasology/Cities#49 (@pollend)
    • test: migrate test cases to jupiter Terasology/BlockNetwork#17 (@pollend)
    • test: migrate test cases for jupiter Terasology/Minesweeper#22 (@pollend)
    • test: migreate junit test to Jupiter Terasology/StaticCities#30 (@pollend)
    • test: migrate test for jupiter Terasology/DynamicCities#91 (@pollend)
    • test: migrate test cases for jupiter api Terasology/FlexiblePathfinding#21 (@pollend)
    • test: migrate tests to JUnit 5 / Jupiter Terasology/NameGenerator#27 (@pollend)
    • test: cleanup test cases Terasology/Tasks#23 (@pollend)
    • test: clean up test cases and migrate to jupiter API Terasology/Seasons#6 (@pollend)
    • test: update test for junit5 Terasology/CommonWorld#10 (@pollend)
    • test: migrate test cases for jupiter Terasology/PolyWorld#39 (@pollend)
    • test: migrate test cases to jupiter Terasology/CoreWorlds#31 (@pollend)
    • test: migrate test cases to MTTExtension Terasology/Health#64 (@pollend)
    • test: migrate test cases for MTEExtension Terasology/Inventory#35 (@pollend)
    • test: migrate BlockDetectorSystemTest to MTEExtension Terasology/BlockDetector#9 (@pollend)
    • test: add unit test for 'BlockDamageRenderer#getDamageEffectsNumber' Terasology/Health#62 (@skaldarnar)
    • test: Added tests using MTE Terasology/Behaviors#42 (@agent-q1)

    :toolbox: Maintenance

    • chore: upgrade guava to 30.1 from 23.0 Terasology/Behaviors#69 (@DarkWeird)
    • chore: update cart wheel system Terasology/Rails#77 (@pollend)
    • chore: more logging, less exception hiding Terasology/ModuleTestingEnvironment#42 (@keturn)
    • chore: remove usage of fixed function pipline methods from shadow pass Terasology/CoreRendering#35 (@pollend)
    • refactor: remove usage of CoreRegistry for BiomeManager Terasology/BiomesAPI#11 (@pollend)
    Migration & Cleanups
    • chore: migrate off engine path Terasology/WildAnimals#80 (@pollend)
    • chore: migrate off engine path Terasology/StructuralResources#17 (@pollend)
    • chore: migrate packages off engine Terasology/AdditionalItemPipes#23 (@pollend)
    • chore: migrate engine off of engine path Terasology/WorkstationCrafting#27 (@pollend)
    • chore: migrate packages off of engine Terasology/Xmas#9 (@pollend)
    • chore: migrate off of engine package Terasology/WorldlyTooltip#17 (@pollend)
    • chore: migrate off of engine package Terasology/Sensors#11 (@pollend)
    • chore: migrate health off of engine Terasology/PhysicalStats#8 (@pollend)
    • chore: migrate off of engine package Terasology/MultiBlock#25 (@pollend)
    • chore: migrate off of engine package Terasology/MobileBlocks#9 (@pollend)
    • chore: migrate off engine path Terasology/Minimap#28 (@pollend)
    • chore: migrate off engine package Terasology/Drops#8 (@pollend)
    • chore: migrate health off of engine Terasology/ClimateConditions#50 (@pollend)
    • chore: migrate off engine path Terasology/AlterationEffects#28 (@pollend)
    • chore: migrate off engine path Terasology/AdditionalRails#48 (@pollend)
    • chore: migrate off engine path Terasology/WoodAndStone#75 (@pollend)
    • chore: migrate off of engine package Terasology/Volcanoes#10 (@pollend)
    • chore: migrate off engine path Terasology/Thirst#22 (@pollend)
    • chore: migrate off of engine package Terasology/Tasks#25 (@pollend)
    • chore: migrate off of engine package Terasology/SubstanceMatters#13 (@pollend)
    • chore: migrate off engine path Terasology/StructureTemplates#65 (@pollend)
    • chore: migrate packages off engine path Terasology/StructuralResources#16 (@pollend)
    • chore: migrate off of engine package Terasology/StoneCrafting#9 (@pollend)
    • chore: migrate off of engine package Terasology/Smithing#15 (@pollend)
    • chore: migrate off engine path Terasology/SimpleFarming#112 (@pollend)
    • chore: migrate off engine path Terasology/Signalling#30 (@pollend)
    • chore: migrate off engine path Terasology/Scenario#59 (@pollend)
    • chore: migrate off engine path Terasology/Sample#124 (@pollend)
    • chore: migrate off engine path Terasology/Rails#82 (@pollend)
    • chore: migrate off engine path Terasology/Projectile#16 (@pollend)
    • chore: migrate off engine path Terasology/Potions#66 (@pollend)
    • chore: migrate off of engine package Terasology/PotentialEnergyDevices#4 (@pollend)
    • chore: migrate off engine path Terasology/AdventureAssets#38 (@pollend)
    • chore: migrate off engine path Terasology/Alchemy#18 (@pollend)
    • chore: migrate off engine path Terasology/Anatomy#13 (@pollend)
    • chore: migrate off of engine package Terasology/BasicCrafting#8 (@pollend)
    • chore: migrate off engine path Terasology/BlockDetector#11 (@pollend)
    • chore: migrate off of engine package Terasology/BlockPicker#18 (@pollend)
    • chore: migrate off of engine package Terasology/Books#34 (@pollend)
    • chore: migrate off engine path Terasology/Breathing#16 (@pollend)
    • chore: migrate off engine path Terasology/Climbables#8 (@pollend)
    • chore: migrate off engine path Terasology/CombatSystem#76 (@pollend)
    • chore: migrate off of engine package Terasology/Compass#11 (@pollend)
    • chore: migrate off of engine package Terasology/Cooking#156 (@pollend)
    • chore: migrate off of engine package Terasology/CopperAndBronze#15 (@pollend)
    • chore: migrate off of engine package Terasology/CoreWorlds#33 (@pollend)
    • chore: migrate off engine path Terasology/DamagingBlocks#19 (@pollend)
    • chore: migrate off engine path Terasology/Durability#12 (@pollend)
    • chore: migrate off engine path Terasology/DynamicCities#93 (@pollend)
    • chore: migrate off of engine package Terasology/Economy#18 (@pollend)
    • chore: migrate off engine path Terasology/Equipment#134 (@pollend)
    • chore: migrate off of engine package Terasology/EquipmentSmithing#11 (@pollend)
    • chore: migrate off of engine package Terasology/Exoplanet#21 (@pollend)
    • chore: migrate off engine path Terasology/Explosives#7 (@pollend)
    • chore: migrate off engine path Terasology/FallingBlocks#8 (@pollend)
    • chore: migrate off of engine package Terasology/Fluid#33 (@pollend)
    • chore: migrate off of engine package Terasology/FluidComputerIntegration#7 (@pollend)
    • chore: migrate off of engine package Terasology/FlyingIslands#9 (@pollend)
    • chore: migrate off engine path Terasology/FunnyBlocks#25 (@pollend)
    • chore: migrate off of engine package Terasology/Genome#22 (@pollend)
    • chore: migrate off engine path Terasology/GooeyDefence#61 (@pollend)
    • chore: migrate off engine path Terasology/GooKeeper#45 (@pollend)
    • chore: migrate off engine path Terasology/GrowingFlora#34 (@pollend)
    • chore: migrate off engine path Terasology/Health#73 (@pollend)
    • chore: migrate off engine path Terasology/Hunger#24 (@pollend)
    • chore: migrate off engine path Terasology/Inferno#23 (@pollend)
    • chore: migrate off of engine package Terasology/InGameHelpAPI#10 (@pollend)
    • chore: migrate off engine path Terasology/Inventory#40 (@pollend)
    • chore: migrate off engine path Terasology/IRLCorp#37 (@pollend)
    • chore: migrate off engine path Terasology/ItemPipes#36 (@pollend)
    • chore: migrate off of engine package Terasology/ItemRendering#20 (@pollend)
    • chore: migrate off of engine package Terasology/JoshariasSurvival#50 (@pollend)
    • chore: migrate off of engine package Terasology/Journal#16 (@pollend)
    • chore: migrate off of engine package Terasology/KComputers#11 (@pollend)
    • chore: migrate off engine path Terasology/LightAndShadow#195 (@pollend)
    • chore: migrate off of engine package Terasology/Lost#37 (@pollend)
    • chore: migrate off of engine package Terasology/Machines#54 (@pollend)
    • chore: migrate off engine path Terasology/ManualLabor#45 (@pollend)
    • chore: migrate off of engine package Terasology/MasterOfOreon#95 (@pollend)
    • chore: migrate off of engine package Terasology/Maze#10 (@pollend)
    • chore: migrate off engine path Terasology/MetalRenegades#141 (@pollend)
    • chore: migrate off engine path Terasology/Minesweeper#24 (@pollend)
    • chore: migrate off engine path Terasology/ModularComputers#21 (@pollend)
    • chore: migrate off of engine package Terasology/WoodAndStoneCraftingJournal#5 (@pollend)
    • chore: migrate off of engine package Terasology/WoodCrafting#15 (@pollend)
    • chore: migrate off of engine package Terasology/Workstation#16 (@pollend)
    • chore: migrate engine off of engine path Terasology/WorkstationCrafting#26 (@pollend)
    • chore: migrate packages off of engine Terasology/Xmas#8 (@pollend)
    • chore: migrate packages off engine Terasology/AdditionalItemPipes#22 (@pollend)
    • chore: migrate health off of engine Terasology/Alchemy#17 (@pollend)
    • chore: migrate health off of engine Terasology/Behaviors#71 (@pollend)
    • chore: migrate health off of engine Terasology/Breathing#15 (@pollend)
    • chore: migrate health off of engine Terasology/ClimateConditions#49 (@pollend)
    • chore: migrate health off of engine Terasology/Climbables#7 (@pollend)
    • chore: migrate health off of engine Terasology/CombatSystem#75 (@pollend)
    • chore: migrate health off of engine Terasology/DamagingBlocks#18 (@pollend)
    • chore: migrate packages off engine health Terasology/Drops#7 (@pollend)
    • chore: migrate health off of engine Terasology/Durability#11 (@pollend)
    • chore: migrate health off of engine Terasology/Equipment#133 (@pollend)
    • chore: migrate health off of engine Terasology/Explosives#6 (@pollend)
    • chore: migrate health off of engine Terasology/FallingBlocks#7 (@pollend)
    • chore: migrate health off of engine Terasology/GooeyDefence#60 (@pollend)
    • chore: migrate health off of engine Terasology/GooKeeper#44 (@pollend)
    • chore: migrate health off of engine Terasology/GrowingFlora#33 (@pollend)
    • chore: migrate health off of engine Terasology/Hunger#23 (@pollend)
    • chore: migrate health off of engine Terasology/Inferno#22 (@pollend)
    • chore: migrate packages off engine health Terasology/Inventory#39 (@pollend)
    • chore: migrate health off of engine Terasology/IRLCorp#36 (@pollend)
    • chore: migrate health off of engine Terasology/ItemPipes#35 (@pollend)
    • chore: migrate health off of engine Terasology/LightAndShadow#194 (@pollend)
    • Chore: migrate packages off engine health Terasology/MetalRenegades#140 (@pollend)
    • chore: migrate packages off engine health Terasology/Minimap#27 (@pollend)
    • chore: migrate health off of engine Terasology/MobileBlocks#8 (@pollend)
    • chore: migrate health off of engine Terasology/ModularComputers#20 (@pollend)
    • chore: migrate health off of engine Terasology/MultiBlock#24 (@pollend)
    • chore: migrate health off of engine Terasology/PhysicalStats#7 (@pollend)
    • chore: migrate packages off engine Terasology/Sensors#10 (@pollend)
    • chore: migrate health off of engine Terasology/Signalling#29 (@pollend)
    • chore: migrate health off of engine Terasology/SimpleFarming#111 (@pollend)
    • chore: migrate health off of engine Terasology/Thirst#21 (@pollend)
    • chore: migrate health off of engine Terasology/WoodAndStone#74 (@pollend)
    • chore: migrate health off of engine Terasology/WorldlyTooltip#16 (@pollend)
    • chore: migrate health off of engine Terasology/Anatomy#12 (@pollend)
    • chore: migrate health off of engine Terasology/AdventureAssets#37 (@pollend)
    • chore: migrate packages off engine Terasology/AdditionalRails#47 (@pollend)
    • chore: migrate package off of engine Terasology/Health#72 (@pollend)
    • chore: migrate test for ModuleEnvironmentTest Terasology/Dialogs#25 (@pollend)
    • chore: migrate WorldProvidingHeadlessEnvironment Terasology/Behaviors#70 (@pollend)
    • chore: migrate test with package migration Terasology/NameGenerator#29 (@pollend)
    • chore: migrate to junit5 Terasology/Seasons#7 (@pollend)
    • chore: migrate junit5 Terasology/SimpleFarming#110 (@pollend)
    • chore: migrate to junit5 test Terasology/Pathfinding#55 (@pollend)
    • chore: migrate test cases to junit5 Terasology/ItemPipes#34 (@pollend)
    • chore: migrate test to junit5 Terasology/NameGenerator#28 (@pollend)
    • chore: migrate to JUnit 5 Terasology/WeatherManager#23 (@skaldarnar)
    • chore: migrate to JUnit 5 Terasology/ModuleTestingEnvironment#44 (@skaldarnar)
    • chore: migrate to JUnit 5 Terasology/MarkovChains#11 (@skaldarnar)
    • chore: migrate to JUnit 5 Terasology/Inventory#36 (@skaldarnar)
    • chore: migrate to JUnit 5 Terasology/HumanoidCharacters#11 (@skaldarnar)
    • chore: migrate to JUnit 5 Terasology/Genome#21 (@skaldarnar)
    • chore: migrate to JUnit 5 Terasology/FlexiblePathfinding#22 (@skaldarnar)
    • chore: junit5 migration Terasology/GrowingFlora#32 (@pollend)
    • chore: junit5 migration Terasology/Kallisti#4 (@pollend)
    • chore: migrate test cases to junit5 Terasology/MarkovChains#10 (@pollend)
    Source code(tar.gz)
    Source code(zip)
    md5sums.txt(54 bytes)
    sha256sums.txt(86 bytes)
    TerasologyOmega.zip(157.45 MB)
  • v4.2.0(Feb 21, 2021)

    Additional changes since https://github.com/MovingBlocks/Terasology/releases/tag/v4.2.0-rc.1

    Engine Changes

    :rocket: Feature

    • feat: Add BlockAreaTypeHandler for serilization #4338 (@pollend)
    • feat: Add Chunks#toRelative(x,y,z,dest) #4373 (@pollend)
    • feat: Enable extreme render distances using LOD chunks #4452 (@4Denthusiast)
    • feat: Move vignette to seperate shader #4506 (@pollend)
    • feat: TeraEd: Run Terasology in Swing/AWT #4327 (@hajdam)
    • feat(block): Add 'Blocks' utility class to convert world to block coordinates #4516 (@skaldarnar)
    • feat(TypeHandler): Add GenericMapTypeHandler for Map<K, V> #4377 (@skaldarnar)
    • feat(world): add APIs to compute Chunks values in-place #4420 (@skaldarnar)
    • feat(JMH): Migrate benchmarks to JMH #4401 (@DarkWeird)

    :bug: Bug Fixes

    • fix: add org.terasology.joml to API whitelist #4455 (@skaldarnar)
    • fix: correct AABB bounds for mesh #4494 (@pollend)
    • fix: correct Dimensions#multiplySelfBy #4517 (@pollend)
    • fix: correct index for world view #4518 (@pollend)
    • fix: Fix the upper half of each chunk behaving strangely. #4418 (@4Denthusiast)
    • fix: make Blocks.toBlockPos public #4519 (@jdrueckert)
    • fix: Make the chunk relevance region iterator actually terminate #4394 (@4Denthusiast)
    • fix: Move the final stage of chunk loading back to the main thread. #4368 (@4Denthusiast)
    • fix: remove EntityBuffer from scaled world generation methods #4462 (@4Denthusiast)
    • fix: remove reflection for gson deserilization in GsonTypeHandlerAdapter #4370 (@pollend)
    • fix: use system property instead of ENV to determine user home #4529 (@skaldarnar)
    • fix(#4319): add attchmentSide to getBlockForPlacement #4352 (@pollend)
    • fix(joml): Fix always growing relevance region #4436 (@DarkWeird)
    • fix(ModuleManager): fix improperly-escaped spaces in module path #4466 (@keturn)
    • fix(ModuleManger): let loadModulesFromClassPaths load source modules #4479 (@keturn)
    • fix(rendering): clipping plane on LoD 0 #4524 (@jdrueckert)

    :turtle: Performance

    • perf: avoid string operations when validating visible blocks #4472 (@pollend)
    • perf: Mark new chunks ready before triggering OnChunkLoaded events. #4353 (@4Denthusiast)
    • perf: Render even chunks that are next to unloaded chunks. #4427 (@4Denthusiast)
    • perf(chunk-sparse-array): replace dense arrays to sparse arrays for lightdata #4438 (@DarkWeird)
    • perf(GL): move opengl33 off of draw loop #4471 (@pollend)
    • perf(optimize): optimize iterator for block region #4399 (@pollend)
    • perf(world): implement deflate for sparse TeraArray (8/16 bit) #4433 (@DarkWeird)

    :toolbox: Maintenance / Stabilization

    • chore: add Chunks#toChunkPos(Vector3ic, Vector3i) #4361 (@pollend)
    • chore: Add the dest argument to Chunks.toRelative in ChunkViewCoreImpl #4402 (@4Denthusiast)
    • chore: Couple minor tweaks - logic hardening and memory #4365 (@Cervator)
    • chore: remove usage of getPosition(dest) #4520 (@pollend)
    • chore(behavior,logic): minor code cleanup #4512 (@skaldarnar)
    • chore(JOML): remove unused imports (Region3i) and update copyright #4437 (@skaldarnar)
    • chore(rendering): clean up imports and update copyrights #4487 (@jdrueckert)
    • chore(world): remove unused AbstractChunkView.java #4390 (@skaldarnar)
    • chore(IntelliJ): exclude compiler.xml from version control #4460 (@keturn)
    • refactor(JOML)!: migrate network fully to JOML #4484 (@skaldarnar)
    • refactor(nui): remove CoreRegistry from DeathScreen #4501 (@pollend)
    • test: fix LocalChunkProviderTest #4371 (@4Denthusiast)
    • test: upgrade to JUnit 5.7.1 #4496 (@keturn)
    • test(JOML): migrate and simplify PojoPrefabManagerTest #4458 (@pollend)

    :books: Documentation

    • doc: add conventional commits to contributing guidelines #4410 (@skaldarnar)

    :gear: Logistics

    • build: factor out methods making gradle dependencies from gestalt metadata #4514 (@keturn)
    • build: factor out ModuleInfoException from terasology-module #4511 (@keturn)
    • build: Fix transient deps #4343 (@keturn)
    • build: Migrate Omega package from old Jenkins to new, with some minor cleanup / label improvements #4409 (@Cervator)
    • build: patch upgrade to gradle 6.8.2 #4465 (@keturn)
    • build: remove unused asm-related dependencies #4440 (@keturn)
    • build: upgrade gradle to 6.8.1 #4439 (@keturn)
    • build: use joml-ext v0.1.0 and nui v1.4.0 #4525 (@jdrueckert)
    • build(facades.PC): tidy distribution tasks #4347 (@keturn)
    • build(jmh): git-ignore generated code #4406 (@skaldarnar)
    • build(MTE): allow MTE to configure the logger. #4477 (@keturn)
    • build(PC): add gradle command-line option for max heap size #4467 (@keturn)
    • build(PC): move modules back off the classpath so the sandbox works #4454 (@keturn)
    • ci: fix path to versionInfo.properties #4507 (@keturn)

    :teacher: JOML

    Migrations & Cleanups
    • feat(JOML): add default forwarding to JOML API #4441 (@skaldarnar)
    • feat(JOML): add JOML API for world.propagation.* (partial) #4384 (@skaldarnar)
    • feat(JOML): add JOML API for BatchPropagator (partial migration) #4391 (@skaldarnar)
    • feat(JOML): add replacment methods and deprecates methods in MeshBuilder #4318 (@pollend)
    • feat(JOML): Chunks Standardization #4306 (@pollend)
    • feat(JOML): clean up engine.world #4485 (@jdrueckert)
    • feat(JOML): cleanup chunk mesh #4450 (@pollend)
    • feat(JOML): cleanup engine.rendering #4486 (@jdrueckert)
    • feat(JOML): deprecate TeraMath methods for world.viewer.picker.* #4381 (@skaldarnar)
    • feat(JOML): drop ChunkMath #4489 (@jdrueckert)
    • feat(JOML): drop JomlUtil, Vector3fUtil, ChunkConstants #4498 (@jdrueckert)
    • feat(JOML): drop remaining references to Rect2i and Rect2f #4497 (@jdrueckert)
    • feat(JOML): migrate BatchPropagator #4395 (@skaldarnar)
    • feat(JOML): migrate Location system and (parts of) LocationComponent #4444 (@skaldarnar)
    • feat(JOML): migrate logic.ai.* #4382 (@skaldarnar)
    • feat(JOML): migrate RelevanceRegionComponent #4385 (@jdrueckert)
    • feat(JOML): migrate world.zones.* #4383 (@skaldarnar)
    • feat(JOML): migrate aabb for SkeletonRenderer #4431 (@pollend)
    • feat(JOML): migrate AbstractFullWorldview #4468 (@pollend)
    • feat(JOML): migrate and cleanup EntityAwareWorldProvider #4456 (@pollend)
    • feat(JOML): migrate assertions with joml-ext #4432 (@pollend)
    • feat(JOML): migrate BaseFacet2D for BlockArea #4364 (@pollend)
    • feat(JOML): migrate BehaviorEditor #4491 (@pollend)
    • feat(JOML): migrate BlockAppearance #4404 (@skaldarnar)
    • feat(JOML): migrate BlockEntitySystem #4351 (@pollend)
    • feat(JOML): migrate BlockLifecycleEvent #4405 (@pollend)
    • feat(JOML): migrate BlockSelection #4336 (@pollend)
    • feat(JOML): migrate BlockSelectionRenderer #4411 (@pollend)
    • feat(JOML): migrate BulletPhysics #4348 (@pollend)
    • feat(JOML): migrate CanvasImpl #4464 (@pollend)
    • feat(JOML): migrate CharacterMoveInputEvent #4376 (@pollend)
    • feat(JOML): migrate CharacterSystem #4349 (@pollend)
    • feat(JOML): migrate chunk #4475 (@pollend)
    • feat(JOML): migrate chunk serializer #4387 (@pollend)
    • feat(JOML): migrate ChunkProvider#getChunk(Vector3ic) #4396 (@pollend)
    • feat(JOML): migrate ChunkProvider#getLocalView #4388 (@pollend)
    • feat(JOML): migrate ChunkView #4469 (@pollend)
    • feat(JOML): migrate chunkview and tests cases #4335 (@pollend)
    • feat(JOML): migrate DebugOverlay #4359 (@pollend)
    • feat(JOML): migrate Direction #4363 (@pollend)
    • feat(JOML): migrate direction #4495 (@pollend)
    • feat(JOML): migrate EntityMotionState #4355 (@pollend)
    • feat(JOML): migrate EntityPool #4461 (@pollend)
    • feat(JOML): migrate FacetLayerPreview #4480 (@pollend)
    • feat(JOML): migrate FloatingTextRenderer #4344 (@pollend)
    • feat(JOML): migrate gltf and rendering #4289 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry #4413 (@pollend)
    • feat(JOML): migrate LightComponent #4345 (@pollend)
    • feat(JOML): migrate LocationComponent constructor #4358 (@pollend)
    • feat(JOML): migrate logic for LitChunk #4449 (@pollend)
    • feat(JOML): migrate logic.players #4442 (@jdrueckert)
    • feat(JOML): migrate Mesh AABBf #4415 (@pollend)
    • feat(JOML): migrate MeshBuilder #4446 (@pollend)
    • feat(JOML): migrate MovementDebugCommands #4386 (@pollend)
    • feat(JOML): migrate NameTagClientSystem #4357 (@pollend)
    • feat(JOML): migrate OnBlockItemPlaced #4354 (@pollend)
    • feat(JOML): migrate OnChunkGenerated #4426 (@pollend)
    • feat(JOML): migrate OpenALManager #4490 (@pollend)
    • feat(JOML): migrate ParicleUpdateImpl #4346 (@pollend)
    • feat(JOML): migrate RegionOutlineRenderer #4434 (@pollend)
    • feat(JOML): migrate rest of LocationComponent #4445 (@skaldarnar)
    • feat(JOML): migrate RotationTest #4457 (@pollend)
    • feat(JOML): migrate SectorUtils and Events #4378 (@pollend)
    • feat(JOML): migrate ServerImpl #4423 (@pollend)
    • feat(JOML): migrate setBlock(Map) #4428 (@pollend)
    • feat(JOML): migrate StorageManager #4421 (@pollend)
    • feat(JOML): migrate SubSampledNoise for BlockArea #4339 (@pollend)
    • feat(JOML): migrate TelemetrySystem #4397 (@pollend)
    • feat(JOML): migrate tests #4474 (@pollend)
    • feat(JOML): migrate Texture #4424 (@pollend)
    • feat(JOML): migrate texture atlas #4425 (@pollend)
    • feat(JOML): migrate various pieces (no module impact) #4473 (@skaldarnar)
    • feat(JOML): migrate VisualCharacterSystem #4360 (@pollend)
    • feat(JOML): migrate Voronoi #4340 (@pollend)
    • feat(JOML): migrate world renderer #4333 (@pollend)
    • feat(JOML): migrate WorldGenerator#getSpawnPosition #4380 (@pollend)
    • feat(JOML): migrate WorldProvider #4408 (@skaldarnar)
    • feat(JOML): migrate WorldProviderCore#isBlockRelevant #4356 (@pollend)
    • feat(JOML): remove AABB #4488 (@pollend)
    • feat(JOML): remove deprecated API in favor of JOML for BlockFamily #4443 (@skaldarnar)
    • feat(JOML): remove deprecated methods from OnBlockItemPlaced #4447 (@pollend)
    • feat(JOML): remove Direction JomlUtil #4422 (@pollend)
    • feat(JOML): remove legacy typeHandlers #4478 (@pollend)
    • feat(JOML): remove MatrixUtils #4448 (@pollend)
    • feat(JOML): remove tera-assert #4459 (@pollend)
    • feat(JOML): remove unused imports and drop legacy copy strategies #4499 (@jdrueckert)
    • feat(JOML): remove usage of JOMLUtil and migrate remaining code #4492 (@pollend)
    • feat(JOML): remove use of termath methods from Material #4429 (@pollend)
    • feat(JOML)!: add JOML API for HUDScreenLayer #4483 (@skaldarnar)
    • feat(JOML)!: drop Region3i #4476 (@jdrueckert)
    • feat(JOML)!: migrate BlockComponent #4470 (@skaldarnar)

    Module Changes

    :rocket: Feature

    • feat: Add build artifact pruning Terasology/Index#11 (@Cervator)
    • feat: add xmas tree template Terasology/Xmas#6 (@jdrueckert)
    • feat: Added information on how to send logs Terasology/TutorialTelemetry#1 (@agent-q1)
    • feat: Enable scalable generation Terasology/CoreWorlds#26 (@4Denthusiast)
    • feat: move TeraMath.Winding here Terasology/PolyWorld#38 (@jdrueckert)
    • feat: move vignette to seprate post processing Terasology/CoreRendering#32 (@pollend)
    • feat: use logback to filter log output Terasology/ModuleTestingEnvironment#37 (@keturn)
    • feat: migrate test cases to use MTEExtension Terasology/ItemPipes#28 (@pollend)

    :bug: Bug Fixes

    • fix region generation logic Terasology/DynamicCities#81 (@pollend)
    • Fix typo in run behavior Terasology/WildAnimals#75 (@4Denthusiast)
    • fix: "minDensityoff" typo to "minDensity" Terasology/Smithing#14 (@jdrueckert)
    • fix: "minDensityoff" typo to "minDensity" Terasology/SubstanceMatters#12 (@jdrueckert)
    • fix: correct BlockRegion computation on makeBoxShaped Terasology/StructureTemplates#63 (@skaldarnar)
    • fix: for ore generation Terasology/CustomOreGen#13 (@pollend)

    :toolbox: Maintenance / Stabilization

    • chore: bump up module dependencies Terasology/FluidComputerIntegration#3 (@DarkWeird)
    • chore: remove comment and update copyright Terasology/Cities#47 (@jdrueckert)
    • chore: remove EnemySystem Terasology/LightAndShadow#184 (@pollend)
    • chore: remove outcommented methods from RegionEntityManager Terasology/DynamicCities#90 (@jdrueckert)
    • chore: remove unused imports Terasology/Caves#15 (@skaldarnar)
    • chore: remove unused imports Terasology/ComputerMonitors#7 (@skaldarnar)
    • chore: remove unused imports Terasology/CoreWorlds#24 (@skaldarnar)
    • chore: remove unused imports Terasology/CustomOreGen#11 (@skaldarnar)
    • chore: remove unused imports Terasology/FlexiblePathfinding#18 (@skaldarnar)
    • chore: remove unused imports Terasology/FlowingLiquids#28 (@skaldarnar)
    • chore: remove unused imports Terasology/GooeyDefence#58 (@skaldarnar)
    • chore: remove unused imports Terasology/Minimap#24 (@skaldarnar)
    • chore: remove unused imports Terasology/MultiBlock#20 (@skaldarnar)
    • chore: remove unused imports Terasology/PolyWorld#36 (@skaldarnar)
    • chore: remove unused imports Terasology/Scenario#55 (@skaldarnar)
    • chore: remove unused imports Terasology/Signalling#26 (@skaldarnar)
    • chore: remove unused imports Terasology/StaticCities#22 (@skaldarnar)
    • chore: remove unused imports Terasology/StructureTemplates#59 (@skaldarnar)
    • chore: Update Copyright headers Terasology/Behaviors#61 (@pollend)
    • chore(minimap): reduce log noise from CharacterOverlay Terasology/MetalRenegades#133 (@skaldarnar)
    • chore(module dependencies): bump up module dependencies Terasology/WoodCrafting#12 (@DarkWeird)
    • chore(RotationUtils): remove deprecated methods (unused) Terasology/ItemRendering#15 (@skaldarnar)
    • cleanup: remove unused imports methods and update copyright Terasology/Rails#70 (@pollend)
    • chore: Move cave stuff to the correct packages Terasology/Inferno#19 (@4Denthusiast)
    • test: add test using DelayManager Terasology/ModuleTestingEnvironment#20 (@skaldarnar)
    • test: cleanup test cases Terasology/Tasks#23 (@pollend)
    • chore: update develop Terasology/Index#13 (@keturn)

    :books: Documentation

    • doc: update (regenerate) JavaDoc Terasology/ModuleTestingEnvironment#38 (@skaldarnar)
    • doc: update README to showcase more features Terasology/Xmas#7 (@skaldarnar)

    :gear: Logistics

    • CI: fix path to versionInfo.properties Terasology/Index#12 (@keturn)

    :teacher: JOML

    Migrations & Cleanups
    • chore: cleanup code and migrate for Chunks Terasology/AlchemyPlantGenerator#6 (@pollend)
    • chore: drop Region3i from comment Terasology/StaticCities#27 (@jdrueckert)
    • chore: drop Region3i from doc comment Terasology/Scenario#57 (@jdrueckert)
    • chore(JOML): adjust for BlockSelection migration Terasology/Behaviors#57 (@pollend)
    • chore(JOML): adjust for BlockSelection migration Terasology/MasterOfOreon#87 (@pollend)
    • chore(JOML): adjust for BlockSelection migration Terasology/Maze#8 (@pollend)
    • chore(JOML): align with RelevanceRegionComponent migration Terasology/ModuleTestingEnvironment#35 (@jdrueckert)
    • chore(JOML): align with MTE migration Terasology/BlockDetector#7 (@jdrueckert)
    • chore(JOML): align with MTE migration Terasology/Health#59 (@jdrueckert)
    • chore(JOML): align with MTE migration Terasology/ItemPipes#29 (@jdrueckert)
    • chore(JOML): align with MTE migration Terasology/Rails#68 (@jdrueckert)
    • chore(JOML): align with MTE migration Terasology/SimpleFarming#104 (@jdrueckert)
    • chore(JOML): Cleanup imports Terasology/ShatteredPlanes#18 (@pollend)
    • chore(JOML): cleanup JomlUtil and imports Terasology/GooKeeper#41 (@jdrueckert)
    • chore(JOML): migrate world.viewer.picker.* Terasology/CoreWorlds#23 (@skaldarnar)
    • chore(JOML): migrate world.viewer.picker.* Terasology/Lost#32 (@skaldarnar)
    • chore(JOML): migrate world.viewer.picker.* Terasology/PolyWorld#34 (@skaldarnar)
    • chore(joml): migrate ChunkView Terasology/FlowingLiquids#24 (@skaldarnar)
    • chore(JOML): migrate SectorUtils and Events Terasology/FallingBlocks#2 (@skaldarnar)
    • chore(JOML): migrate SectorUtils and Events Terasology/FlowingLiquids#25 (@skaldarnar)
    • chore(JOML): migrate SectorUtils and Events Terasology/GrowingFlora#24 (@skaldarnar)
    • chore(JOML): migrate SectorUtils and Events Terasology/MetalRenegades#129 (@skaldarnar)
    • chore(JOML): migrate SectorUtils and Events Terasology/MultiBlock#16 (@skaldarnar)
    • chore(JOML): migrate SectorUtils and Events Terasology/Pathfinding#50 (@skaldarnar)
    • chore(joml): migrate WorldGenerator#getSpawnPosition Terasology/CombatSystem#67 (@skaldarnar)
    • chore(joml): migrate WorldGenerator#getSpawnPosition Terasology/CoreWorlds#22 (@skaldarnar)
    • chore(joml): migrate WorldGenerator#getSpawnPosition Terasology/DynamicCities#83 (@skaldarnar)
    • chore(joml): migrate WorldGenerator#getSpawnPosition Terasology/LightAndShadow#183 (@skaldarnar)
    • chore(joml): migrate WorldGenerator#getSpawnPosition Terasology/ParadIce#9 (@skaldarnar)
    • chore(joml): migrate WorldGenerator#getSpawnPosition Terasology/StaticCities#21 (@skaldarnar)
    • chore(JOML): migrate WorldProviderCore Terasology/FlexiblePathfinding#14 (@pollend)
    • chore(JOML): remove deprecated, no more used functions Terasology/BiomesAPI#10 (@jdrueckert)
    • chore(JOML): remove JOMLUtil Terasology/ModuleTestingEnvironment#36 (@pollend)
    • chore(JOML): remove unnecessary overrides of deprecated API Terasology/Fences#15 (@skaldarnar)
    • chore(JOML): remove unnecessary overrides of deprecated API Terasology/GrowingFlora#29 (@skaldarnar)
    • chore(JOML): remove unnecessary overrides of deprecated API Terasology/ItemPipes#31 (@skaldarnar)
    • chore(JOML): remove unnecessary overrides of deprecated API Terasology/Machines#46 (@skaldarnar)
    • chore(JOML): remove unnecessary overrides of deprecated API Terasology/Rails#72 (@skaldarnar)
    • chore(JOML): remove unnecessary overrides of deprecated API Terasology/Sample#120 (@skaldarnar)
    • chore(JOML): remove unnecessary overrides of deprecated API Terasology/Signalling#27 (@skaldarnar)
    • chore(JOML): remove unused ChunkMath imports, update copyright Terasology/LightAndShadow#190 (@jdrueckert)
    • feat(JOML): align with CommonWorld migration Terasology/StaticCities#25 (@jdrueckert)
    • feat(JOML): align with jomlification of ComputerMonitors Terasology/FluidComputerIntegration#5 (@jdrueckert)
    • feat(JOML): clean up imports and clear deprecated methods Terasology/Inferno#20 (@pollend)
    • feat(JOML): cleanup and migrate to joml Terasology/Scenario#48 (@pollend)
    • feat(JOML): cleanup and remove refrences to joml Terasology/Exoplanet#18 (@pollend)
    • feat(JOML): cleanup imports and instance of JOMLUtil Terasology/LightAndShadow#188 (@pollend)
    • feat(JOML): cleanup imports Terasology/BlockDetector#8 (@pollend)
    • feat(JOML): cleanup imports Terasology/Cities#48 (@pollend)
    • feat(JOML): cleanup imports Terasology/CombatSystem#74 (@pollend)
    • feat(JOML): cleanup imports Terasology/Equipment#132 (@pollend)
    • feat(JOML): cleanup imports Terasology/Explosives#5 (@pollend)
    • feat(JOML): cleanup imports Terasology/GooKeeper#43 (@pollend)
    • feat(JOML): cleanup imports Terasology/GrowingFlora#31 (@pollend)
    • feat(JOML): cleanup imports Terasology/Health#63 (@pollend)
    • feat(JOML): cleanup imports Terasology/ItemPipes#33 (@pollend)
    • feat(JOML): cleanup imports Terasology/ItemRendering#19 (@pollend)
    • feat(JOML): cleanup imports Terasology/LightAndShadow#191 (@pollend)
    • feat(JOML): cleanup imports Terasology/Lost#35 (@pollend)
    • feat(JOML): cleanup imports Terasology/MasterOfOreon#94 (@skaldarnar)
    • feat(JOML): cleanup imports Terasology/MetalRenegades#139 (@skaldarnar)
    • feat(JOML): cleanup imports Terasology/MobileBlocks#7 (@pollend)
    • feat(JOML): cleanup imports Terasology/Rails#75 (@pollend)
    • feat(JOML): cleanup imports Terasology/SegmentedPaths#17 (@pollend)
    • feat(JOML): cleanup imports Terasology/SimpleFarming#109 (@pollend)
    • feat(JOML): cleanup imports Terasology/WildAnimalsGenome#12 (@skaldarnar)
    • feat(JOML): cleanup imports Terasology/WoodAndStone#73 (@pollend)
    • feat(JOML): cleanup usage of ChunkMath Terasology/Minerals#15 (@pollend)
    • feat(JOML): cleanup usage of JOMLUtil Terasology/AdditionalRails#45 (@pollend)
    • feat(JOML): cleanup usage of JOMLUtil Terasology/Books#33 (@pollend)
    • feat(JOML): cleanup usage of JOMLUtil Terasology/ClimateConditions#48 (@pollend)
    • feat(JOML): cleanup usage of JOMLUtil Terasology/Fluid#32 (@pollend)
    • feat(JOML): cleanup usage of JOMLUtil Terasology/Inventory#34 (@pollend)
    • feat(JOML): cleanup usage of JOMlUtil Terasology/StructureTemplates#61 (@pollend)
    • feat(JOML): cleanup usage of JOMLUtil Terasology/WorkstationCrafting#25 (@pollend)
    • feat(JOML): clear usage of JOMLUtil Terasology/StructureTemplates#57 (@pollend)
    • feat(JOML): clear usages of joml and imports Terasology/GooeyDefence#57 (@pollend)
    • feat(JOML): drop BoundingBox Terasology/CommonWorld#9 (@jdrueckert)
    • feat(JOML): drop BoundingBox Terasology/StaticCities#29 (@jdrueckert)
    • feat(JOML): get rid of Region3i Terasology/Cities#42 (@jdrueckert)
    • feat(JOML): get rid of Region3i Terasology/DynamicCities#80 (@jdrueckert)
    • feat(JOML): get rid of Region3i Terasology/MasterOfOreon#89 (@jdrueckert)
    • feat(JOML): get rid of Region3i Terasology/MetalRenegades#124 (@jdrueckert)
    • feat(JOML): joml migrate Terasology/Signalling#24 (@pollend)
    • feat(JOML): JOMLUtil for intermediar OnBlockItemPlaced Terasology/FlowingLiquids#23 (@pollend)
    • feat(JOML): JOMLUtil for intermediar OnBlockItemPlaced Terasology/GooeyDefence#50 (@pollend)
    • feat(JOML): JOMLUtil for intermediar OnBlockItemPlaced Terasology/JoshariasSurvival#48 (@pollend)
    • feat(JOML): JOMLUtil for intermediar OnBlockItemPlaced Terasology/Signalling#23 (@pollend)
    • feat(JOML): migrate BlockComponent Terasology/AdditionalItemPipes#21 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/AdditionalRails#46 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/AdventureAssets#36 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/AlterationEffects#26 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/Behaviors#68 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/ClimateConditions#46 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/ComputerMonitors#8 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/Exoplanet#20 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/Explosives#4 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/Fences#16 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/FunnyBlocks#23 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/Furnishings#9 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/GrowingFlora#30 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/ItemPipes#32 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/ItemRendering#18 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/KComputers#10 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/Machines#50 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/ManualLabor#42 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/MasterOfOreon#93 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/MultiBlock#22 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/Rails#74 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/Sample#122 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/Scenario#56 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/Signalling#28 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/SimpleFarming#107 (@skaldarnar)
    • feat(JOML): migrate BlockComponent Terasology/WoodAndStone#72 (@skaldarnar)
    • feat(JOML): migrate LocationComponent#getWorldPosition Terasology/Behaviors#66 (@skaldarnar)
    • feat(JOML): migrate LocationComponent#getWorldPosition Terasology/DynamicCities#85 (@skaldarnar)
    • feat(JOML): migrate LocationComponent#getWorldPosition Terasology/MetalRenegades#135 (@skaldarnar)
    • feat(JOML): migrate LocationComponent#getWorldPosition Terasology/StaticCities#23 (@skaldarnar)
    • feat(JOML): migrate LocationComponent#getWorldRotation Terasology/Compass#8 (@skaldarnar)
    • feat(JOML): migrate LocationComponent#setWorldRotation Terasology/Machines#48 (@skaldarnar)
    • feat(JOML): migrate LocationComponent constructor Terasology/Furnishings#8 (@skaldarnar)
    • feat(JOML): migrate LocationComponent constructor Terasology/ItemRendering#16 (@skaldarnar)
    • feat(JOML): migrate LocationComponent constructor Terasology/WoodAndStone#71 (@skaldarnar)
    • feat(JOML): migrate LocationComponent constructor Terasology/WorkstationCrafting#24 (@skaldarnar)
    • feat(JOML): migrate LocationComponent Terasology/AdventureAssets#35 (@skaldarnar)
    • feat(JOML): migrate LocationComponent Terasology/Behaviors#67 (@skaldarnar)
    • feat(JOML): migrate LocationComponent Terasology/ClimateConditions#45 (@skaldarnar)
    • feat(JOML): migrate LocationComponent Terasology/DynamicCities#87 (@skaldarnar)
    • feat(JOML): migrate LocationComponent Terasology/GooKeeper#42 (@skaldarnar)
    • feat(JOML): migrate LocationComponent Terasology/Inventory#32 (@skaldarnar)
    • feat(JOML): migrate LocationComponent Terasology/ItemRendering#17 (@skaldarnar)
    • feat(JOML): migrate LocationComponent Terasology/LightAndShadow#189 (@skaldarnar)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/AnotherWorld#18 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/Cities#43 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/CoreWorlds#21 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/DynamicCities#82 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/Exoplanet#16 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/GooeyDefence#52 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/Inferno#18 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/Lakes#17 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/LightAndShadow#182 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/MetalRenegades#128 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/ModuleTestingEnvironment#33 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/ParadIce#8 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/PolyWorld#32 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/ShatteredPlanes#16 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/StaticCities#20 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/SurfaceFacets#8 (@pollend)
    • feat(JOML): migrate 2d facets to BlockArea Terasology/WeatherManager#19 (@pollend)
    • feat(JOML): migrate actions/systems/components Terasology/Behaviors#53 (@pollend)
    • feat(JOML): migrate Alchemy module Terasology/Alchemy#16 (@jdrueckert)
    • feat(joml): migrate AmbientOcclusionNode Terasology/CoreRendering#26 (@skaldarnar)
    • feat(JOML): migrate and clean up code Terasology/SegmentedPaths#15 (@pollend)
    • feat(JOML): migrate and cleanup Terasology/Behaviors#64 (@pollend)
    • feat(JOML): migrate and cleanup Terasology/FlowingLiquids#27 (@pollend)
    • feat(JOML): migrate and drop Rect2i Terasology/Cities#46 (@pollend)
    • feat(JOML): migrate and update copyright Terasology/Drops#6 (@pollend)
    • feat(JOML): migrate AnotherWorld Terasology/AnotherWorld#19 (@jdrueckert)
    • feat(JOML): migrate AnotherWorldPlants module Terasology/AnotherWorldPlants#9 (@jdrueckert)
    • feat(JOML): migrate asset tutorial Terasology/TutorialAssetSystem#14 (@jdrueckert)
    • feat(JOML): migrate behavior tutorial Terasology/TutorialBehaviors#9 (@jdrueckert)
    • feat(JOML): migrate Behaviors Terasology/Behaviors#65 (@jdrueckert)
    • feat(JOML): migrate BiodiversityGenerator Terasology/Genome#20 (@pollend)
    • feat(JOML): migrate BiomeDecorator for Chunks Terasology/AnotherWorld#22 (@pollend)
    • feat(JOML): migrate BiomeRegistry Terasology/BiomesAPI#9 (@skaldarnar)
    • feat(JOML): migrate block family tutorial Terasology/TutorialBlockFamily#1 (@jdrueckert)
    • feat(JOML): migrate block networks Terasology/BlockNetwork#15 (@pollend)
    • feat(joml): migrate BlockAppearance Terasology/Behaviors#60 (@skaldarnar)
    • feat(joml): migrate BlockAppearance Terasology/Health#60 (@skaldarnar)
    • feat(joml): migrate BlockAppearance Terasology/Minimap#21 (@skaldarnar)
    • feat(JOML): migrate BlockComponent and remove JOMlUtil Terasology/LightAndShadow#187 (@pollend)
    • feat(JOML): migrate BlockDamageAuthoritySystem Terasology/Health#58 (@pollend)
    • feat(JOML): migrate BlockInventorySystem Terasology/Inventory#29 (@pollend)
    • feat(JOML): migrate BlockPlacingWeatherSystem Terasology/WeatherManager#18 (@pollend)
    • feat(JOML): migrate BlockRegionTransformComponent Terasology/StructureTemplates#60 (@skaldarnar)
    • feat(JOML): migrate BlockSelectionRenderer Terasology/Behaviors#62 (@pollend)
    • feat(JOML): migrate BlockSelectionRenderer Terasology/GooeyDefence#56 (@pollend)
    • feat(JOML): migrate BlockSelectionRenderer Terasology/Pathfinding#51 (@pollend)
    • feat(JOML): migrate BookcaseSystem Terasology/Books#32 (@pollend)
    • feat(JOML): migrate BouncySystem Terasology/FunnyBlocks#22 (@pollend)
    • feat(JOML): migrate BreathingSystem Terasology/Breathing#14 (@pollend)
    • feat(JOML): migrate BresenhamCollectorVisitor Terasology/CommonWorld#6 (@pollend)
    • feat(JOML): migrate BushAuthoritySystem Terasology/SimpleFarming#105 (@pollend)
    • feat(JOML): migrate CampFireAuthoritySystem Terasology/ManualLabor#41 (@pollend)
    • feat(JOML): migrate CanvasImpl Terasology/Compass#9 (@pollend)
    • feat(JOML): migrate CanvasImpl Terasology/Inventory#33 (@pollend)
    • feat(JOML): migrate CanvasImpl Terasology/Minimap#25 (@pollend)
    • feat(JOML): migrate CaveFacet, CaveFacetProvider, CaveRasterizer, CaveToDensityProvider, LavaLevelFacet, InternoClientSystem Terasology/Inferno#17 (@pollend)
    • feat(joml): migrate CaveRasterizer Terasology/Caves#14 (@skaldarnar)
    • feat(JOML): migrate ChangingBlocksSystem Terasology/ChangingBlocks#11 (@pollend)
    • feat(JOML): migrate CharacterInventorySystem Terasology/Inventory#30 (@pollend)
    • feat(JOML): migrate CharacterMoveInputEvent Terasology/Behaviors#59 (@pollend)
    • feat(JOML): migrate CharacterMoveInputEvent Terasology/GooKeeper#36 (@pollend)
    • feat(JOML): migrate chunk Terasology/FlexiblePathfinding#20 (@pollend)
    • feat(JOML): migrate ChunkInformation; remove unused imports Terasology/AnotherWorld#20 (@skaldarnar)
    • feat(JOML): migrate ChunkProvider#getLocalView Terasology/FlexiblePathfinding#15 (@pollend)
    • feat(JOML): migrate Cities modules Terasology/Cities#45 (@pollend)
    • feat(JOML): migrate Cities modules Terasology/CommonWorld#7 (@pollend)
    • feat(JOML): migrate Cities modules Terasology/DynamicCities#86 (@pollend)
    • feat(JOML): migrate Cities modules Terasology/StaticCities#24 (@pollend)
    • feat(JOML): migrate CitizenSpawnSystem Terasology/MetalRenegades#131 (@pollend)
    • feat(JOML): migrate ClamberComponent and ClimbablesPlacingSystem Terasology/Climbables#5 (@skaldarnar)
    • feat(JOML): migrate ClientParticleSystem Terasology/LightAndShadow#186 (@pollend)
    • feat(JOML): migrate ClimateConditionsSystem Terasology/ClimateConditions#44 (@skaldarnar)
    • feat(JOML): migrate CombatPhysicsSystem Terasology/CombatSystem#68 (@pollend)
    • feat(JOML): migrate CombatSystem Terasology/CombatSystem#73 (@jdrueckert)
    • feat(JOML): migrate ConditionalBlocksSystem Terasology/ChangingBlocks#10 (@pollend)
    • feat(JOML): migrate ContainerItemComponent and AssetResolver Terasology/Fluid#29 (@skaldarnar)
    • feat(JOML): migrate CraftInHandAuthoritySystem Terasology/WoodAndStone#68 (@pollend)
    • feat(JOML): migrate CraftInHandAuthoritySystem Terasology/WorkstationCrafting#20 (@pollend)
    • feat(JOML): migrate CustomOreGenCreator (unused) Terasology/OreGeneration#13 (@skaldarnar)
    • feat(JOML): migrate DamageSystem Terasology/DamagingBlocks#16 (@pollend)
    • feat(JOML): migrate DamageSystem Terasology/DamagingBlocks#17 (@pollend)
    • feat(JOML): migrate DefenceWorldManager Terasology/GooeyDefence#51 (@pollend)
    • feat(JOML): migrate dynamic cities tutorial Terasology/TutorialDynamicCities#7 (@jdrueckert)
    • feat(JOML): migrate EasterEggRasterizer and fix Terasology/ShatteredPlanes#17 (@pollend)
    • feat(JOML): migrate EquipmentSystem Terasology/Equipment#131 (@skaldarnar)
    • feat(JOML): migrate Exoplanet Terasology/Exoplanet#19 (@jdrueckert)
    • feat(JOML): migrate ExoplanetOceanRasterizer Terasology/Exoplanet#17 (@pollend)
    • feat(JOML): migrate ExplodeHandlingSystem Terasology/CombatSystem#69 (@pollend)
    • feat(JOML): migrate ExplosionHandlingSystem Terasology/CombatSystem#66 (@pollend)
    • feat(JOML): migrate FactionEnemiesSystem Terasology/MetalRenegades#132 (@pollend)
    • feat(JOML): migrate FallingBlockPlacementClientSystem Terasology/StructureTemplates#53 (@pollend)
    • feat(JOML): migrate fluidtanks Terasology/Machines#43 (@pollend)
    • feat(JOML): migrate FluidTransportAuthoritySystem Terasology/Machines#44 (@pollend)
    • feat(JOML): migrate flying islands Terasology/FlyingIslands#4 (@pollend)
    • feat(JOML): migrate for joml Terasology/FlexiblePathfinding#11 (@pollend)
    • feat(JOML): migrate gooeySpawnSystem Terasology/GooeysQuests#60 (@pollend)
    • feat(JOML): migrate GooeySystem Terasology/GooKeeper#38 (@pollend)
    • feat(JOML): migrate GrowthBasedPlantSpawnDefinition Terasology/GrowingFlora#27 (@pollend)
    • feat(JOML): migrate HeatTriggeringSystem Terasology/WorkstationCrafting#21 (@pollend)
    • feat(JOML): migrate HerbDropAuthoritySystem Terasology/Alchemy#15 (@pollend)
    • feat(JOML): migrate HerbDropAuthoritySystem Terasology/WoodAndStone#67 (@pollend)
    • feat(JOML): migrate InWorldRenderer Terasology/GooeyDefence#55 (@pollend)
    • feat(JOML): migrate joml for behaviour actions Terasology/GooKeeper#33 (@pollend)
    • feat(JOML): migrate joml for behaviour actions Terasology/MasterOfOreon#88 (@jdrueckert)
    • feat(JOML): migrate joml for behaviour actions Terasology/MetalRenegades#118 (@pollend)
    • feat(JOML): migrate joml for behaviour actions Terasology/WildAnimalsGenome#11 (@pollend)
    • feat(JOML): migrate joml migrate setBlock(Map) Terasology/FallingBlocks#3 (@pollend)
    • feat(JOML): migrate joml migrate setBlock(Map) Terasology/Minimap#23 (@pollend)
    • feat(JOML): migrate joml migrate setBlock(Map) Terasology/MobileBlocks#6 (@pollend)
    • feat(JOML): migrate joml migrate setBlock(Map) Terasology/MultiBlock#19 (@pollend)
    • feat(JOML): migrate joml migrate setBlock(Map) Terasology/StructureTemplates#56 (@pollend)
    • feat(JOML): migrate joml Terasology/FunnyBlocks#21 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/Apiculture#15 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/Behaviors#63 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/CombatSystem#71 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/Compass#6 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/DynamicCities#84 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/FlexiblePathfinding#17 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/Fluid#30 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/InGameHelpAPI#9 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/IRLCorp#34 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/Journal#14 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/Minimap#22 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/ModularComputers#18 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/Notifications#6 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/Scenario#53 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/StructureTemplates#55 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/Tasks#21 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/WoodAndStone#70 (@pollend)
    • feat(JOML): migrate joml to 1.10.0 and 1.0.0-SNAPSHOT for geometry Terasology/WorkstationCrafting#23 (@pollend)
    • feat(JOML): migrate last usage of ChunkConstants.CHUNK_REGION Terasology/CoreWorlds#28 (@jdrueckert)
    • feat(JOML): migrate LitTorchSystem Terasology/WorkstationCrafting#22 (@skaldarnar)
    • feat(JOML): migrate location methods for PlazMasterSystem Terasology/GooKeeper#37 (@pollend)
    • feat(JOML): migrate locationcomponent for WildAnimalsGrowthSystem Terasology/WildAnimals#74 (@pollend)
    • feat(JOML): migrate LostPortalSystem Terasology/Lost#30 (@pollend)
    • feat(JOML): migrate Machines Terasology/Machines#45 (@pollend)
    • feat(JOML): migrate MagicDomeSystem Terasology/LightAndShadow#181 (@pollend)
    • feat(JOML): migrate majority of GrowingFlora module Terasology/GrowingFlora#26 (@jdrueckert)
    • feat(JOML): migrate MechanicalPowerToolAuthoritySystem Terasology/IRLCorp#30 (@pollend)
    • feat(JOML): migrate MeleeAttackSystem Terasology/CombatSystem#70 (@pollend)
    • feat(JOML): migrate Mesh AABBf Terasology/CombatSystem#72 (@pollend)
    • feat(JOML): migrate Mesh AABBf Terasology/GooKeeper#39 (@pollend)
    • feat(JOML): migrate Mesh AABBf Terasology/Rails#69 (@pollend)
    • feat(JOML): migrate MeshBuilder Terasology/KComputers#9 (@pollend)
    • feat(JOML): migrate MeshBuilder Terasology/Machines#49 (@pollend)
    • feat(JOML): migrate MetalRenegades Terasology/MetalRenegades#134 (@jdrueckert)
    • feat(JOML): migrate methods from Dynamic/Static Cities Terasology/MasterOfOreon#92 (@pollend)
    • feat(JOML): migrate methods from Static/Dynamic Cities Terasology/MetalRenegades#136 (@pollend)
    • feat(JOML): migrate MinesQuestSystem Terasology/GooeysQuests#62 (@pollend)
    • feat(JOML): migrate MinesweeperSystem Terasology/Minesweeper#19 (@pollend)
    • feat(JOML): migrate MinimapGrid Terasology/Minimap#20 (@pollend)
    • feat(JOML): migrate ModuleTestingEnvironment Terasology/ModuleTestingEnvironment#34 (@jdrueckert)
    • feat(JOML): migrate MovingBlock component and systems Terasology/MobileBlocks#5 (@pollend)
    • feat(JOML): migrate OnChunkGenerated Terasology/WildAnimals#77 (@pollend)
    • feat(JOML): migrate OreonSpawnEvent Terasology/MasterOfOreon#90 (@pollend)
    • feat(JOML): migrate OreRasterizer Terasology/OreGeneration#12 (@pollend)
    • feat(JOML): migrate orientation and Sector Terasology/CommonWorld#5 (@pollend)
    • feat(JOML): migrate particle system tutorial Terasology/TutorialParticleSystem#1 (@jdrueckert)
    • feat(JOML): migrate pathfinding tutorial Terasology/TutorialPathfinding#1 (@jdrueckert)
    • feat(JOML): migrate PipeSystem and minor tweaks to copyright Terasology/ItemPipes#26 (@pollend)
    • feat(JOML): migrate plugins according to FlexiblePathfinding migration Terasology/GooeyDefence#53 (@jdrueckert)
    • feat(JOML): migrate PocketStructreDefinition Terasology/CustomOreGen#8 (@pollend)
    • feat(JOML): migrate polyworlds Terasology/PolyWorld#35 (@pollend)
    • feat(JOML): migrate quest systems Terasology/GooeysQuests#64 (@pollend)
    • feat(JOML): migrate QuestPointEntityProvider to JOML Terasology/TutorialQuests#18 (@skaldarnar)
    • feat(joml): migrate Region3i Terasology/GooeysQuests#65 (@skaldarnar)
    • feat(JOML): migrate RegionOutlineRenderer Terasology/Scenario#54 (@pollend)
    • feat(JOML): migrate RegionOutlineRenderer Terasology/StructureTemplates#58 (@pollend)
    • feat(joml): migrate RegionResizeEvent Terasology/Scenario#52 (@skaldarnar)
    • feat(JOML): migrate RelativeFluidInventoryBindingCustomObject Terasology/FluidComputerIntegration#6 (@skaldarnar)
    • feat(JOML): migrate remaining module Terasology/Minesweeper#20 (@skaldarnar)
    • feat(JOML): migrate remaining occurrences of math.geom Terasology/CoreWorlds#25 (@skaldarnar)
    • feat(JOML): migrate remaining occurrences Terasology/KComputers#8 (@skaldarnar)
    • feat(JOML): migrate remaining occurrences Terasology/Lost#34 (@skaldarnar)
    • feat(JOML): migrate rest of CommonWorld Terasology/CommonWorld#8 (@jdrueckert)
    • feat(JOML): migrate rest of ItemRendering Module. Terasology/ItemRendering#13 (@pollend)
    • feat(JOML): migrate SampleCaveRasterizer Terasology/CustomOreGen#10 (@skaldarnar)
    • feat(JOML): migrate SaplingInitializeSystem Terasology/GrowingFlora#28 (@skaldarnar)
    • feat(JOML): migrate sector tutorial Terasology/TutorialSectors#3 (@jdrueckert)
    • feat(JOML): migrate ShrineRasterizer Terasology/GooeyDefence#54 (@pollend)
    • feat(JOML): migrate SignalSystem Terasology/Signalling#25 (@pollend)
    • feat(JOML): migrate SlimePodSystem Terasology/GooKeeper#40 (@pollend)
    • feat(JOML): migrate snake tournament tutorial Terasology/TutorialSnakeTournament#8 (@jdrueckert)
    • feat(JOML): migrate SpawnerSystem and remove unused code Terasology/Spawning#5 (@pollend)
    • feat(JOML): migrate SpawnerSystem Terasology/LightAndShadow#185 (@pollend)
    • feat(JOML): migrate SpawnPrefabOnCollisionServerSystem Terasology/GooeysQuests#63 (@pollend)
    • feat(JOML): migrate StickingHandlingSystem Terasology/CombatSystem#65 (@pollend)
    • feat(JOML): migrate StorageBuildingSystem Terasology/MasterOfOreon#91 (@pollend)
    • feat(JOML): migrate StructureDefinition and migrate ChunkMath Terasology/AnotherWorld#21 (@pollend)
    • feat(JOML): migrate SurfaceNormalFacet and GaussianSurfaceProvider Terasology/SurfaceFacets#9 (@skaldarnar)
    • feat(JOML): migrate SurroundMultiBlockFormItemRecipe Terasology/MultiBlock#17 (@pollend)
    • feat(JOML): migrate Terasology/BlockDetector#6 (@pollend)
    • feat(JOML): migrate Terasology/MultiBlock#14 (@pollend)
    • feat(JOML): migrate texture atals Terasology/FlowingLiquids#26 (@pollend)
    • feat(JOML): migrate to Chunks Terasology/Pathfinding#52 (@pollend)
    • feat(JOML): migrate to joml Terasology/Volcanoes#8 (@pollend)
    • feat(JOML): migrate TreeAuthoritySystem Terasology/SimpleFarming#106 (@pollend)
    • feat(JOML): migrate UniformMultiBlockFormItemRecipe Terasology/MultiBlock#18 (@pollend)
    • feat(JOML): migrate usages of Vector3i Terasology/AdditionalRails#44 (@skaldarnar)
    • feat(JOML): migrate VisibleBreathingSystem Terasology/ClimateConditions#43 (@pollend)
    • feat(JOML): migrate VisualBounceTest Terasology/ItemRendering#14 (@pollend)
    • feat(joml): migrate WeatherManager module Terasology/WeatherManager#20 (@skaldarnar)
    • feat(JOML): migrate WellWaterSystem LocationComponent Terasology/MetalRenegades#130 (@pollend)
    • feat(JOML): migrate WildAnimalsGrowthSystem Terasology/WildAnimals#76 (@pollend)
    • feat(JOML): migrate with changes for MultiBlock Terasology/ComputerMonitors#6 (@pollend)
    • feat(JOML): migrate with changes for MultiBlock Terasology/ModularComputers#17 (@pollend)
    • feat(JOML): migrate with Polyworld Terasology/Lost#33 (@pollend)
    • feat(JOML): migrate WoodAndStone module Terasology/WoodAndStone#69 (@jdrueckert)
    • feat(JOML): migrate WorldGenerator#getSpawnPosition Terasology/Lost#31 (@pollend)
    • feat(JOML): migrate WorldGenerator#getSpawnPosition Terasology/PolyWorld#33 (@pollend)
    • feat(JOML): migrate WorldProvider Terasology/FlexiblePathfinding#16 (@skaldarnar)
    • feat(JOML): remove ChunkMath from LakeRasterizer Terasology/Lakes#18 (@pollend)
    • feat(JOML): remove deprecated API in favor of JOML for BlockFamily Terasology/BlockNetwork#16 (@skaldarnar)
    • feat(JOML): remove deprecated API in favor of JOML for BlockFamily Terasology/Machines#47 (@skaldarnar)
    • feat(JOML): remove deprecated API in favor of JOML for BlockFamily Terasology/Minesweeper#21 (@skaldarnar)
    • feat(JOML): remove deprecated API in favor of JOML for BlockFamily Terasology/MultiBlock#21 (@skaldarnar)
    • feat(JOML): remove deprecated API in favor of JOML for BlockFamily Terasology/Rails#73 (@skaldarnar)
    • feat(JOML): remove deprecated API in favor of JOML for BlockFamily Terasology/Sample#121 (@skaldarnar)
    • feat(JOML): remove JOMLUtil from BlockMotionSystem Terasology/ItemPipes#27 (@pollend)
    • feat(JOML): remove JOMLUtil from PipeBlockSegmentMapper Terasology/ItemPipes#30 (@pollend)
    • feat(JOML): remove refrences to JOMLUtil Terasology/Projectile#14 (@pollend)
    • feat(JOML): remove usage of JOMLUtil for BlockCompomponent Terasology/Rails#71 (@pollend)
    • feat(JOML): remove usage of JOMLUtil for BlockDamageRenderer Terasology/Health#61 (@pollend)
    • feat(JOML): remove usage of JOMLUtil Terasology/Apiculture#16 (@pollend)
    • feat(JOML): remove usage of JOMLUtil Terasology/BasicCrafting#7 (@pollend)
    • feat(JOML): remove usage of JOMLUtil Terasology/CoreRendering#28 (@pollend)
    • feat(JOML): remove usage of JOMLUtil Terasology/Durability#10 (@pollend)
    • feat(JOML): remove usage of JOMLUtil Terasology/DynamicCities#89 (@pollend)
    • feat(JOML): remove usage of JOMLUtil Terasology/Inferno#21 (@pollend)
    • feat(JOML): remove usage of JOMLUtil Terasology/Journal#15 (@pollend)
    • feat(JOML): remove usage of JOMLUtil Terasology/Machines#52 (@pollend)
    • feat(JOML): remove usage of JOMLUtil Terasology/ModularComputers#19 (@pollend)
    • feat(JOML): remove usage to JOMLUtil Terasology/IRLCorp#35 (@pollend)
    • feat(JOML): remove usage to TeraMath Terasology/CoreWorlds#29 (@pollend)
    • feat(JOML): removed usage of JOMLUtil and cleaned up imports Terasology/CoreRendering#25 (@pollend)
    • feat(JOML): replace getSecondaryPlacementDirection call Terasology/Climbables#6 (@jdrueckert)
    • feat(JOML): replace getSecondaryPlacementDirection call Terasology/StructuralResources#15 (@jdrueckert)
    • feat(JOML): replace deprecated extraData method calls Terasology/Fluid#31 (@jdrueckert)
    • feat(JOML): replace deprecated extraData method calls Terasology/Machines#51 (@jdrueckert)
    • feat(JOML): replace deprecated extraData methods Terasology/FallingBlocks#4 (@jdrueckert)
    • feat(JOML): replace LineSegment with Line2f Terasology/StaticCities#28 (@jdrueckert)
    • feat(JOML): use chunk constants from Chunks Terasology/AnotherWorld#24 (@jdrueckert)
    • feat(JOML): use chunk constants from Chunks Terasology/CoreRendering#30 (@jdrueckert)
    • feat(JOML): use chunk constants from Chunks Terasology/CoreWorlds#30 (@jdrueckert)
    • feat(JOML): use chunk constants from Chunks Terasology/FallingBlocks#5 (@jdrueckert)
    • feat(JOML): use chunk constants from Chunks Terasology/MetalRenegades#137 (@jdrueckert)
    • feat(JOML): use chunk constants from Chunks Terasology/Pathfinding#53 (@jdrueckert)
    • feat(JOML): use Chunks instead of ChunkMath Terasology/ClimateConditions#47 (@jdrueckert)
    • feat(JOML): use Chunks instead of ChunkMath Terasology/CustomOreGen#12 (@jdrueckert)
    • feat(JOML): use Chunks instead of ChunkMath Terasology/MetalRenegades#138 (@jdrueckert)
    • feat(JOML): use JOML API for HUDScreenLayer Terasology/Compass#10 (@skaldarnar)
    • feat(JOML): use JOML API for HUDScreenLayer Terasology/GooeyDefence#59 (@skaldarnar)
    • feat(JOML): use JOML API for HUDScreenLayer Terasology/Minimap#26 (@skaldarnar)
    • feat(JOML): use JOML API for HUDScreenLayer Terasology/Tasks#22 (@skaldarnar)
    • feat(JOML): use Line2f from CommonWorld Terasology/PolyWorld#37 (@jdrueckert)
    • feat: migrate to BlockPlacementData Terasology/StructuralResources#14 (@skaldarnar)
    • feat(trunk): migrate to BlockPlacementData Terasology/Furnishings#7 (@skaldarnar)
    • feature(JOML): migrate CompassWindow Terasology/Compass#7 (@pollend)
    • fix(JOML): align with BlockRegion API changes Terasology/Volcanoes#7 (@jdrueckert)
    • fixup! feat(JOML): migrate to Chunks (#52) Terasology/Pathfinding#54 (@skaldarnar)
    • fix(BlockRegionTransform): use immutable Vector3ic in public interface Terasology/StructureTemplates#54 (@skaldarnar)
    • refactor(JOML): Region3iMultiBlockDefinition to RegionMultiBlockDefinition Terasology/ComputerMonitors#9 (@jdrueckert)
    • refactor(JOML): use BlockRegionc Terasology/AnotherWorld#23 (@pollend)
    • refactor(JOML): use BlockRegionc Terasology/DynamicCities#88 (@pollend)
    • refactor(JOML): use BlockRegionc Terasology/FlowingLiquids#29 (@pollend)
    • refactor(JOML): use BlockRegionc Terasology/StaticCities#26 (@pollend)
    • refactor(JOML): use BlockRegionc Terasology/WeatherManager#22 (@pollend)
    • refactor: drop region3i from variable name and comments Terasology/MultiBlock#23 (@jdrueckert)
    • refactor: reduce code duplication / migrate to JOML Terasology/Inventory#31 (@skaldarnar)
    • test(JOML): migrate tests Terasology/FlexiblePathfinding#19 (@skaldarnar)
    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(156.84 MB)
  • v4.2.0-rc.1(Dec 29, 2020)

    :exclamation: This preview build has a known regression in Dynamic Cities which causes no cities to be generated. Therefore, game modes relying on this module currently do not work as expected (this includes Metal Renegades) :exclamation:


    Engine Changes

    :rocket: Features

    • feat(subsystems): extract TypeHandlerLibrary. (#4255)
    • feat(JOML): migrate world gen (#4322)
    • feat: add BlockArea to replace Rect2i (#4050)
    • feat(JOML): migrate to Rectanglei nui.animation (#4341)

    :bug: Bugfixes

    • fix: don't delete camera during purgeWorld command (#4310)
    • fix: add borders to atlas subtextures (#4311)
    • fix: add missing absolute value for box collider extent (#4325)
    • fix: make use of constant vectors and blockregion
    • fix(world): Compute border requests from rasterizers and @Updates annotations. (#4313)
    • fix: casing fix for homedir arg from Gradle (#4337)

    :man_teacher: JOML

    • feat(JOML): migrate BlockRegionComponent logic (#4296)
    • feat(JOML): migrate character package events and systems (#4279)
    • feat(JOML): add toBlockMapping utility (#4314)
    • feat(JOML): remove Transfrom from MeshRenderer (#4261)
    • feat(JOML): migrate block placement (#4228)
    • feat(JOML): migrate ThirdPersonRemoteClientSystem (#4302)
    • feat(JOML): migrate character movment (#4303)
    • feat(JOML): migrate camera target system (#4262)

    :toolbox: Maintenance

    • chore: removed count field for issue #4242 (#4308)
    • chore: Remove all the remaining occurences of SurfaceHeightFacet (#4290)
    • refactor!(BlockRegion): Rewrite of BlockRegion (#4321)
    • refactor!(BlockRegion): full API overhaul (#4326)
    • chore: remove SubSampledNoise2D/3D (#4334)

    :gear: CI/CD

    • ci(subsystems): Make TypeHandlerLibrary publishable with engine's version (#4307)
    • build(gradle)!: no longer append -SNAPSHOT to versions based on current git branch (#4032, #4039)
    • build(gradle): remove mavenLocal from project repositories (#4330)
    • build(gradle): save build time by not checking jcenter for terasology dependencies (#4342)

    :books: Documentation

    • doc: add system requirements to README (#4332)

    Module Changes

    :sparkles: New Modules

    • Add https://github.com/Terasology/FallingBlocks module to Omega (Terasology/Index#9)
    • Add https://github.com/Terasology/Notifications module to Omega
    • Add https://github.com/Terasology/Xmas module to Omega

    :rocket: Features

    • feat: Use 3D noise to add cliffs, overhangs, arches and floating islands. (Terasology/CoreWorlds#18)
    • feat: generate fir trees (Terasology/Xmas#3)
    • feat: give players a little christmas present (Terasology/Xmas#1)
    • feat: Let it Snow (Terasology/Xmas#4)
    • feat(BlockRegion): adjust for changes to BlockRegion Terasology/ClimateConditions#41, Terasology/CombatSystem#63, Terasology/DynamicCities#77, Terasology/Furnishings#6, Terasology/Health#57, Terasology/LightAndShadow#179, Terasology/MasterOfOreon#85, Terasology/MetalRenegades#121, Terasology/MultiBlock#13, Terasology/Rails#67, Terasology/Smithing#13, Terasology/StructureTemplates#52, Terasology/WoodAndStone#65, Terasology/WorkstationCrafting#19
    • feat: Replace custom widget with Notifications (Terasology/EventualSkills#13)
    • feat: Replace custom widget with Notifications (Terasology/InGameHelp#11)
    • feat: Update the world generator to use the new simplex-based providers Terasology/Exoplanet#15, Terasology/DynamicCities#78, Terasology/ParadIce#7
    • feat: Update world generator for compatibility (Terasology/MetalRenegades#122)
    • feat: Replace SurfaceHeightFacet with ElevationFacet and SurfacesFacet (adjust for MovingBlocks/Terasology#4237) Terasology/Minerals#12, Terasology/AlchemyPlantGenerator#4, Terasology/FlyingIslands#1
    • feat(SpawnPlateauProvider): derive target height from elevation and sea level facets (Terasology/CoreWorlds#16)

    :bug: Bugfixes

    • fix: add CoreAdvancedAssets optional dependency (Terasology/Xmas#2)
    • fix: Change biome selection so that snow biomes are actually possible. (Terasology/CoreWorlds#20)
    • fix: remove out-of-date copy of the default world generator (Terasology/Inferno#15)
    • fix: typo (Terasology/JoshariasSurvival#47)
    • fix: Reduce the priority for placing fluids (Terasology/Fluid#28)
    • fix: add missing mature guava bush (Terasology/AdditionalFruits#13)
    • test: fix failing tests (Terasology/DynamicCities#79)
    • fix: Make less assumptions on the relative sizes of facet borders. (Terasology/Caves#12)
    • fix: enemy height offset (Terasology/GooeyDefence#48)

    :man_teacher: JOML

    • feat(JOML): migrate location component for SegmentSystem (Terasology/SegmentedPaths#16)
    • feat(JOML): migrate world generation Terasology/Minerals#14, Terasology/Minesweeper#17, Terasology/OreGeneration#11, Terasology/WeatherManager#17, Terasology/MasterOfOreon#84, Terasology/Lost#28, Terasology/LightAndShadow#178, Terasology/Lakes#15, Terasology/JoshariasSurvival#46, Terasology/Inferno#14, Terasology/GrowingFlora#23, Terasology/GooeyDefence#49, Terasology/FlowingLiquids#22, Terasology/FlexiblePathfinding#13, Terasology/Exoplanet#14, Terasology/EdibleFlora#10, Terasology/DynamicCities#76, Terasology/CustomOreGen#9, Terasology/CoreWorlds#19, Terasology/Cities#41, Terasology/Caves#13, Terasology/AnotherWorld#16, Terasology/AlchemyPlantGenerator#5, Terasology/ClimateConditions#40
    • chore(JOML): align with block placement migration (MovingBlocks/Terasology#4228) Terasology/AnotherWorldPlants#8, Terasology/DynamicCities#74, Terasology/GrowingFlora#22, Terasology/ChangingBlocks#9, Terasology/Climbables#4, Terasology/ItemPipes#25, Terasology/StructureTemplates#50, Terasology/Fluid#26, Terasology/FlowingLiquids#21, Terasology/ModularComputers#14, Terasology/MobileBlocks#4, Terasology/Smithing#12, Terasology/IRLCorp#31, Terasology/MultiBlock#12, Terasology/Rails#66, Terasology/Furnishings#5, Terasology/StructuralResources#13, Terasology/Minimap#18- feat: Set instigator in DamageFollowedEntityAction.java (Terasology/Behaviors#54)
    • feat(JOML): migrate JOML for BlockRegion (Terasology/Furnishings#4) Terasology/Machines#42, Terasology/Health#55, Terasology/MultiBlock#11, Terasology/WorkstationCrafting#17, Terasology/IRLCorp#29, Terasology/StructureTemplates#48, Terasology/WoodAndStone#63, Terasology/LightAndShadow#176, Terasology/Smithing#11
    • chore(JOML): align for character event and system changes in MovingBlocks/Terasology#4279 Terasology/MasterOfOreon#81, Terasology/LightAndShadow#174, Terasology/GooKeeper#32, Terasology/FunnyBlocks#19, Terasology/CombatSystem#59, Terasology/AdventureAssets#32, Terasology/Rails#62, Terasology/FlowingLiquids#18, Terasology/Health#54, Terasology/BiomesAPI#7
    • chore(JOML): minor cleanup (Terasology/AdventureAssets#34)
    • feat(JOML): module migrations Terasology/FallingBlocks#1, Terasology/CoreWorlds#17, Terasology/ItemRendering#11, Terasology/Health#56, Terasology/FunnyBlocks#20, Terasology/FlowingLiquids#20, Terasology/CombatSystem#62, Terasology/Breathing#13, Terasology/Sensors#9

    :toolbox: Maintenance

    • chore: remove SurfaceHeightFacet entirely (Terasology/CoreWorlds#15)
    • chore(extract-subsystem): align with extracted TypeHandlerLibrary (Terasology/Dialogs#22)
    • chore: minor import cleanup (Terasology/BiomesAPI#8)

    :gear: CI/CD

    • chore(CI): add "-SNAPSHOT" due to recent release process changes (Terasology/IRLCorp#33)
    • chore(CI): add "-SNAPSHOT" due to recent release process changes (Terasology/ModuleTestingEnvironment#32)
    Source code(tar.gz)
    Source code(zip)
    md5sums.txt(54 bytes)
    sha256sums.txt(86 bytes)
    TerasologyOmega.zip(157.31 MB)
  • v4.1.0(Dec 6, 2020)

    Engine Changes

    🚀 Features

    • feat: Upgrade Netty to version 4 (#4224)
    • feat(MutableComponentContainer): Handle 'null' values in [update|upsert]Component (#4258)
    • feat: start first game day at sunrise (#4253)
    • feat(rendering): Adjust minimal amount of daylight at night
    • feat: remove use of Transform for BulletShapes (#4202)
    • feat(subsystems): extract DiscordRPCSubSystem (#4233)
    • feat: Add AFK state for players in multiplayer (#3571)
    • feat: Add ElevationFacet and SurfacesFacet to replace SurfaceHeightFacet. (#4237)
    • feat: add TypeHandler for BlockRegion, Color/c, Rectanglei/f and clean up code (#4182)
    • feat(controllers): replaced Jinput controller lib with LWJGL3 (GLFW) controller lib (#4218)
    • feat: increase default window size to 8:5 WXGA (#4160)
    • feat: add type handlers for Vector2/3/4fc and Vector2/3/4ic TypeHandlers and basic test cases for Event (#4174)
    • feat: LWJGL 3 ✨ (#4216)
    • feat: glTF Support 🐱‍🐉 (#4150)
    • feat(i18n): Update Czech translations (#4187)
    • feat: replace deprecated md5 assets with new gltf floating cube (#4293)
    • feat(nui): allow batch-adding multiple paragraphs to HTMLDocument (#4291)
    • feat(BlockRegion): add BlockRegion helpers (#4272)
    • feat(subsystems): add creating and loading reflections.cache for subsystems (#4274)
    • feat(player): increase player's eye height 0.7 >>> 0.85 (#4276)

    🐛 Bugfixes

    • fix: InputSystem#getInputsForBindButton was throwing NPE (#4256)
    • fix: reverse order of notification in PojoEntityManager (#4254)
    • fix: reduce default mouse sensitivity from 0.75 to 0.25 (#4252)
    • fix: remove afk screen (#4248)
    • fix: index out of bounds in GLTFAnimationFormat (#4247)
    • fix(skeletal-mesh-scaling): add scaling for skeletal-meshes (#4246)
    • fix: afk screen closing string
    • fix: Fix not killed process. (#4241)
    • fix: Reloading .ui file for screens during game (#4121)
    • fix(menu): remove notification to configure identity service (#4229)
    • fix: moving on typing, typing keybind in console/chat (#4222)
    • fix: Re-add collision mesh for liquid blocks
    • fix(screenshot): fix quad screenshots (#4220)
    • fix(nui-input): access to KeyboardDevice (#4219)
    • fix(build): added "java-platform" gradle plagin for "platform"/BOM dependencies. Seems, broken after upgrading gradle to version 6.7
    • fix: AGS selection weirdness (#4213)
    • fix(gradle-server): restore missing suffix for jvmarg -Xmx (#4212)
    • fix(gradle): remove obsolete comment
    • fix(nui): InputSettings:onClose out-of-bounds crash (#4199)
    • fix: action construction exception log (#4192)
    • fix: reduce volume and overmodulation of main theme (#4298)
    • fix: dispose physic's natives, stop threads. (#4299)
    • fix(world/chunks): make GenerateQueueEntity as Concurrent Collection (#4297)
    • fix(networking-timeout): graceful shutdown after failed connection (#4266)
    • fix: tweak lighting for over exposure problem (#4285)
    • fix(worldgen): Remove weird features near the origin from BrownianNoise (#4288)
    • fix: prevent NPE during movement interpolation (#4278)
    • fix: item pickup radius (again) (#4282)
    • fix(i18n): misspells / typing errors in czech translation (#4268)
    • fix(network): fix server info request and ping error handling (#4267)
    • fix: Time out of sync for players in multiplayer (#4292)
    • fix(BlockRegion): correct center calculation for BlockRegion (#4301)

    👨‍🏫 JOML

    • feat(JOML): migrate LocalPlayerSystem (#4249)
    • feat(JOML): migrate core commands (#4251)
    • feat(JOML): migrate lwjglCanvasRenderer (#4230)
    • feat(JOML): migrate BlockItemSystem and Physics#scanArea (#4193)
    • feat(JOML): migrate player factory (#4205)
    • feat(JOML): migrate ChunkMath#getChunkRegionAroundWorldPos (#4204)
    • feat(JOML): migrate storage transaction (#4203)
    • feat(JOML): migrate FirstPeronHeldItem/Mount/Transform Component (#4178)
    • feat(JOML): migrate target system (#4161)
    • feat(JOML): migrate NetClient (#4183)
    • feat(JOML): migrate block (#4164)
    • feat(JOML): migrate DistanceComparator (#4165)
    • feat(JOML): remove use of JOMLUtil for #getBlock (#4163)
    • feat(JOML): migrate wavefront format (#4191)
    • feat(JOML): Fixes invisible spawning when scale is used (#4198)
    • feat(JOML): prepare BlockComponent for migration (#4186)
    • feat(JOML): add orientation for Rotation (#4168)
    • feat(JOML): migrate CharacterMovmentComponent (#4177)
    • feat(JOML): migrate ChangeVelocity/Force, Impulse events (#4176)
    • feat(JOML): migrate action event (#4172)
    • feat(JOML): migrate LocalPlayer and correct Direction (#4162)
    • feat(JOML): migrate random (#4167)
    • feat(JOML): Migrate JOML for MultiConnectFamily and UpdateWithNeighboursFamily (#4069)
    • feat(JOML): add BlockRegion#center (#4159)
    • feat(JOML): migrate Side#inDirection(Vector3f) (#4130)
    • feat(JOML): migrate StandardBatchPropagator region (#4195)
    • feat(JOML): Migrate side#getVector3i() to direction() (#4101)
    • feat(JOML): migrate SkeletonRenderer (#4283)
    • feat(JOML): add util for Region3i from BlockRegion (#4284)
    • feat(JOML): migrate player spawn component and logic (#4281)
    • feat(JOML): migrate AudioManager (#4275)
    • feat(JOML): migrate CharacterTeleportEvent (#4273)
    • feat(JOML): migrate InputSystem and events (#4259)
    • feat(JOML): migrate monitoring (#4260)

    🐢 Performance

    • perf(chunkprovider): add sorting for incoming request on chunk loading/generation. (#4280)
    • perf: drop creation of unnecessary array on new chunk event (#4269)

    🧰 Maintenance

    • chore: reduce log-level of NetworkSystemImpl's component added/removed logs
    • chore: make older builds in Jenkins prune their attached artifacts + minor quality tweaks
    • chore: bump dependency on splash screen to a fully released version, should be no real functional changes (#4239)
    • chore: change texture file for 'engine:gui' atlas (crosshair-only) (#4232)
    • chore: Extract "run game" task configurations (#4245)
    • chore(settings): disable identity service login ui features (#4125)
    • chore: Archive COLLADA format (#4227)
    • chore(chunkprovider): Streamline ChunkProvier (#4214)
    • chore: remove ImmutableBlockLocation (#4170)
    • chore: remove md5 loader (#4184)
    • chore: remove Has/Cancel/Add DelayedActionEvent (#4166)
    • chore: remove ConcurrentMapChunkCache (#3962)
    • chore(JNA): update JNA to 5.6.0, remove com.sun.jna from jopenvr.jar (#4169)
    • chore: backport changes from old bullet branch (#4139)
    • refactor: Chunk provider refactoring. Part 2. (#4140)
    • perf: tweak sort for validating chunk n^2 cost (#4179)
    • chore: remove some of the most noisy debug logs (#4294)

    ⚙ CI/CD

    • build: log Java version and JDK path with gradle warning. (#4223)
    • build: add extract natives for jinput (#4217)
    • build: Upgrade Gradle to 6.7 (#4171)
    • build: convert facades/PC to gradle to kts (#4175)

    📚 Documentation

    • doc: archive WildAnimalsMadness (#4207)
    • doc: update module lineup list (#4173)
    • doc: fix some JavaDoc errors (#4264)

    Module Changes

    🚀 Features

    • feat: add prefabs with TimedMusicTrigger for music assets (Terasology/ChrisVolume2OST#4)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/Lost#24)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/PolyWorld#28)
    • feat: remove minimap (Terasology/LightAndShadow#168)
    • feat: Significant re-write, changing the algorithm and lake shape. (Terasology/Lakes#14)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/LightAndShadow#167)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/ParadIce#4)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/MetalRenegades#112)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/DynamicCities#70)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet. (Terasology/CoreWorlds#13)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet (Terasology/JoshariasSurvival#44)
    • feat: Allow surface decorations into cave entrances (Terasology/Caves#10)
    • feat: add robot models (Terasology/MetalRenegades#107)
    • feat(icons): update icons for hypo-/hyperthermia conditions (Terasology/ClimateConditions#34)
    • feat: add sheep assets (Terasology/WildAnimals#68)
    • feat: More rock types (Terasology/GenericRocks#2)
    • feat: replace animals with Quaternion's cute monsters (Terasology/WildAnimals#67)
    • feat: improve `EnemySpawnSystem (Terasology/MetalRenegades#103)
    • feat: merge in WildAnimalsMadness assets, add new icons (Terasology/WildAnimals#64)
    • feat: Upgrading LWJGL to version 3 (Terasology/CoreRendering#15)
    • feat: Enable placement of liquids from containers (Terasology/Fluid#21)
    • feat: Add a timer to indicate when the restart button gets enabled (Terasology/LightAndShadow#161)
    • feat: add FlowingLiquids dependency (Terasology/JoshariasSurvival#40)
    • feat: tweak physics for bullet changes (Terasology/ChangingBlocks#8)
    • feat: Asset improvements and lore changes (Terasology/Lost#15)
    • feat: Disabled mode for restart button (Terasology/LightAndShadowResources#60)
    • feat: add display name component to item prefabs (Terasology/IRLCorp#28)
    • feat: add display names for blocks (Terasology/ManualLabor#39)
    • feat: add gooey assets (Terasology/MawGooey#5)
    • feat: Improve in-game help (Terasology/Workstation#15)
    • feat: Improve in-game help (Terasology/WorkstationInGameHelp#10)
    • feat: replace deprecated md5 assets with gooey from MawGooey (Terasology/GooeyDefence#43)
    • feat: Replace SurfaceHeightFacet with ElevationFacet (Terasology/TutorialMinimalEngineDemo#2)
    • feat: Replace SurfaceHeightFacet with ElevationFacet and SurfacesFacet (Terasology/ModuleTestingEnvironment#29)
    • feat: Replace SurfaceHeightFacet with ElevationFacet and SurfacesFacet (Terasology/SurfaceFacets#5)
    • feat: Replace SurfaceHeightFacet with ElevationFacet and SurfacesFacet (Terasology/GrowingFlora#21)
    • feat: Replace SurfaceHeightFacet with ElevationFacet and SurfacesFacet (Terasology/Minesweeper#16)
    • feat: Replace SurfaceHeightFacet with ElevationFacet and SurfacesFacet (Terasology/TutorialQuests#17)
    • feat: use gooey from MawGooey (Terasology/GooeysQuests#56)
    • feat: use gooey from MawGooey (Terasology/GooKeeper#31)
    • feat: use gooey from MawGooey module (Terasology/MetalRenegades#113)
    • feat(HelpItem): provide "formatted" paragraph data instead of modifying DocumentData (Terasology/InGameHelpAPI#6)
    • feat(MachineWindow): sort items by display name (Terasology/Machines#41)

    🐛 Bugfixes

    • fix: create ActivateRegenEvent with regen value (Terasology/ClimateConditions#35)
    • fix: regeneration starting too soon (Terasology/Health#51)
    • fix: Remove dependence of exposure on whether it's night (Terasology/CoreRendering#24)
    • fix: chess piece assets (Terasology/LightAndShadowResources#62)
    • fix: Only place ore where there is already rock. (Terasology/OreGeneration#10)
    • fix: robot citizens (Terasology/MetalRenegades#110)
    • fix: model orientation (Terasology/GooKeeper#30)
    • fix: model orientation (Terasology/GooeysQuests#55)
    • fix: model orientation and size (Terasology/MetalRenegades#105)
    • fix: keep aspect ratio of icons (just scale) (Terasology/WorldlyTooltip#15)
    • fix: oreon animations and icons (Terasology/MasterOfOreon#79)
    • fix: model orientation and icon (Terasology/MawGooey#4)
    • fix: model orientation (Terasology/WildAnimals#69)
    • fix: down-size visitor model (Terasology/GooKeeper#29)
    • fix: NPE in `EconomySystem (Terasology/GooKeeper#26)
    • fix: Lwjgl3 compile fix (Terasology/ModularComputers#10)
    • fix: mawgooey icon (Terasology/MetalRenegades#104)
    • fix: add mawgooey icon to atlas (Terasology/WildAnimals#66)
    • fix: Added CoreRendering to module.txt (Terasology/ParadIce#3)
    • fix: inverted faces of NarrowBlockShape (Terasology/CoreAssets#10)
    • fix: model sizes and offsets (Terasology/WildAnimals#65)
    • fix: texture region resolution error (Terasology/SimpleFarming#102)
    • fix(lwjgl): replace deprecated `getKeyCharacter (Terasology/KComputers#7)
    • fix: Avoid placing liquids at the same time as filling tanks (Terasology/Machines#35)
    • fix: key bind for ProgramEditingConsoleGui and PlayerCommandConsoleGui (Terasology/ModularComputers#7)
    • fix: checkstyle errors (Terasology/KComputers#4)
    • fix: adapt to changes to BlockRegionIterable (Terasology/ClimateConditions#38)
    • fix: adapt to changes to BlockRegionIterable (Terasology/DynamicCities#73)
    • fix: adapt to changes to BlockRegionIterable (Terasology/MetalRenegades#117)
    • fix: adapt to changes to BlockRegionIterable #73 (Terasology/CombatSystem#61)
    • fix: union regions instead of min and max (Terasology/StructureTemplates#47)

    🐱‍🐉 glTF

    • fix: replace deprecated md5 gooey with new gltf gooey (Terasology/MetalRenegades#101)
    • fix: gltf (Terasology/HumanoidCharacters#9)
    • fix(gltf): replace deprecated md5 assets (Terasology/GooKeeper#27)
    • feat(gltf): Changed obj meshes to gltf (Terasology/AdvancedRails#7)
    • feat(gltf): Changed obj meshes to gltf (Terasology/Rails#55)
    • feat(gltf): Converted obj models to gltf (Terasology/AdditionalRails#38)
    • feat(gltf): gltf support for male and female meshes (Terasology/HumanoidCharacters#4)
    • feat(gltf): gltf support for Gooey and Skeleton (Terasology/GooeysQuests#52)
    • feat: GLTF Support (Terasology/WildAnimals#59)
    • feat(gltf): Replaces md5 mawGooey mesh with gltf (Terasology/MawGooey#3)
    • feat(gltf): migrate for gltf (Terasology/LightAndShadowResources#61)
    • feat: add gltf support (Terasology/Oreons#8)

    👨‍🏫 JOML

    • feat(JOML): migrate card system (Terasology/LightAndShadow#170)
    • feat(joml): migrate `AnimalSpawnSystem (Terasology/MetalRenegades#106)
    • feat(JOML): migrate direction (Terasology/ItemPipes#24)
    • feat(JOML): migrate worldProvider setBlock (Terasology/Durability#8)
    • feat(joml): `RiverRasterizer (Terasology/PolyWorld#27)
    • feat(joml): `VisualEffectorSystem (Terasology/GooeyDefence#42)
    • feat(joml): migrate `Explosives (Terasology/Explosives#3)
    • feat(JOML): minor tweak from simplefarming (Terasology/MetalRenegades#100)
    • feat(JOML): tweak for simple farming (Terasology/AdditionalRails#43)
    • feat(JOML): quick migration for pathfinding (Terasology/Behaviors#47)
    • feat(JOML): migrate SimpleFarming (Terasology/SimpleFarming#101)
    • feat(JOML): migrate and clean up (Terasology/Pathfinding#47)
    • feat(JOML): migrate and clone up code and update copyright (Terasology/WildAnimals#63)
    • feat(JOML): migrate `GooKeeper (Terasology/GooKeeper#25)
    • feat(joml): general cleanup and migration with support methods (Terasology/Potions#64)
    • feat(JOML): migrate and clean up code (Terasology/Rails#61)
    • feat(JOML): migrate CharacterMovmentComponent (Terasology/Rails#60)
    • feat(JOML): migrate physic event (Terasology/Inventory#28)
    • feat(joml): migrate `KallistiDisplayComponent (Terasology/KComputers#1)
    • feat(joml): changes from bullet physics conversion (Terasology/AdvancedRails#5)
    • feat(joml): changes from bullet physics conversion (Terasology/Alchemy#9)
    • feat(joml): changes from bullet physics conversion - JOML (Terasology/Rails#51)
    • feat(joml): migrate block family (Terasology/Rails#57)
    • feat(joml): migrate block family (Terasology/Fences#12)
    • feat(joml): migrate block family (Terasology/Machines#33)
    • feat(joml): migrate block family (Terasology/ItemPipes#19)
    • feat(joml): migrate block family (Terasology/GrowingFlora#16)
    • feat(joml): migrate block family (Terasology/AdditionalRails#39)
    • feat(joml): migrate block family (Terasology/Sample#116)
    • feat: migrate JOML physics (Terasology/IRLCorp#26)
    • feat: migrate JOML physics (Terasology/CombatSystem#54)
    • feat: migrate JOML physics (Terasology/ItemPipes#22)
    • feat: migrate JOML physics (Terasology/Projectile#10)
    • feat: migrate JOML physics (Terasology/Rails#58)
    • feat: migrate JOML physics (Terasology/SegmentedPaths#13)
    • feat: migrate JOML physics (Terasology/Sensors#7)
    • feat: migrate JOML physics (Terasology/AdditionalItemPipes#18)
    • feat: migrate JOML physics (Terasology/AdditionalRails#41)
    • feat: migrate JOML physics (Terasology/AdvancedRails#8)
    • feat: migrate JOML physics (Terasology/AdventureAssets#29)
    • feat: migrate JOML physics (Terasology/Equipment#128)
    • feat: migrate JOML physics (Terasology/GooKeeper#22)
    • feat: migrate JOML physics (Terasology/LightAndShadow#157)
    • feat(JOML): migrate ore facet (Terasology/CustomOreGen#7)
    • feat(JOML): migrate ore facet (Terasology/OreGeneration#9)
    • feat: migrate JOML physics (Terasology/MetalRenegades#99)
    • feat(JOML): migrate action event (Terasology/GooKeeper#24)
    • feat(JOML): migrate action event (Terasology/Furnishings#3)
    • feat(JOML): migrate action event (Terasology/Fluid#24)
    • feat(JOML): migrate action event (Terasology/Explosives#2)
    • feat(JOML): migrate action event (Terasology/CombatSystem#57)
    • feat(JOML): migrate action event (Terasology/AnotherWorldPlants#7)
    • feat(JOML): migrate action event (Terasology/WorkstationCrafting#16)
    • feat(JOML): migrate action event (Terasology/WoodAndStone#62)
    • feat(JOML): migrate action event (Terasology/StructureTemplates#44)
    • feat(JOML): migrate action event (Terasology/SimpleFarming#100)
    • feat(JOML): migrate action event (Terasology/Signalling#22)
    • feat(JOML): migrate action event (Terasology/Projectile#12)
    • feat(JOML): migrate action event (Terasology/MasterOfOreon#78)
    • feat(JOML): migrate action event (Terasology/Machines#40)
    • feat(JOML): migrate action event (Terasology/Lost#16)
    • feat(JOML): migrate action event (Terasology/LightAndShadow#165)
    • feat(joml): migrate target system (Terasology/WorldlyTooltip#13)
    • feat(JOML): align with changes in `StructureTemplates (Terasology/DynamicCities#71)
    • feat(JOML): align with changes in `StructureTemplates (Terasology/MasterOfOreon#82)
    • feat(JOML): align with changes in `StructureTemplates (Terasology/Scenario#50)
    • feat(JOML): cleanup and migrate code to joml (Terasology/AdventureAssets#31)
    • feat(JOML): migrate joml structured templates (Terasology/ClimateConditions#37)
    • feat(JOML): migrate joml structured templates (Terasology/CombatSystem#60)
    • feat(JOML): migrate joml structured templates (Terasology/GooeysQuests#58)
    • feat(JOML): migrate structured template (Terasology/Lost#27)
    • feat(JOML): migrate for structured templates (Terasology/MetalRenegades#116)

    🐢 Performance

    • perf(client): set ViewDistance to "Legally Blind" for headless clients (Terasology/ModuleTestingEnvironment#31)

    🧰 Maintenance

    • chore: reduce LogAction log level to `debug(Terasology/Behaviors#49)
    • chore: remove deprecated md5 assets (Terasology/Sample#119)
    • chore(omega): remove `WildAnimalsMadness (Terasology/Index#8)
    • chore: refactor Region to `GraphRegion (Terasology/PolyWorld#26)
    • refactor: adjust to renaming of PolyWorld's graph.Region >>> GraphRegion (Terasology/Lost#22)
    • perf: add relevance check to avoid creating additional entity (Terasology/ModuleTestingEnvironment#27)
    • chore: formatting (Terasology/AdditionalRails#36)
    • chore: TeraMath / JOML conversion (Terasology/Inventory#26)
    • chore: remove skeleton from CombatSystem (Terasology/CombatSystem#56)
    • chore: update direction of fool (Terasology/LightAndShadow#163)
    • chore: remove JOMLUtil from block tint (Terasology/CoreRendering#23)
    • chore: remove use of ImmutableBlockLocation in favor of Vector3i (Terasology/ClimateConditions#33)
    • chore: align deer size with sheep (Terasology/WildAnimals#73)
    • chore: remove deprecated md5 assets (Terasology/MawGooey#8)
    • chore: Remove reference to SurfaceHeightFacet (Terasology/Exoplanet#13)
    • chore: Remove SurfaceHeightFacet (Terasology/Caves#11)
    • chore: Remove unused import: ElevationCompatibilityProvider (Terasology/GooeyDefence#46)
    • chore: Remove usage of SurfaceHeightFacet from IglooProvider (Terasology/ClimateConditions#39)
    • chore: update copyright and remove unused imports (Terasology/WildAnimalsGenome#10)
    • chore(ItemsCategory): manage and sort item help entries via custom data type (Terasology/InGameHelp#12)

    📚 Documentation

    • doc: Created README.md (Terasology/Lost#23)
    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(157.21 MB)
  • v4.1.0-rc.2(Dec 5, 2020)

    Engine Changes

    🚀 Features

    • feat: replace deprecated md5 assets with new gltf floating cube (#4293)
    • feat(nui): allow batch-adding multiple paragraphs to HTMLDocument (#4291)
    • feat(BlockRegion): add BlockRegion helpers (#4272)
    • feat(subsystems): add creating and loading reflections.cache for subsystems (#4274)
    • feat(player): increase player's eye height 0.7 >>> 0.85 (#4276)

    🐛 Bugfixes

    • fix: reduce volume and overmodulation of main theme (#4298)
    • fix: dispose physic's natives, stop threads. (#4299)
    • fix(world/chunks): make GenerateQueueEntity as Concurrent Collection (#4297)
    • fix(networking-timeout): graceful shutdown after failed connection (#4266)
    • fix: tweak lighting for over exposure problem (#4285)
    • fix(worldgen): Remove weird features near the origin from BrownianNoise (#4288)
    • fix: prevent NPE during movement interpolation (#4278)
    • fix: item pickup radius (again) (#4282)
    • fix(i18n): misspells / typing errors in czech translation (#4268)
    • fix(network): fix server info request and ping error handling (#4267)
    • fix: Time out of sync for players in multiplayer (#4292)

    👨‍🏫 JOML

    • feat(JOML): migrate SkeletonRenderer (#4283)
    • feat(JOML): add util for Region3i from BlockRegion (#4284)
    • feat(JOML): migrate player spawn component and logic (#4281)
    • feat(JOML): migrate AudioManager (#4275)
    • feat(JOML): migrate CharacterTeleportEvent (#4273)
    • feat(JOML): migrate InputSystem and events (#4259)
    • feat(JOML): migrate monitoring (#4260)

    🐢 Performance

    • perf(chunkprovider): add sorting for incoming request on chunk loading/generation. (#4280)
    • perf: drop creation of unnecessary array on new chunk event (#4269)

    🧰 Maintenance

    • chore: remove some of the most noisy debug logs (#4294)

    📚 Documentation

    • doc: fix some JavaDoc errors (#4264)

    Module Changes

    🚀 Features

    • feat: add display name component to item prefabs (Terasology/IRLCorp#28)
    • feat: add display names for blocks (Terasology/ManualLabor#39)
    • feat: add gooey assets (Terasology/MawGooey#5)
    • feat: Improve in-game help (Terasology/Workstation#15)
    • feat: Improve in-game help (Terasology/WorkstationInGameHelp#10)
    • feat: replace deprecated md5 assets with gooey from MawGooey (Terasology/GooeyDefence#43)
    • feat: Replace SurfaceHeightFacet with ElevationFacet (Terasology/TutorialMinimalEngineDemo#2)
    • feat: Replace SurfaceHeightFacet with ElevationFacet and SurfacesFacet (Terasology/ModuleTestingEnvironment#29)
    • feat: Replace SurfaceHeightFacet with ElevationFacet and SurfacesFacet (Terasology/SurfaceFacets#5)
    • feat: Replace SurfaceHeightFacet with ElevationFacet and SurfacesFacet (Terasology/GrowingFlora#21)
    • feat: Replace SurfaceHeightFacet with ElevationFacet and SurfacesFacet (Terasology/Minesweeper#16)
    • feat: Replace SurfaceHeightFacet with ElevationFacet and SurfacesFacet (Terasology/TutorialQuests#17)
    • feat: use gooey from MawGooey (Terasology/GooeysQuests#56)
    • feat: use gooey from MawGooey (Terasology/GooKeeper#31)
    • feat: use gooey from MawGooey module (Terasology/MetalRenegades#113)
    • feat(HelpItem): provide "formatted" paragraph data instead of modifying DocumentData (Terasology/InGameHelpAPI#6)
    • feat(MachineWindow): sort items by display name (Terasology/Machines#41)

    🐛 Bugfixes

    • fix: adapt to changes to BlockRegionIterable (Terasology/ClimateConditions#38)
    • fix: adapt to changes to BlockRegionIterable (Terasology/DynamicCities#73)
    • fix: adapt to changes to BlockRegionIterable (Terasology/MetalRenegades#117)
    • fix: adapt to changes to BlockRegionIterable #73 (Terasology/CombatSystem#61)
    • fix: union regions instead of min and max (Terasology/StructureTemplates#47)

    👨‍🏫 JOML

    • feat(JOML): align with changes in `StructureTemplates (Terasology/DynamicCities#71)
    • feat(JOML): align with changes in `StructureTemplates (Terasology/MasterOfOreon#82)
    • feat(JOML): align with changes in `StructureTemplates (Terasology/Scenario#50)
    • feat(JOML): cleanup and migrate code to joml (Terasology/AdventureAssets#31)
    • feat(JOML): migrate joml structured templates (Terasology/ClimateConditions#37)
    • feat(JOML): migrate joml structured templates (Terasology/CombatSystem#60)
    • feat(JOML): migrate joml structured templates (Terasology/GooeysQuests#58)
    • feat(JOML): migrate structured template (Terasology/Lost#27)
    • feat(JOML): migrate for structured templates (Terasology/MetalRenegades#116)

    🐢 Performance

    • perf(client): set ViewDistance to "Legally Blind" for headless clients (Terasology/ModuleTestingEnvironment#31)

    🧰 Maintenance

    • chore: align deer size with sheep (Terasology/WildAnimals#73)
    • chore: remove deprecated md5 assets (Terasology/MawGooey#8)
    • chore: Remove reference to SurfaceHeightFacet (Terasology/Exoplanet#13)
    • chore: Remove SurfaceHeightFacet (Terasology/Caves#11)
    • chore: Remove unused import: ElevationCompatibilityProvider (Terasology/GooeyDefence#46)
    • chore: Remove usage of SurfaceHeightFacet from IglooProvider (Terasology/ClimateConditions#39)
    • chore: update copyright and remove unused imports (Terasology/WildAnimalsGenome#10)
    • chore(ItemsCategory): manage and sort item help entries via custom data type (Terasology/InGameHelp#12)
    Source code(tar.gz)
    Source code(zip)
  • v4.1.0-rc.1(Nov 22, 2020)

    Engine Changes

    🚀 Features

    • feat: Upgrade Netty to version 4 (#4224)
    • feat(MutableComponentContainer): Handle 'null' values in [update|upsert]Component (#4258)
    • feat: start first game day at sunrise (#4253)
    • feat(rendering): Adjust minimal amount of daylight at night
    • feat: remove use of Transform for BulletShapes (#4202)
    • feat(subsystems): extract DiscordRPCSubSystem (#4233)
    • feat: Add AFK state for players in multiplayer (#3571)
    • feat: Add ElevationFacet and SurfacesFacet to replace SurfaceHeightFacet. (#4237)
    • feat: add TypeHandler for BlockRegion, Color/c, Rectanglei/f and clean up code (#4182)
    • feat(controllers): replaced Jinput controller lib with LWJGL3 (GLFW) controller lib (#4218)
    • feat: increase default window size to 8:5 WXGA (#4160)
    • feat: add type handlers for Vector2/3/4fc and Vector2/3/4ic TypeHandlers and basic test cases for Event (#4174)
    • feat: LWJGL 3 ✨ (#4216)
    • feat: glTF Support 🐱‍🐉 (#4150)

    🐛 Bugfixes

    • fix: InputSystem#getInputsForBindButton was throwing NPE (#4256)
    • fix: reverse order of notification in PojoEntityManager (#4254)
    • fix: reduce default mouse sensitivity from 0.75 to 0.25 (#4252)
    • fix: remove afk screen (#4248)
    • fix: index out of bounds in GLTFAnimationFormat (#4247)
    • fix(skeletal-mesh-scaling): add scaling for skeletal-meshes (#4246)
    • fix: afk screen closing string
    • fix: Fix not killed process. (#4241)
    • fix: Reloading .ui file for screens during game (#4121)
    • fix(menu): remove notification to configure identity service (#4229)
    • fix: moving on typing, typing keybind in console/chat (#4222)
    • fix: Re-add collision mesh for liquid blocks
    • fix(screenshot): fix quad screenshots (#4220)
    • fix(nui-input): access to KeyboardDevice (#4219)
    • fix(build): added "java-platform" gradle plagin for "platform"/BOM dependencies. Seems, broken after upgrading gradle to version 6.7
    • fix: AGS selection weirdness (#4213)
    • fix(gradle-server): restore missing suffix for jvmarg -Xmx (#4212)
    • fix(gradle): remove obsolete comment
    • fix(nui): InputSettings:onClose out-of-bounds crash (#4199)
    • fix: action construction exception log (#4192)

    👨‍🏫 JOML

    • feat(JOML): migrate LocalPlayerSystem (#4249)
    • feat(JOML): migrate core commands (#4251)
    • feat(JOML): migrate lwjglCanvasRenderer (#4230)
    • feat(JOML): migrate BlockItemSystem and Physics#scanArea (#4193)
    • feat(JOML): migrate player factory (#4205)
    • feat(JOML): migrate ChunkMath#getChunkRegionAroundWorldPos (#4204)
    • feat(JOML): migrate storage transaction (#4203)
    • feat(JOML): migrate FirstPeronHeldItem/Mount/Transform Component (#4178)
    • feat(JOML): migrate target system (#4161)
    • feat(JOML): migrate NetClient (#4183)
    • feat(JOML): migrate block (#4164)
    • feat(JOML): migrate DistanceComparator (#4165)
    • feat(JOML): remove use of JOMLUtil for #getBlock (#4163)
    • feat(JOML): migrate wavefront format (#4191)
    • feat(JOML): Fixes invisible spawning when scale is used (#4198)
    • feat(JOML): prepare BlockComponent for migration (#4186)
    • feat(JOML): add orientation for Rotation (#4168)
    • feat(JOML): migrate CharacterMovmentComponent (#4177)
    • feat(JOML): migrate ChangeVelocity/Force, Impulse events (#4176)
    • feat(JOML): migrate action event (#4172)
    • feat(JOML): migrate LocalPlayer and correct Direction (#4162)
    • feat(JOML): migrate random (#4167)
    • feat(JOML): Migrate JOML for MultiConnectFamily and UpdateWithNeighboursFamily (#4069)
    • feat(JOML): add BlockRegion#center (#4159)
    • feat(JOML): migrate Side#inDirection(Vector3f) (#4130)
    • feat(JOML): migrate StandardBatchPropagator region (#4195)
    • feat(JOML): Migrate side#getVector3i() to direction() (#4101)

    🧰 Maintenance

    • chore: reduce log-level of NetworkSystemImpl's component added/removed logs
    • chore: make older builds in Jenkins prune their attached artifacts + minor quality tweaks
    • chore: bump dependency on splash screen to a fully released version, should be no real functional changes (#4239)
    • chore: change texture file for 'engine:gui' atlas (crosshair-only) (#4232)
    • chore: Extract "run game" task configurations (#4245)
    • chore(settings): disable identity service login ui features (#4125)
    • chore: Archive COLLADA format (#4227)
    • chore(chunkprovider): Streamline ChunkProvier (#4214)
    • chore: remove ImmutableBlockLocation (#4170)
    • chore: remove md5 loader (#4184)
    • chore: remove Has/Cancel/Add DelayedActionEvent (#4166)
    • chore: remove ConcurrentMapChunkCache (#3962)
    • chore(JNA): update JNA to 5.6.0, remove com.sun.jna from jopenvr.jar (#4169)
    • chore: backport changes from old bullet branch (#4139)
    • refactor: Chunk provider refactoring. Part 2. (#4140)
    • perf: tweak sort for validating chunk n^2 cost (#4179)

    ⚙ CI/CD

    • build: log Java version and JDK path with gradle warning. (#4223)
    • build: add extract natives for jinput (#4217)
    • build: Upgrade Gradle to 6.7 (#4171)
    • build: convert facades/PC to gradle to kts (#4175)

    📚 Documentation

    • doc: archive WildAnimalsMadness (#4207)
    • docs: update module lineup list (#4173)
    • i18n: Update Czech translations (#4187)

    Module Changes

    🚀 Features

    • feat: add prefabs with TimedMusicTrigger for music assets (Terasology/ChrisVolume2OST#4)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/Lost#24)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/PolyWorld#28)
    • feat: remove minimap (Terasology/LightAndShadow#168)
    • feat: Significant re-write, changing the algorithm and lake shape. (Terasology/Lakes#14)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/LightAndShadow#167)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/ParadIce#4)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/MetalRenegades#112)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet (Terasology/DynamicCities#70)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet and ElevationFacet. (Terasology/CoreWorlds#13)
    • feat: Replace SurfaceHeightFacet with SurfacesFacet (Terasology/JoshariasSurvival#44)
    • feat: Allow surface decorations into cave entrances (Terasology/Caves#10)
    • feat: add robot models (Terasology/MetalRenegades#107)
    • feat(icons): update icons for hypo-/hyperthermia conditions (Terasology/ClimateConditions#34)
    • feat: add sheep assets (Terasology/WildAnimals#68)
    • feat: More rock types (Terasology/GenericRocks#2)
    • feat: replace animals with Quaternion's cute monsters (Terasology/WildAnimals#67)
    • feat: improve `EnemySpawnSystem (Terasology/MetalRenegades#103)
    • feat: merge in WildAnimalsMadness assets, add new icons (Terasology/WildAnimals#64)
    • feat: Upgrading LWJGL to version 3 (Terasology/CoreRendering#15)
    • feat: Enable placement of liquids from containers (Terasology/Fluid#21)
    • feat: Add a timer to indicate when the restart button gets enabled (Terasology/LightAndShadow#161)
    • feat: add FlowingLiquids dependency (Terasology/JoshariasSurvival#40)
    • feat: tweak physics for bullet changes (Terasology/ChangingBlocks#8)
    • feat: Asset improvements and lore changes (Terasology/Lost#15)
    • feat: Disabled mode for restart button (Terasology/LightAndShadowResources#60)

    🐱‍🐉 glTF

    • fix: replace deprecated md5 gooey with new gltf gooey (Terasology/MetalRenegades#101)
    • fix: gltf (Terasology/HumanoidCharacters#9)
    • fix(gltf): replace deprecated md5 assets (Terasology/GooKeeper#27)
    • feat(gltf): Changed obj meshes to gltf (Terasology/AdvancedRails#7)
    • feat(gltf): Changed obj meshes to gltf (Terasology/Rails#55)
    • feat(gltf): Converted obj models to gltf (Terasology/AdditionalRails#38)
    • feat(gltf): gltf support for male and female meshes (Terasology/HumanoidCharacters#4)
    • feat(gltf): gltf support for Gooey and Skeleton (Terasology/GooeysQuests#52)
    • feat: GLTF Support (Terasology/WildAnimals#59)
    • feat(gltf): Replaces md5 mawGooey mesh with gltf (Terasology/MawGooey#3)
    • feat(gltf): migrate for gltf (Terasology/LightAndShadowResources#61)
    • feat: add gltf support (Terasology/Oreons#8)

    🐛 Bugfixes

    • fix: create ActivateRegenEvent with regen value (Terasology/ClimateConditions#35)
    • fix: regeneration starting too soon (Terasology/Health#51)
    • fix: Remove dependence of exposure on whether it's night (Terasology/CoreRendering#24)
    • fix: chess piece assets (Terasology/LightAndShadowResources#62)
    • fix: Only place ore where there is already rock. (Terasology/OreGeneration#10)
    • fix: robot citizens (Terasology/MetalRenegades#110)
    • fix: model orientation (Terasology/GooKeeper#30)
    • fix: model orientation (Terasology/GooeysQuests#55)
    • fix: model orientation and size (Terasology/MetalRenegades#105)
    • fix: keep aspect ratio of icons (just scale) (Terasology/WorldlyTooltip#15)
    • fix: oreon animations and icons (Terasology/MasterOfOreon#79)
    • fix: model orientation and icon (Terasology/MawGooey#4)
    • fix: model orientation (Terasology/WildAnimals#69)
    • fix: down-size visitor model (Terasology/GooKeeper#29)
    • fix: NPE in `EconomySystem (Terasology/GooKeeper#26)
    • fix: Lwjgl3 compile fix (Terasology/ModularComputers#10)
    • fix: mawgooey icon (Terasology/MetalRenegades#104)
    • fix: add mawgooey icon to atlas (Terasology/WildAnimals#66)
    • fix: Added CoreRendering to module.txt (Terasology/ParadIce#3)
    • fix: inverted faces of NarrowBlockShape (Terasology/CoreAssets#10)
    • fix: model sizes and offsets (Terasology/WildAnimals#65)
    • fix: texture region resolution error (Terasology/SimpleFarming#102)
    • fix(lwjgl): replace deprecated `getKeyCharacter (Terasology/KComputers#7)
    • fix: Avoid placing liquids at the same time as filling tanks (Terasology/Machines#35)
    • fix: key bind for ProgramEditingConsoleGui and PlayerCommandConsoleGui (Terasology/ModularComputers#7)
    • fix: checkstyle errors (Terasology/KComputers#4)

    👩‍🏫 JOML

    • feat(JOML): migrate card system (Terasology/LightAndShadow#170)
    • feat(joml): migrate `AnimalSpawnSystem (Terasology/MetalRenegades#106)
    • feat(JOML): migrate direction (Terasology/ItemPipes#24)
    • feat(JOML): migrate worldProvider setBlock (Terasology/Durability#8)
    • feat(joml): `RiverRasterizer (Terasology/PolyWorld#27)
    • feat(joml): `VisualEffectorSystem (Terasology/GooeyDefence#42)
    • feat(joml): migrate `Explosives (Terasology/Explosives#3)
    • feat(JOML): minor tweak from simplefarming (Terasology/MetalRenegades#100)
    • feat(JOML): tweak for simple farming (Terasology/AdditionalRails#43)
    • feat(JOML): quick migration for pathfinding (Terasology/Behaviors#47)
    • feat(JOML): migrate SimpleFarming (Terasology/SimpleFarming#101)
    • feat(JOML): migrate and clean up (Terasology/Pathfinding#47)
    • feat(JOML): migrate and clone up code and update copyright (Terasology/WildAnimals#63)
    • feat(JOML): migrate `GooKeeper (Terasology/GooKeeper#25)
    • feat(joml): general cleanup and migration with support methods (Terasology/Potions#64)
    • feat(JOML): migrate and clean up code (Terasology/Rails#61)
    • feat(JOML): migrate CharacterMovmentComponent (Terasology/Rails#60)
    • feat(JOML): migrate physic event (Terasology/Inventory#28)
    • feat(joml): migrate `KallistiDisplayComponent (Terasology/KComputers#1)
    • feat(joml): changes from bullet physics conversion (Terasology/AdvancedRails#5)
    • feat(joml): changes from bullet physics conversion (Terasology/Alchemy#9)
    • feat(joml): changes from bullet physics conversion - JOML (Terasology/Rails#51)
    • feat(joml): migrate block family (Terasology/Rails#57)
    • feat(joml): migrate block family (Terasology/Fences#12)
    • feat(joml): migrate block family (Terasology/Machines#33)
    • feat(joml): migrate block family (Terasology/ItemPipes#19)
    • feat(joml): migrate block family (Terasology/GrowingFlora#16)
    • feat(joml): migrate block family (Terasology/AdditionalRails#39)
    • feat(joml): migrate block family (Terasology/Sample#116)
    • feat: migrate JOML physics (Terasology/IRLCorp#26)
    • feat: migrate JOML physics (Terasology/CombatSystem#54)
    • feat: migrate JOML physics (Terasology/ItemPipes#22)
    • feat: migrate JOML physics (Terasology/Projectile#10)
    • feat: migrate JOML physics (Terasology/Rails#58)
    • feat: migrate JOML physics (Terasology/SegmentedPaths#13)
    • feat: migrate JOML physics (Terasology/Sensors#7)
    • feat: migrate JOML physics (Terasology/AdditionalItemPipes#18)
    • feat: migrate JOML physics (Terasology/AdditionalRails#41)
    • feat: migrate JOML physics (Terasology/AdvancedRails#8)
    • feat: migrate JOML physics (Terasology/AdventureAssets#29)
    • feat: migrate JOML physics (Terasology/Equipment#128)
    • feat: migrate JOML physics (Terasology/GooKeeper#22)
    • feat: migrate JOML physics (Terasology/LightAndShadow#157)
    • feat(JOML): migrate ore facet (Terasology/CustomOreGen#7)
    • feat(JOML): migrate ore facet (Terasology/OreGeneration#9)
    • feat: migrate JOML physics (Terasology/MetalRenegades#99)
    • feat(JOML): migrate action event (Terasology/GooKeeper#24)
    • feat(JOML): migrate action event (Terasology/Furnishings#3)
    • feat(JOML): migrate action event (Terasology/Fluid#24)
    • feat(JOML): migrate action event (Terasology/Explosives#2)
    • feat(JOML): migrate action event (Terasology/CombatSystem#57)
    • feat(JOML): migrate action event (Terasology/AnotherWorldPlants#7)
    • feat(JOML): migrate action event (Terasology/WorkstationCrafting#16)
    • feat(JOML): migrate action event (Terasology/WoodAndStone#62)
    • feat(JOML): migrate action event (Terasology/StructureTemplates#44)
    • feat(JOML): migrate action event (Terasology/SimpleFarming#100)
    • feat(JOML): migrate action event (Terasology/Signalling#22)
    • feat(JOML): migrate action event (Terasology/Projectile#12)
    • feat(JOML): migrate action event (Terasology/MasterOfOreon#78)
    • feat(JOML): migrate action event (Terasology/Machines#40)
    • feat(JOML): migrate action event (Terasology/Lost#16)
    • feat(JOML): migrate action event (Terasology/LightAndShadow#165)
    • feat(joml): migrate target system (Terasology/WorldlyTooltip#13)

    🧰 Maintenance

    • chore: reduce LogAction log level to `debug(Terasology/Behaviors#49)
    • chore: remove deprecated md5 assets (Terasology/Sample#119)
    • chore(omega): remove `WildAnimalsMadness (Terasology/Index#8)
    • chore: refactor Region to `GraphRegion (Terasology/PolyWorld#26)
    • refactor: adjust to renaming of PolyWorld's graph.Region >>> GraphRegion (Terasology/Lost#22)
    • perf: add relevance check to avoid creating additional entity (Terasology/ModuleTestingEnvironment#27)
    • chore: formatting (Terasology/AdditionalRails#36)
    • chore: TeraMath / JOML conversion (Terasology/Inventory#26)
    • chore: remove skeleton from CombatSystem (Terasology/CombatSystem#56)
    • chore: update direction of fool (Terasology/LightAndShadow#163)
    • chore: remove JOMLUtil from block tint (Terasology/CoreRendering#23)
    • chore: remove use of ImmutableBlockLocation in favor of Vector3i (Terasology/ClimateConditions#33)

    📚 Documentation

    • doc: Created README.md (Terasology/Lost#23)
    Source code(tar.gz)
    Source code(zip)
    TerasologyOmega.zip(156.88 MB)
Owner
Moving Blocks!
The MovingBlocks org on GitHub is the home of the Terasology engine repo, other frameworks, DestSol, etc. See https://github.com/Terasology for module repos
Moving Blocks!
Squaremap is a minimalistic and lightweight world map viewer for Minecraft servers, using the vanilla map rendering style

squaremap squaremap (formerly known as Pl3xMap) is a minimalistic and lightweight live world map viewer for Minecraft servers. What is squaremap If, l

Jason 204 Jan 3, 2023
Evocation Sunburst is a pixel-art Java RPG about a raccon named Racc discovering a hidden world in a sewer system, while also becoming a wizard in the process.

Evocation Sunburst Evocation Sunburst is a pixel-art Java RPG about a raccon named Racc discovering a hidden world in a sewer system, while also becom

Yaqub 3 May 10, 2022
An adventure of glory in the world of Minecraft - Revival of Tale of Kingdoms mod

Tale of Kingdoms The adventure RPG mod Explore the docs » Report Bug . Request Feature Table Of Contents About the Project Getting Started Prerequisit

Sam 6 Sep 29, 2022
A fast, customizable and compatible open source server for Minecraft: Java Edition

Glowstone A fast, customizable and compatible open source server for Minecraft: Java Edition. Introduction Glowstone is a lightweight, from scratch, o

Glowstone Project 1.7k Dec 31, 2022
https://www.spigotmc.org/resources/deluxeasyncjoinleavemessage-fully-optimized-async-everything-open-source.88129/

https://www.spigotmc.org/resources/deluxeasyncjoinleavemessage-fully-optimized-async-everything-open-source.88129/ Events: PrePreAsyncJoinPlayerEvent

null 26 Jan 4, 2023
Open-source forge mod which provides custom cosmetics for players.

OpenCosmetics Open-source forge mod which provides custom cosmetics for players. Building gradlew setupDecompWorkspace gradlew idea Testing gradlew ru

null 3 May 16, 2021
LITIENGINE is a free and open source Java 2D Game Engine

LITIENGINE is a free and open source Java 2D Game Engine. It provides a comprehensive Java library and a dedicated map editor to create tile-based 2D games.

Gurkenlabs 572 Jan 7, 2023
Open source Minecraft client with Replay Mod and more.

Sol Client Simple and easy to use Minecraft client for 1.8.9 (and in future™, newer versions). Update: Yes, I know, it has been seven months since I w

Sol Client 166 Jan 5, 2023
Free, open-source, Minecraft 1.12.2 PvP client aimed at the anarchy community.

Cosmos is a free, open-source, Minecraft 1.12.2 Forge PvP Client aimed at the anarchy community. The client is still in the development phase. Usage:

null 153 Jan 1, 2023
The Lezard Client is a new, open-source, minecraft client for the newer versions of the game.

The Lezard Client is a new, open-source, minecraft client for the newer versions of the game. It is oriented not for PvP, but for the Vanilla and the Survival experience. It is not a hack client for Minecraft and do not ask for it. 1 I hate hacked client and 2 it is not fun for other people. Also, I misspelled the word lizard in English and decided to leave it like that.

Michel-Ange 4 Jul 5, 2022
Flexible, open & solid Quest Plugin [with GUI]

NotQuests NotQuests is a flexible, Minecraft 1.17.1 Quest plugin, featuring a complete GUI for player interactions, open & trusted source code and fle

Alessio Gravili 39 Dec 29, 2022
Tribal Trouble GNU 2 Tribal Trouble - Tribal Trouble is a realtime strategy game released by Oddlabs in 2004. In 2014 the source was released under GPL2 license. License: GNU 2, .

Tribal Trouble Tribal Trouble is a realtime strategy game released by Oddlabs in 2004. In 2014 the source was released under GPL2 license, and can be

Sune Hagen Nielsen 147 Dec 8, 2022
PostgreSQL is the world's most advanced open source database. Also, PostgreSQL is suitable for Event Sourcing. This repository provides a sample of event sourced system that uses PostgreSQL as event store.

Event Sourcing with PostgreSQL Introduction Example Domain Event Sourcing and CQRS 101 State-Oriented Persistence Event Sourcing CQRS Advantages of CQ

Evgeniy Khyst 146 Dec 20, 2022
🕊️ The world's most advanced open source instant messaging engine for 100K~10M concurrent users https://turms-im.github.io/docs

简体中文 What is Turms Turms is the most advanced open-source instant messaging engine for 100K~10M concurrent users in the world. Please refer to Turms D

null 1.2k Dec 27, 2022
Ethylene is a open-source, lightweight, general-purpose compatibility layer standing between the developer and the chaotic world of configuration file formats.

Ethylene Ethylene is a open-source, lightweight, general-purpose compatibility layer standing between the developer and the chaotic world of configura

Steank 7 Aug 9, 2022
Sourcetrail - free and open-source interactive source explorer

Sourcetrail Sourcetrail is a free and open-source cross-platform source explorer that helps you get productive on unfamiliar source code. Windows: Lin

Coati Software 13.2k Jan 5, 2023
Source code of APK-Explorer-Editor (AEE), an open-source tool to explore the contents of an installed APK!

APK Explorer & Editor (AEE) APK Explorer & Editor, an open-source tool to explore the contents of an installed APK, is strictly made with an aim to in

APK Explorer & Editor 271 Jan 8, 2023
Chaos engineering tool for simulating real-world distributed system failures

Proxy for simulating real-world distributed system failures to improve resilience in your applications. Introduction Muxy is a proxy that mucks with y

Matt Fellows 811 Dec 25, 2022
该仓库中主要是 Spring Boot 的入门学习教程以及一些常用的 Spring Boot 实战项目教程,包括 Spring Boot 使用的各种示例代码,同时也包括一些实战项目的项目源码和效果展示,实战项目包括基本的 web 开发以及目前大家普遍使用的线上博客项目/企业大型商城系统/前后端分离实践项目等,摆脱各种 hello world 入门案例的束缚,真正的掌握 Spring Boot 开发。

Spring Boot Projects 该仓库中主要是 Spring Boot 的入门学习教程以及一些常用的 Spring Boot 实战项目教程,包括 Spring Boot 使用的各种示例代码,同时也包括一些实战项目的项目源码和效果展示,实战项目包括基本的 web 开发以及目前大家普遍使用的前

十三 4.5k Dec 30, 2022
State-of-the-art cryptography to protect your world seed against seed cracking tools

SecureSeed State-of-the-art cryptography to protect your world seed against seed cracking tools. This mod is written for the Fabric Mod Loader. If you

Joseph Burton 55 Dec 28, 2022