mekanism / Mekanism-Feature-Requests

All enhancements and feature requests for Mekanism (for current and future releases) should go here.
11 stars 4 forks source link

Lasers: Additions and Expansions #148

Open DeltaEpsilon7787 opened 3 years ago

DeltaEpsilon7787 commented 3 years ago

Note

This issue combines several feature requests that would make lasers useful for something more than fusion ignition and very basic power transmission and throttling. Many of these feature requests rely on each other to be implemented in order to be utilized fully, thus they're all combined here. This issue quotes #13.

Short forms: LA - Laser Amplifier, TB - Tractor Beam, LE - Laser Emitter.

Additional implementations depend on minimal implementations, those are not two different ways to implement it, but one split into two stages.

Describe the feature you'd like

Beam direction control -- control where beams go without player's intervention

Beam splitting function for amplifiers. Basically being able to designate other faces of amplifiers as beam output so that you can divide an input beam out to multiple targets.

Movable lasers. Basically a way to put down some kind of framework, and have the laser (or lasers) travel along it, similar to a flying laser CNC cutter. This would, for instance, allow you to set up a framework pointed at a hilly area and flatten it out slowly as the laser traveled along it the path you laid out. Could also be used for mining in conjunction with a tractor beam to handle larger areas

Minimal implementation Make LA and TB movable by pistons, thus allowing them to be switched in place, effectively allowing to change beam's direction without player's intervention.

Additional implementation Allow player to configure [using the configurator tool] the sides of LA and TB and select where beams should be emitted. The beam is divided and reemitted from the selected output.

Laser breaking time dissipation

Laser-proof glass. A type of glass that allows lasers to pass through them rather than breaking when hit with a beam.

Transparent blocks (in gameplay sense) shouldn't impede laser's movement in general.

Minimal implementation Add a minimum amount of power that should be transmitted to the block to be eligible for breaking. Transparent blocks pass lasers through, but may break if the power transmitted is too high.

Additional implementation Make the minimum power depend on the energy needed to break the block, so glass will only tolerate a few watts of power whereas obsidian can tolerate quite a bit.

Laser as a 3D redstone on 2D plane

Note I'm aware that laser amplifiers can redstone output their energy contents, however they're very bulky and all of this power should go somewhere.

Minimal implementation Allow LE to provide redstone power to blocks they hit and power redstone dust instead of breaking it. Allow LE to be enabled and disabled by redstone.

Additional implementation Add a laser detector block that passes lasers through it and emits a redstone signal if a laser is passing through it. Analog redstone output, dependent on laser power.

These improvements allow redstone circuits to use lasers as an instant straight wire [Powder Toy style] and allows more complex flat circuits due to the fact that lasers may intersect each other.

Laser as a Mekanism's block breaking tool

Upgradeable lasers or some way to enhance the beam to be more powerful (not necessarily to travel further). An idea would be something along the lines of a quad-power laser that's crafted with 4 lasers and 4 amplifiers around a steel casing, or something of the sort. Mostly this is so that you can get a little more space efficiency with lasers, especially if you're using them for power transfer or reactor igniting.

Item pickup ability for tractor beams. Currently they import only blocks as they're broken. Allowing them to pick up any fallen item that is in a block the beam passes through would really widen their use as weapons of mob destruction.

Minimal implementation Allow energy upgrades to be inserted into LE, which boosts the energy output. The logic here assumes that lasers simply emit a percentage of their maximum energy storage, thus by increasing the energy storage, the laser power is also increased.

Allow TB to "suck" items from the block they're passing through instead of destroying them like a normal laser does.

Additional implementation Add a menu to LE to adjust their power output in the same way as laser amplifier does. Additionally, allow the player to select the range of the laser to aid in making lasers less destructive.

Additional concept It is very strange that you can send a 5 GJ pulse into dirt and only the block it hits gets destroyed. Pulses of higher power than the strength of the block should cause an explosion of some sort [whether TNT-like or directed] and break adjacent blocks until all power is exhausted. To collect drops, a TB array must be used however.

TB and LA are the same thing

TB should have the same menu as LA because it makes no sense that you can modify power output on one, but not the other.

Portable laser

Minimal implementation Meka-Tool module that allows the player to emit a laser from it and utilize all of the features of the stationary version such as destroying and picking up blocks in the way

Additional implementation A fully-fledged tool that does everything including features specified in this feature request, Mekanism's analogue of the IC2's laser.

Tractor beam as a subtype of a laser beam

Currently if you have a laser beam passing through a TB, only this laser beam is going to be collecting drops. If the laser beam goes into an amplifier, the beam emitted by the amplifier will no longer have drop collecting properties. This also makes it geometrically impossible to have a filled square of TB blocks and have them all connected to transporters while excited by LEs. [one side is taken by an LE, one side is taken by emitted beam and four sides are taken by other TBs]. It is still possible to do it by using an "arrow" shape, but within the context of this feature request this may prove quite annoying to do for complex setups.

Minimal implementation Once a laser beam goes through a TB, this laser beam will be collecting drops into this TB regardless of what it goes through.

Additional implementation N/A

szikra commented 3 years ago

My notes on the Laser - Glass interaction:

The Laser Focus Matrix is made of Reactor Glass, I assume it involves making lenses out of them to focus the laser beam. If my assumption is correct that would mean that high powered laser is traveling trough reactor glass lenes without damaging them (as it should). So at least Reactor Glass should be "Laser-proof". But if I place a reactor glass in the path of the laser beam (just a single one, not from an amplifier) it gets destroyed. Why?

I think laser should pass through (all) clear glass blocks without damaging them.

I know that there are lasers (like CO2 laser) that are outside of visible light spectrum and for those glass might not be transparent and because of this glass would block it, absorbs it, and it would break (melt) the glass (if the absorbed energy is higher than the energy the block can dissipate).

The emitter block is called Laser and not Lasers which to me implies a single laser with a single wavelength, frequency. In game this is a clearly visible red light, so glass should be transparent for it and not absorb the laser’s energy, and therefore not break the block.

In conclusion, all clear glass (including glass panes) should be "Laser-proof" glass... until infra red and/or UV lasers are added. Note: red stained glass (and pane) probably should also not break since it does not filter out red light (it might disperse it though). Other stained glass probably should break (they definitely should not change the color of the laser since there are no other frequencies that their color filters can block or pass through).