Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Add Transparent or semi transparent Monitors #6

Open
G4PLS opened this issue Aug 17, 2023 · 5 comments · May be fixed by IntelligenceModding/AdvancedPeripherals#650
Assignees
Labels
Milestone

Comments

@G4PLS
Copy link

G4PLS commented Aug 17, 2023

Describe your idea

Glass like Monitors that can display the same content as the Monitors / Advanced Monitors in CC:T

Describe alternatives you've considered if you've any

I was not able to see or find any alternative solutions to this

Additional context

Like in the description said those monitors should be transparent or semi transparent. Having Glass or even Glass Pane like monitors could be a way to get more stunning looking builds. The overall functionality should be the same as the normal monitors in CC:T. They may or may not be also colored in different ways like normal glass would

Linked Issues

No response

@zyxkad
Copy link
Collaborator

zyxkad commented Aug 17, 2023

I would like you open this feature request on CC:T, but not on this project because the author said he won't work on monitors change

@SirEndii
Copy link
Member

Yeah, I will not work on new monitors
Maybe in the far future
But to be fair, adding/changing the model/texture of the monitors would be a far simpler thing than adding new features to them

@SirEndii SirEndii transferred this issue from IntelligenceModding/AdvancedPeripherals Nov 9, 2023
@aiden100a
Copy link

this would be cool if you could do the following:
term.setTranparency(50)

@zyxkad
Copy link
Collaborator

zyxkad commented Jul 22, 2024

Current planning API:

  • getTransparency: get current monitor panel background transparency
    monitor.getBackgroundTransparency() -> number
    
  • setTransparency: set current monitor panel background transparency
    monitor.setBackgroundTransparency(percent: number) -> nil
    
  • getTransparency: get current monitor panel text transparency
    monitor.getTextTransparency() -> number
    
  • setTransparency: set current monitor panel text transparency
    monitor.setTextTransparency(percent: number) -> nil
    
  • getSideColor: get the side's color in rgba in range [0, 255]. 'front' means the color of the monitor's front and the opposite of front (back) side
    monitor.getSideColor(side: 'front' | 'top' | 'left') -> { r: number, g: number, b: number, a: number }
    
  • setSideColor: set the side's color in rgba in range [0, 255]
    monitor.setSideColor(side: 'front' | 'top' | 'left', color: { r: number, g: number, b: number, a: number }) -> nil
    

Monitor should pass light based on both its transparency (for front / back light only) and side alpha channel

@zyxkad zyxkad self-assigned this Jul 22, 2024
@zyxkad zyxkad added this to the 0.8r milestone Jul 22, 2024
@zyxkad zyxkad linked a pull request Jul 26, 2024 that will close this issue
3 tasks
@zyxkad zyxkad linked a pull request Jul 26, 2024 that will close this issue
3 tasks
@zyxkad
Copy link
Collaborator

zyxkad commented Jul 26, 2024

Now I got three implementation, and I'm not sure which one will be better:

  1. Set the transparency of all text and all background (so the api is like above)
  2. Add an alpha channel to palette. This allows you control 16 transparencies, and no new api.
  3. Use the grey scale as the transparency. There will be no any changes at all, and probably is more realistic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants