MightyPirates / OpenComputers

Home of the OpenComputers mod for Minecraft.
https://oc.cil.li
Other
1.59k stars 432 forks source link

[Feature Request] Programmable Hover Boots #2274

Closed AtrumChalybs closed 3 years ago

AtrumChalybs commented 7 years ago

Currently the only real personal items are the nanomachines, tablets and hover boots. Sadly, the hover boots just don't feel right compared to the rest of open computers. They basically just act as thaumcraft's boots of the traveler. This doesn't really fit when all other items are set up by the players.

So, the feature would be the ability to craft EEPROMs with the boots to make them run while being worn. The boots themselves would act as a component, like drones and robots. They would get a set of functions and events such as applyForce(amount,direction) and on_crouch events. This could allow for the creation of anything from sprint boosters to temporary gliders.

I understand that this could be really annoying(or impossible) to set up, but please consider it.

NickNackGus commented 7 years ago

I like the sound of this - expanding that, there could be events for on_sprint and on_jump, and maybe some events for releasing those buttons. Something like using the keyboard component, but limited to movement keys, and aliased to things like "move_left" instead of "a" since key bindings can be remapped. The hover boots are based on drones, so I could understand the ability to apply force (consuming energy in doing so).

Controlling the hover boots' actions via lua could allow players to create their own double jump, sprint, or (brief) flight mechanics. Access to the drone's APIs (with modification if needed) could be used to detect when the player is falling too fast, and apply an upward force to reduce or negate fall damage.

If it allows access to components within the drone used to craft the hover boots, certain components may be available from the EEPROM code, such as a geolyzer. By detecting blocks with a geolyzer, one could program the hover boots to avoid falls, or lava, or other hazards by applying a force to the player.

If implementing this and wishing to maintain the original functionality of hover boots, then perhaps a loot EEPROM would be available, similar to loot disks? Or maybe it could show up as a loot disk with the EEPROM code and a text file explaining what components and steps are required to set them up?

xarses commented 7 years ago

+1 on the general of this, sounds fun. We'd want to come up with a full set of events, including things like falling so we can maybe apply the brakes

AtrumChalybs commented 7 years ago

I was thinking a set of events like on_crouch, on_stand, on_sprint and such. There could also be functions like isFalling(), isSprinting or getFallSpeed() to allow people to really make some crazy set ups.

xarses commented 7 years ago

we'd need an event to fire for falling. Polling for isFalling is going to lead to deaths... XD

AtrumChalybs commented 7 years ago

That it might :D, I just meant that there should be a list of events and corresponding functions so you can add conditionals to only activate at certain times.

Vexatos commented 7 years ago

Another idea: Just have it work similar to nanomachines and have computers communicate to the boots wirelessly. They could just send those events as network messages then. Not every piece of clothing needs an entire CPU.

AtrumChalybs commented 7 years ago

Either way could work. I just thought that the boots would require a lot more reactive programming. Like increasing jump height would be easiest by adding upwards force when you jump, as opposed to having constant upwards force. I would be happy with either though.

NickNackGus commented 7 years ago

The current recipe already involves a drone; in my opinion, it doesn't make sense to require a player to carry a tablet with wireless connectivity in order to make the hover boots do anything. With nanomachines, it makes sense, as they can continuously apply a potion effect without computer interaction. If we want to use the boots to apply forces to the player in reaction to their normal movement, the latency from handling wireless communication could be problematic.

xarses commented 7 years ago

I think the ask here is that they have firmware and fire events so we can pre-code the response framework, having them network programmable implies a more simplistic, and essentially always active response.

You're implying setting

modeAvodFallDamage(True)

vs,

function onFallingEvent () -- called by event trigger
if fallingSpeed() >= 9 then
  force(sides.up, 5)
end
NickNackGus commented 7 years ago

True, a network protocol like that would be simpler. I'm in favor of the second option - it's more flexible and open to modification. For instance:

function onFallingEvent ()
while fallingSpeed() >= 8 do
  computer.beep(880 * 8 / fallingSpeed(), 0.05)
end

This wouldn't be useful, but I could imagine someone would be amused by their boots playing a series of notes to accompany their rapid descent. Think of the sound you'd hear as cartoon characters fall off cliffs. I'm sure there are more creative uses than this, and potential for minigames with custom movement mechanics.

I do not, however, object to the idea of being programmable and having some wireless capabilities. Imagine a room full of holographics projectors emulating the holodecks from Star Trek, with hoverboots used to prevent you from reaching the walls without meaning to.

Vexatos commented 7 years ago

Hover boots do not contain drones, they merely consist of a drone case strapped to your feet.

NickNackGus commented 7 years ago

@Vexatos Ah. I've never crafted them; I got one out of the creative menu to try them out once, but never looked up the recipe.

payonel commented 6 years ago

I agree with vex - to send commands to the boots via wireless signal

payonel commented 6 years ago

Sharing some ideas from from #2574 -- not that I support these, just combining feedback. These ideas could also be considered for nanomachine improvements

[sic]