Changelog DynamX 4.1.0 :
The modifications followed by a (*) were made by our contributors, MK, frh, Ertinox45, JarException and gameusefly. Thanks for your contributions ;)
General features:
- Added .gltf model support. The support of animations will come in a future update.
- Add engine and sound support on boats.
- Add seats support on blocks and props.
- Add storage support on blocks and props.
- Add reverse, handbrake and door sounds options.
- Add parts inheritance system: lights and license plates can be placed on moving parts like doors.
- Add automatic part positioning from 3D model.
- Transparency is now supported for blocks, items and armors.
- Add
BreakHardness
, ExplosionResistance
, SoundType
, HarvestTool
and HarvestLevel
properties on blocks.
- Fix broken
UseUdp
config option.
- Fix some issues with BungeeCoord servers.
Physics:
A lot of fixes and performance improvements.
Fixes:
- Fix entities respawn position when loading a world. There should no longer be props in the ground, or vehicles with broken suspensions.
- Fixed the terrain generation performance: useless debug functions were eating a lot of cpu time
- Fixed lag spikes when spawning vehicles with doors (because of the same debug functions)
- Optimize and fix joint spawning and synchronization. Debug triangles generation was taking way too much time, and not actually needed. Fixed desync problems when coming from far away or connecting to the server. Reduced joint spawn cooldown when spawning vehicles: it's now instantaneous.
- Use static render for closed doors. The doors will now stay attached to your car when you're driving.
- Fixed collisions and walking player position on vehicles (you're not able to fly above vehicles anymore)
- Fix part float drag force formula
- Fix engine started sound not played for other players
- Optimize player collision with large blocks by a lot
- Inversed boat steer direction when reversing to be more realistic
Packs:
Some fixes and new useful config options. We also added the .gltf model support to DynamX. Animations aren't yet implemented, but it's coming ;)
New features:
- Add engine and sound support on boats (working like car engines with the same config options (except engine braking and steering properties))
- Add rotating propeller blade on boats (same as the "Rotor" config of helicopters)
- Add seats support on blocks and props
- Add storage support on blocks and props
- Add reverse, handbrake and door sounds options (
ReversingSound
, HandbrakeSoundOn
and HandbrakeSoundOff
in vehicles (wheeled ones only, not boats or helicopters), AttachSound
in trailer config, DoorOpenSound
, DoorCloseSound
in door config)
- Add InWater damping properties on vehicles and props (
InWaterLinearDamping
and InWaterAngularDamping
properties)
- Add
RenderDistanceSquared
property on vehicles
- Added .gltf model support
- Add parts inheritance system: lights and license plates can be placed on moving parts like doors. This system can be used by addons (see the API changes section).
- Add
DependsOnNode
property on lights: the value should be the name of the part this light is attached to (for example, DependsOnNode: Door_trunkdoor
). We advise addon makers to use the same property name in their parts.
- Add automatic part positioning from 3D model
- Part positions can now be extracted from the 3D models
- Wheels can now be in the same 3D model as the vehicle itself (added "Rim" and "Tire" (or "Tyre") config properties in PartWheel)
- The automatic part positioning reads the position of the object (wheel, steering wheel...) in the 3D model so you don't have to manually write it in the config file. And you don't need to place the object manually in 0 0 0 when exporting the model! -> Fully supported for GLTF models. -> Partially supported for obj models (mudguards and doors not supported).
- Added the speed limiter icon from the BasicsAddon, and remove the "Speed limit: xx" text from the vehicle hud.
- Added
EngineStartupTime
property to helicopters: this is the time to (automatically) reach 100% when starting a helicopter.
- Transparency is now supported for blocks, items and armors.
Changes:
- Renamed
PartName
property into ObjectName
everywhere (the old name is still supported, but prefer using the new one to avoid errors)
- Added
EngineBraking
alias to the Braking
property in engines
- Removed deprecated prop_ file format support
- Allow to have more than 16 variants on props that haven't any block variants in creative tabs
- Fix entity shape boxes update on pack reload
- Improve render distance behavior: When "RenderDistanceSquared" is "-1" for any DynamX object, the default render distance of Minecraft is applied. This is now the default value for vehicles.
- Add error message when a seat is linked to a non-existent door
- Wheel count is no longer limited to 10
- Fix block json model support
Api changes:
There was a lot of refactoring, including code consistency improvements, javadoc improvements and an update of the ACsGuis dependency to 1.2.12.
New features:
- Add builtin props support (props added in addons)
- Add
canInteract
method on InteractivePart
- Add
ITerrainUpdateBehavior
interface. This allows to ignore certain world changes and optimize the terrain generation performance. Also added more information on chunk updates in ChunkGraph.
- Add
PhysicsEvent.PhysicsCollision.Pre
event (fired at each bullet collision event, which can happen several times, for each collision points). The original PhysicsEvent.PhysicsCollision
stays fired once at each collision between two objects.
- Add client only RegiseredSubInfoTypes
Structure changes:
- Rename
IInfoOwner
into IDynamXItem
- Modified events in
VehicleEntityEvent
: interact and mount/dismount events now handle props
- Split PartSeat in BasePartSeat, PartBlockSeat and PartEntitySeat
- Split BLOCK_AND_PROPS sub info type registries into BLOCKS and PROPS
- BoatPropellerModule, SeatsModule and WheelsModule are now added by their respective part, like any other module (they were hardcoded in entity classes)
- Renamed all obj related classes (generally using
DxModel
instead of ObjModel
in class names)
- Moved
Engine
modules into fr.dynamx.common.entities.modules.engines
package
- Rename
ICollidableObject
into DynamXObject
- Rename
sortModules()
in getListernerModules()
in ModularPhysicsEntity
- Renamed
PhysicsEntityEvent.Phase
into EventPhase
Rewrote the parts rendering code:
This new render system, based on a SceneNode graph allows to attach parts to others (for example, have lights on an openable trunk). This render system applies to entities (vehicles, props), blocks, items and armors. This render system uses JOML transform matrixes instead of the classic GL11 transformation methods, improving the performance and preparing the support of BetterLights.
/!\ This will break all addons that are rendering parts.
Changes:
- Replaced the drawParts method of IDrawable parts by a graph nodes system (the parts a nodes of the entity rendering graph (you can see it as a tree where the root is the entity and the leafs, the parts)). Check the DynamX or the BasicsAddon code to see how it works.
- Rework events for the new render system: removed
PhysicsEntityEvent.Render, VehicleEntityEvent.Render, DynamXArmorEvent, DynamXItemEvent
and EventStage
.
- Updated
DynamXBlockEvent.RenderTileEntity
and DynamXModelRenderEvent
.
- Add
DynamXRenderItemEvent
, DynamXEntityRenderEvent
and DynamXArmorRenderEvent
events.
- Added
CreatePartSceneEvent
, BuildSceneGraphEvent.BuildEntityScene
, BuildSceneGraphEvent.BuildBlockScene
, BuildSceneGraphEvent.BuildArmorScene
and BuildSceneGraphEvent.BuildItemScene
events.
- Moved the debug rendered to the new SceneNode render system. Deprecated
DebugRenderer
interface and PhysicsEntityEvent.InitRenderer
event.
- Added
DynamXBlockEvent.BuildSceneGraph
event.
- Deprecated
DynamXRenderUtils.renderCar
.
Add ItemTransforms and View sub info types
They allow to customize the item transforms depending on the view (left/right first/third person, gui, ground, ...), like in json model format.
Example:
ItemTransforms{
View_TPLH{
Translate: 0.05 0 0
Rotate: 0 0 70
Scale: 1 1 1
}
View_TPRH{
Translate: 0.05 0 0
Rotate: 0 0 70
}
View_FPLH{
Translate: 0 0.2 0.2
Rotate: -15 0 95
}
View_FPRH{
Translate: 0 0.2 0.2
Rotate: -15 0 80
}
View_Gui{
Translate: -0.1 0.15 0
Rotate: -40 0 0
}
}
This is supported by vehicles, blocks, items and armors. The old ItemTranslate, ItemRotate and ItemScale will still be supported, but can't be mixed with the new system in the same property file.
Other fixes:
- Fix terrain error spam with DynamX tile entities
- Fix suspensions length rendering when the rest length is dynamic
- Updated MPS to 1.5.0 for better security and fixed the auxiliary url. This update fixes potential issues with other mods using custom ssl certificates.
- Fix jme3 being used before being loaded with some addons (and leading to crashes)
- Fix a duplication bug with storages
- Fix a crash with ragdolls and another with the camera
- Fix controls not always being reset when dismounting from a vehicle
- Fix network being loaded before dynamx config (fixes the "UseUdp" config option that wasn't working)
- Optimizations of the client (moved some debug calculus to the right places)
- Fix player duplication with the wrench
- Fix scaling with doors
- Fix crashes related to the debug code of ClientDebugSystem (*)
- Reduce debug amount (*)
- Fix blocks collision scale
- Fix a crash with
TEDynamXBlock
- Fix some deprecation/error messages
- Fix some issues with BungeeCoord servers
- Prevent mass prop spawning in creative
- Fix lights support on blocks (fix texture variants and lightmap)
- Fix lib bullet download (was broken due to new github ssl certificates)
- Fix player look vector when in vehicles. This can solve problems with other mods using the player look.
- Fixed built-in (from addons) prop loading
- Fix
PartDoor
always loading the 3D model even if not needed, leading into model loading errors
- Added gui error messages when failing to download lib bullet jme (instead of crashing the game), and when failing to connect to mps so the users can know what's happening.
Mod compatibility:
The MalisisDoors version compatible with DynamX has been updated, download it on the DynamX discord server.
Known problems:
All issues are listed here: Issues · DynamXInc/DynamX · GitHub.
There is a list of mods incompatible with DynamX on our discord: Incompatible mods.
Thanks for your support to DynamX.