* Change all mentions of Freenode to Libera.Chat
With the sale and subsequent takeover of freenode, the development team no longer uses that IRC network for collaboration. Update links to point to libera.chat instead.
The cargo to have its stock and price changed was saved as a EqupType object,
which is not a "deep save", but will have a new memory hash every new game,
thus price and stock for a commodity that was subject to high/low demand, was
unchanged.
This should be backwards compatible with older saves.
- reduce the flow to the most popular station in system by 40%.
- reduce the maximum station load by 25%
- reduce the maximum ships limit by 40%
This is to improve the performance. although these parameters are
independent, it is better to change them synchronously. For example, if
you just reduce the allowable number of ships, in all systems this
number can become the same. If the load on the station is not reduced,
the ships will stay there for too long.
- Move the drawing of the system map pigui to a separate handler to
ensure that it will always be drawn strictly after the SystemView object
- Fix the setting of the m_colliding parameter of the ship during
deserialization
- Preparations:
Add method Ship:GetCargo
Add method Ship:GetDurationForDistance
Add method Ship:Create
Add method ui.treeNode & ui.treePop
Add method LuaObject::CreateInLua
Add functions for convenient selection of a random array element
Add some numerical utilites
Add a tool to easily draw a table from an array
Fix ui.Format.Number
Turn off the output when the ship changes frames
Reduce the detection range of hyperspace clouds
Remove the call LuaEvent::Emit immediately after exiting hyperspace
Split Tradeships.lua into 5 modules
- Tradeships
For current system, calculate all possible routes of tradeships,
durations, flows; arrange ships in space in such equilibrium state,
as if the have been flying about their business for a long time.
Calculate the average spawn interval for new ships, and parking
intervals, so that the stations are not overcrowded or empty.
Сreate a tab in the debug window with full information on
routes, ships, stations, remote systems.
Function description:
The ship rearranged from its current position to a given body in space, for a
given part of the path, as if it were flying in a straight line, consuming
fuel and changing speed. The ship's current speed is ignored and is
considered to be equal to target's.
This function changes the coordinates, the mass of fuel in the tank, and the
speed of the given ship.
This function will be used so that when the game starts, or the player
jump into the system, the NPC ships looked as if they had been moving on
their routes for a long time.
A one-dimensional case is considered, given the parameters of the ship
and the length of the path, a flight plan is calculated, which allows
determining the time, speed, and mass of the ship at any point on the
way.
Also added a simple simulator for testing purposes.
- Flatten the Scenegraph LoadNodes tree to avoid unneeded callgraph depth
- Remove several useless (and counterproductive) profiling points in tiny Lua bindings
- Add wall-clock time to profiler reports
- Fix bug in debug-compilation of Frame.cpp
Animation::Interpolate was getting called for all ships, and was
responsible for 1/3rd of the frame with 2500 ships.
Also stop profiling Frame::GetFrame, as the function is an order of
magnitude faster than the profiling overhead.
Add better profiling to identify frame slowdowns we have lots of ships (2000+)
Cache equipment capabilities between ship equipment updates
Improve Ship::StaticUpdate from 70mc to 40mc with 2500 ships
Only tick animations that are marked active.
More work needs to be done in Ship.cpp to support this,
but it should enable us to have far more ships in one system.