d3athrow/vgstation13 — pull request #2398 by dylanstrategie (2014-12-29 15:39:40+00:00)
Title: Engine Update : Solar Power Edition : This is why we don't get playerbase feedback : Electric Boogaloo II

With Lord Singuloth brought down a notch and supermatter still being whatever it wants to be, it's time to address another power source. The good old solars, that Engineers still do not wire ever

Note : Before you jump the shark, this is NOT the exact same PR, power output nerf was COMPLETELY removed. Period. Now, take some time to check the rest of the PR, which I actually spent time on (I could have just changed the power output number and call it a day, but I didn't)

- Reduced raw output in full sunlight from 1500 to 1250. This bring a standard array output down to 75000 W from 90000 W. This isn't devastating, but creates ACTUAL power problems if you solely rely on solars and expect to last the whole round (you can still wire to the grid and hope for the best, but unless you have something else nearby, even a PACMAN, you're not going to last two hours)
- Fully implemented glass types to solars. Rglass is now the default material (instead of old boring glass) and has a health of 15 (up from 10, 15 is now default). Glass has half power generation and 5 health (aka it's shit). Plasma glass and plasma reinforced glass are significantly better than their respective glass tiers (a bit on power generation, and a LOT of health). Tinted glass is planned once it's actually included in-game for good old smuck-bait
- All new glass types have sprites. Default sprite is rglass (and default material IS rglass)
- Power generation now depends on the material, but also on health (relative to maxhealth, which was added for that purpose but can allow repairs if ever implemented) since a badly shattered panel will hardly work
- Breaking the panel automatically drops its health to 1
- Fix solar panels dropping their sheet ALONG with shards when broken with brute force (aka meteors or forced deconstruction)
- Change solar assemblies to use obj/machinery/power tree instead of obj/item both for compatibility and general code quality
- Span, formatting, visible_message
- Increase solar control computer power draw a little bit and format the code a bit
- Changed contents of solar instruction papers, use correct title formatting
- Update tracker, supplypacks and the map to take change to the solar assemblies into account
- Sun now updates once every half minute, down from once every minute. Out of all the things that cause lag, I'm going to guess this is the absolute last one. This should make sun movement a little more fluid
- Reduce random deviation on station orbital period (15 % down from 25 %)
- Switch checking range for obstruction to sun point from 20 to 256 (aka maximum level size). In short, while 20 tiles can account for DIRECT obstructions (notably the sun being the direct opposite of where the solar is pointing), it fails to account for when the sun is obstructed by distant but very existent obstructions (notably, the Engineering Solar will casually produce power even if the sun is very clearly hidden by the entirety of Arrivals). The lag caused by this change should be absolutely minimal, since the for loop breaks IMMEDIATELY if it hits level boundaries or an opaque block (aka wall)

A good look at the new solar sprites (old sprite is now rglass sprite, solars start with rglass) : ![scrnshot1](https://cloud.githubusercontent.com/assets/6137403/5566461/09302210-8f29-11e4-9b04-cd076ba57ee9.png)

Comments go below