BuildCraft|Core

BuildCraft|Core

7M Downloads

On/Off state to machines

SpaceToad opened this issue ยท 28 comments

commented

Right now, machines can be turned on and off from actions on logic gates. But there's no information on the machine interface itself, which makes things counter-intuitive sometimes. For example, you can shut down a machine, then remove the logic gate that issued the action, the machine will still be off. It probably makes sense to have an on/off button/indication on the machines interface.

commented

Hello. I've noticed that the newest commnent is 2 months old on this enhancement, so I presume that no one is really working on this. I'd like to participate in the developement as a part of the semestral work in the school and I've been told that I have to choose a specific bug right now.

So if you'll be so kind to leave me this issue, I would be grateful.

commented

Hi @czaftan. Thanks for taking over this one! It's on my list indeed, but not active. I will hold working on it in the near future. When do you think you'll be able to submit a pull request?

commented

I actually put you to the external contributor list and assigned this to you. You'll still need to go through a pull request to submit, but at least its' clear that you're the one looking a it :-)

commented

Ok. I suggest to synchronize with the On/Off texture for the action. Feel free to upgrade those.

commented

Thank you. I think that I'll be able to handle this issue in one or two weeks ('cause of school and work - BC is just a semestral project for now)...it depends.
I like the way doing this through the textures, so firstly I need to create them which is relatively time consuming.

commented

That'd be worth extending to all machines with on/off stage I would say. Including engines.

commented

So far I made textures for almost every machine with on/off state (including assembly table).

But...there are machines like builder, filler, etc. Those machines does not have user controlled on/off state, only filler has on/off texture showing: "I'm still working on this"/"I'm done". The question is: Do you want textures showing these states for other BC Builders blocks too?

And another question. Engines doesn't have any ON texture too. Mostly it's obvious that they are working...they are moving and getting green (orange/red), but if there is no attached pipe or a machine and they are working, there is no animation, just some particle effects (sometimes unnoticeable) showing an overheating and the coloring of the prominent part (which is not reliable at the beginning). Sooo: Do you want individual textures for on/off states of engines? This texture can prevent from blowing engines up accidentally :-).

Thanks for reply.

commented

I believe that by interface you mean the GUI right?. Then maybe not only the interface but also the texture of the machine. What do you think?

commented

Yup, GUI. Texture of a machine is a possibility too, but more work. I'd keep this issue bounded at first.

commented

I think that the pump used to have a second texture for when it was off but it was never used.

commented

i can't find that seccond texture for the pump but if you guys want i could try to make an second texture for machines with a red cross to indecate they are off

commented

The Filler has a texture change for when it is and is not active.

commented

Hi. Sorry for being late with this issue. I had a lot of work and almost no free time...but finally I made it. I had some issues with rendering different texture, 'cause this is my second time I working with forge and there is no tutorial for the current version (everithing was obsolete, at least methods they advise to use). For some time I messed up with Renderers, but that wasn't the right way to do...and also I had some trouble with versions...uff...

Changes I've made:

  • On/Off state for AdvancedWorkingBenchTable, AssemblyTable, FloodGate, IntegrationTable, Quarry, Pump, MiningWell.
  • Textures for On/Off state for machines above, all types of engines and Laser (textures can be changed, it is just a simple draft)
  • Default states are OFF, when redstone power is applied, then the state turns ON
  • ON/OFF state is only ON/OFF state, not WORKING/IDLE state
  • ON/OFF state changes even if the machine is not supplied with energy

I've made some testing but I'm not sure it's 100% working. I've made some changes with isRedstonePowered and I'm not sure I understand it correctly, but I hope so.

I will be grateful if you accept changes today, 'cause I can get some extra points in school for this.

commented

Default states are OFF, when redstone power is applied, then the state turns ON

Please no... having every machine require redstone to function is not a good idea.
Btw I though that this issue was about having on/off states in the gates...

commented

The reverse is also confusing. Players are giving redstone engines a redstone signal to turn them on and accidentally turn the pump Off. Engines and machines should react in the same way (If they react to redstsone signals at all.)

I think the old way is best, that machines are redstone ignorant.

The change should as psxlover points out be about turning the machines On or Off with Gate Actions. The Filler already have this. ON, OFF, LOOP.

commented

Ok...I'll try to change it that way...thx.

commented

Btw: This issue isn't just about gates...there is no specification that machines should react ONLY to gate signal (either redstone or pipewire).

Should they react only to pipewire? Or redstone? Or both?

commented

Should they react only to pipewire? Or redstone? Or both?

Neither. Gates next to them should have actions to turn them on/off. Check the builder (I think).

commented

Ah ok...I got it.

commented

Questing for @SpaceToad ....can I pull request just the textures I've got? I'll make the gate interaction later. I just need prove that I did some work on this that is uploaded. Thx.

commented

@czaftan the fact that this merge is needed for school related assignment can't be used as an argument unfortunately. As the initial ticket stated, this change was primarily for user interfaces, and optionally for textures. All textures are in process of being reworked by @CyanideX so it doesn't make sense to check anything in this area at this stage.

So if you want to merge a first PR, that will be only for the UI feedback, not textures.

I agree with @SandGrainOne and @psxlover BTW - the whole redstone signal thing is confusing and it's best to make machines redstone ignorant. To me, it even makes sense to break an invariant with engines, and states that engine needs to be operated by gate. The default behavior can then be decided machine by machine, but probably having On by default will be the most straightforward thing.

commented

To me, it even makes sense to break an invariant with engines, and states that engine needs to be operated by gate.

Requiring a gate to be able to stop an engine is a bad idea. You are forced to create gates for simple things. Now if you want to stop a machine and you don't have a gate you simple stop the engines that are powering it.

commented

@psxlover granted, and in particular it's a problem for the redstone engine...

commented

BTW - please make your change on 6.1.x - we're not accepting any non-critical features in 6.0.x anymore.

commented

So as a conclusion, let's do this for everything but engines :P Default should be ON as to not disturbed too much current behavior.

commented

Ok my fault...I missed the part saying "I'd keep this issue bounded at first." meaning interface...I'm not a BC expert, just regular user and I should have demand further description of this problem.

commented

@czaftan well - you're learning computer science aren't you? Hitting the only real issue with programming, communication between programmers ;-)

commented

I know I know...:D