This commit ports the base system of LINDA from TG. This version of linda
is the original version, with none of -tg-'s fixes, rewrites, or other
such improvements attached.
The mob ignite system has been 100% removed, as LINDA does not support
this normally. It may be added back in when the improvements and refactors
to LINDA have been ported.
Stuff goes under types.
Types have procs.
Never have 500 lines of repeated code again.
I came very close to crying while editing this. You should appreciate
that.
----
This commit entirely reworks how placing things on walls work- Posters
have intentionally been left alone to reduce the amount of lines
changed. With this commit, wall-mounted objects are no longer snowflaked
into the wall file.
This commit adds a Procedural map generating system for code and admins to
use ingame. The system is modular, which means that it is fairly easy to
make new generating systems. Currently, only the 'nature' unsimulated
system is implemented, as a testing verb for admins to use. Admins can
define the starting XYZ and ending XYZ of the generated system.
Players - This means you may see content that is truely random, in the
future.
Coders - This system allows you to randomize map elements. Writing new
modules is documented at
code/modules/procedural-mapping/mapGeneratorReadme.dm
Detailed information about how the system works, and how it can be
integrated is also avalible there.
Admins - This system will allow you to, at the touch of a button, create
very complex structures and turfs that would otherwise require being
spawned in manually, one by one. The nature button is a fairly good
example of this, with it's randomized grass textures, randomly placed
trees, and randomly placed rocks. This would normally take a good 5
minutes to do, spawning the trees and rocks and turfs, but it takes about
20 seconds to enter the coordinates and have it be completely random.
Allows pipes to be slid along the floor, not only does this make laying
pipes easier, but you can now lay pipes under machinery without having
to remove them.
Pipes will be visible above the wall, allows for easier atmos repairs.
Atmos pipes installed this way can be unwrenched as normal. Walls are
unaffected.
*Reorganised and commented used procs for better visibility/maintenance
*Redid the PriorityQueue class
*Changed the euclidian distance to the byond one (so that we don't calculate float and square root when it's not necessary)
*Made the AStar algorithm use the closed list instead of just filling it
*Some optimization in the open list sorting : last entered is first in case of f ties, slightly less tiles are checked now
*Changes the order directions are checked when adding adjacents turfs to make for more 'realistic' path (read less 'drunk pathing' with lots of diagonals)
*Fixed some turfs densities not being check for diagonal movement
*Closed firedoors are now correctly seens as blocked by the algorithm
*Cleanbots now only moves in cardinal directions, like other bots.
*Updated the info text at the beginning of the file a bit
*Absolutely unrelated : simplified the turf.Bless() proc
Conflicts:
code/__HELPERS/unsorted.dm
code/defines/procs/AStar.dm
code/game/machinery/bots/bots.dm
code/game/machinery/bots/cleanbot.dm
code/game/machinery/doors/firedoor.dm
code/game/machinery/doors/windowdoor.dm
code/game/turfs/turf.dm
Fires can now burn through walls, windows, and (with a high enough
temperature) rwalls.
New proc: adjacent_fire_act(). Called on turfs that a fire isn't able
to spread to. (walls, floor surrounded by windows, etc.)
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Conflicts:
code/game/objects/structures/window.dm
New proc for walls: take_damage().
Damage is tracked in the "damage" var, walls will break if "damage"
hits "damage_cap".
Damage can be repaired with a weldingtool.
Damage overlays are cached in the global wall var "damage_overlays"
to reduce overhead.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Conflicts:
code/game/turfs/simulated/walls.dm
icons/turf/walls.dmi
Viruses are properly transferred to spilled blood now.
Antigens prevent from infection properly.
Lowered frequency of blood puddle virus check to cut down on processing.
Conflicts:
code/game/turfs/simulated.dm
code/modules/mob/living/carbon/human/life.dm
code/modules/organs/blood.dm
code/modules/reagents/Chemistry-Reagents.dm
Added sprites for stationary drilling gear.
Added skeleton ores for coal, adamantine, mythril. Updated some icons. Expanded mining rig functionality.
Changed adamantine and mythril to osmium and metallic hydrogen.
Added ore distribution map generation to master controller.
Added upgrading to stationary drills, tweaked other stuff.
Rewriting the ore processor and how ores handle information. Also rewrote the ore stacker.
Conflicts:
baystation12.dme
code/controllers/master_controller.dm
code/modules/mining/coins.dm
code/modules/mining/machine_processing.dm
code/modules/mining/machine_stacking.dm
code/modules/mining/minerals.dm
code/modules/mining/satchel_ore_boxdm.dm