13,114 Commits over 2,800 Days - 0.20cph!
Semi-fixed the locomotive headlight spotlight behaviour
Fixed locomotive fuel storage being hard to access (sometimes showing interaction without the interaction working)
Added a note to the comment re not using ClientInit() for the particle setup.
I have attained the truly correct way to handle particle systems and implemented it here.
Here is a handy guide to the following difficult situation, which I've also pasted into a new block comment in ParticleSystemContainer:
- You have a Particle System that you want to be on sometimes,
and off at other times. e.g. Smoke from an engine that emits while the engine is running.
- You want the Particle System to be culled (ParticleSystemCull) or LOD'd (ParticleSystemLOD)
at a certain distance.
Here is the setup you need:
- Use a ParticleSystemContainer and control your particle systems from there, not directly.
- Set your ParticleSystemCull/ParticleSystemLOD scripts to Play On Show TRUE.
- In your parent entity, immediately call Stop() or Play() on the ParticleSystemContainer in ClientOnEnable(),
as desired for the particle's current state. This gets everything into the right initial state.
From there, things should work correctly.
Use a prefab variant for the fuel wagon, so that it can have unique open/close sounds
New particle FX now behave correctly.
- Added stopOnEnable option to ParticleSystemContainer and set it to true on all the new FX
- Re-enabled all the ParticleSystemCull/ParticleSystemLOD scripts
- Removed my additional Stop() commands in init
Removed engine front left/front right ladder objects
Fixed locomotive engine smoke not playing
Merge Main -> Trainyard Update
Disabled all particle system LOD scripts on the new FX for now. Need to work out a way to make this play nicely with Play/Stop before we re-enable them.
Fixed the unloading indicator on train engine monitors not showing if the index was zero
Always animate the locomotive fans. All the exceptions (spectate, debugcam, demo etc) were getting more complex than just always animating
Fixed wrong pressure gauge readings when locomotive is off
Fixed locomotive fans and gauges not animating in demos
Reference the crates on the loot wagon via EntityRef
Drop loot from loot wagon unloadable crates if the wagon is destroyed, but only if the gravel has already been removed
Fixed loot wagon crate visibility bug
Cease unloading if the fuse is removed during the unloading process
Don't light the interior coaling tower lights if it's not powered (fuse)
Set up the same ParticleSystemContainer + PlayOnShow + Stop on init system for the unloadable train wagon FX an coaling tower FX. Fixes LODs not playing nicely with play/stop.
Fixed locomotive engine FX not behaving well with LOD
Null check around fxEngineOn
Disabled Play On Show on the locomotive exhaust as well
Disabled Play On Show on the FX
Set colour tints on the coaling tower FX
Hooked up coaling tower FX
Tint the wagon unloading FX dust differently based on the ore type
Trigger the wagon unload FX when unloading
Fixed locomotive small lights starting in on state with the locomotive off (prevLightVisualsOnState bug)
Show locomotive engine FX only when the engine is running
- Subtracted
72739 (rotation only, keep darkness)
- Added variation between each fan's speed in LocomotiveExtraVisuals
Merge Main -> Trainyard Update
Merge CoalingTowerIO => Trainyard Update. Protocol++
New security door type for the coaling tower, that doesn't show the user interaction
Mostly got the keycard door thing working correctly
Don't allow use of the coaling tower buttons if the fuse isn't in. More IO setup
Hooked up IO to the coaling tower buttons
Visual ore level set is needed on the server as well, for the collider
Fixed double-ups and other trouble with sub-entities on wagons and on the coaling tower
Fixed bugs with percentDrag in the friction calc
Adjusted the coaling tower unload friction
- Added a small new utility class, NetworkedProperty<T>. Handles the boilerplate code for a property (of any type) that's network synced to the client any time it changes.
- New PercenFullStoraageContainer class is a storage container that syncs how full it is to the client, any time its contents change. OreHopper now subclasses this.
- Moved LootTypeIndex back into the CoalingTower script, and changed some protobuf data.
WIP monument puzzle setup.
- Coaling Tower is now an IOEntity instead of a StorageContainer.
- Added StorageContainer entity for the ore hopper.
- New OreHopper StorageContainer subclass shows the visual ore level, and handles some other aspects that CoalingTower used to handle.
- Started setting up the keycard and fuse box.
- Protocol++
Improved the "friction" help for lining up wagons to unload.Now variable based on train velocity and distance to the perfect spot