Added a manual for the hydro, by chat command

master
Alexsandro Percy 2021-05-15 22:25:12 -03:00
parent fe1e6e67a8
commit d0c5d9dfa2
9 changed files with 185 additions and 0 deletions

View File

@ -52,6 +52,7 @@ It was limited at the source. You can modify it by your own, just making the rol
* Left/right: Turn to left/right, work on and out ground.
* Left and Right together: center all commands
* Sneak and Jump together: give/take the controls to/from pilot student
* Up and Down together: enable/disable HUD
-----------------------
License of source code:

174
hidroplane_manual.lua Normal file
View File

@ -0,0 +1,174 @@
dofile(minetest.get_modpath("hidroplane") .. DIR_DELIM .. "hidroplane_global_definitions.lua")
--------------
-- Manual --
--------------
function hidroplane.manual_formspec(name)
local basic_form = table.concat({
"formspec_version[3]",
"size[16,10]",
"background[-0.7,-0.5;17.5,11.5;hidroplane_manual_bg.png]"
}, "")
basic_form = basic_form.."button[1.75,1.5;4,1;short;Shortcuts]"
basic_form = basic_form.."button[1.75,3.5;4,1;panel;Panel]"
basic_form = basic_form.."button[1.75,5.5;4,1;fuel;Refueling]"
basic_form = basic_form.."button[1.75,7.5;4,1;op;Operation]"
basic_form = basic_form.."button[10.25,1.5;4,1;paint;Painting]"
basic_form = basic_form.."button[10.25,3.5;4,1;tips;Tips]"
minetest.show_formspec(name, "hidroplane:manual_main", basic_form)
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname == "hidroplane:manual_main" then
if fields.short then
local text = {
"Shortcuts \n\n",
"* Right click: enter in/get off plane \n",
"* Left click (with biofuel): add fuel to plane \n",
"* Right click and Sneak: enter in flight instructor mode (limited \n",
" vision, so use external camera) \n",
"* E: Start/stop engine \n",
"* Jump: Increase power, forward on ground \n",
"* Sneak: Decrease power, brake on ground \n",
"* Backward: go up flying - nose up \n",
"* Forward: go down flying - nose down \n",
"* Left/right: Turn to left/right, work on and out ground. \n",
"* Left and Right together: center all commands \n",
"* Sneak and Jump together: give/take the controls to/from \n",
" pilot student \n",
"* Up and Down together: enable/disable HUD"
}
local shortcut_form = table.concat({
"formspec_version[3]",
"size[16,10]",
"background[-0.7,-0.5;17.5,11.5;hidroplane_manual_bg.png]",
"image[0.5,3.75;6,6;hidroplane_manual_up_view.png]",
"label[9.25,0.5;", table.concat(text, ""), "]",
}, "")
minetest.show_formspec(player:get_player_name(), "hidroplane:manual_shortcut", shortcut_form)
end
if fields.panel then
local text = {
"The Panel \n\n",
"In front of the pilot is the instrument panel. \n",
"It's used to obtain important flight information, namely: \n",
"rate of climb/descent, speed, power applied and fuel level. \n\n",
"The climber is the instrument that indicates the rate \n",
" of climb and descent, it's on the left of the panel, \n",
" marked with the letter C in blue. \n",
"The speed indicator indicates the longitudinal speed of the \n",
" aircraft. It's on the center of the panel and is marked \n",
" with the letter S in white. \n",
"The power gauge indicates the power applied to the engine. \n",
"It's at upper right position of the panel, with an yellow P. \n",
"The fuel gauge, located on the right and below, indicates the \n",
"fuel available on the aircraft. It's marked with the green F."
}
local panel_form = table.concat({
"formspec_version[3]",
"size[16,10]",
"background[-0.7,-0.5;17.5,11.5;hidroplane_manual_bg.png]",
"image[0.2,1.75;7,7;hidroplane_manual_panel.png]",
"label[9.25,0.5;", table.concat(text, ""), "]",
}, "")
minetest.show_formspec(player:get_player_name(), "hidroplane:manual_panel", panel_form)
end
if fields.fuel then
local text = {
"Fuel \n\n",
"To fly, the aircraft needs fuel for its engine. So it is \n",
"necessary to supply it. To do this, it is necessary to \n",
"have the selected fuel in hand and punch it in the float. \n",
"Depending on the fuel mod used and which container, a \n",
"greater or lesser number of fuel units may be required to \n",
"fill the tank. In the case of the Lokrates biofuel mod, \n",
"with 10 bottles it is possible to fill the tank. With the \n",
"vial, 40 units will be needed. \n",
"Don't forget to check the fuel gauge on the panel."
}
local fuel_form = table.concat({
"formspec_version[3]",
"size[16,10]",
"background[-0.7,-0.5;17.5,11.5;hidroplane_manual_bg.png]",
"image[2,3.75;4,2;hidroplane_manual_fuel.png]",
"label[9.25,0.5;", table.concat(text, ""), "]",
}, "")
minetest.show_formspec(player:get_player_name(), "hidroplane:fuel", fuel_form)
end
if fields.op then
local text = {
"Operation \n\n",
"The aircraft can operate directly from the water or land. \n",
"When operating on land the landing gear will \n",
"automatically extend. \n",
"When boarding the aircraft, centralize the commands (A \n",
"and D keys), press E to start the engine and hold Jump \n",
"until the power reaches maximum. When the speed \n",
"reaches the green range, lightly pull the stick using the S \n",
"key. Always keep the speed within the green range to \n",
"avoid stalling. To land, remove all power, but keep the \n",
"speed at the limit between the green and white range, \n",
"still in the green. When you are about to touch the soil or \n",
"water, lightly pull the stick to level and touch it gently. \n",
"It's possible to operate with an external camera, \n",
"activating the HUD. \n",
"It's possible for a passenger to board the aircraft, just \n",
"click the right button on the floater. But the passenger \n",
"will only be able to enter if the pilot has already boarded."
}
local op_form = table.concat({
"formspec_version[3]",
"size[16,10]",
"background[-0.7,-0.5;17.5,11.5;hidroplane_manual_bg.png]",
"image[0.5,1.75;6,6;hidroplane_manual_side_view.png]",
"label[9.25,0.5;", table.concat(text, ""), "]",
}, "")
minetest.show_formspec(player:get_player_name(), "hidroplane:op", op_form)
end
if fields.paint then
local text = {
"Painting \n\n",
"Painting the aircraft is quite simple. It works in the same \n",
"way as the fuel supply, but instead of using fuel to punch \n",
"the floater, use a dye of the chosen color."
}
local paint_form = table.concat({
"formspec_version[3]",
"size[16,10]",
"background[-0.7,-0.5;17.5,11.5;hidroplane_manual_colors.png]",
"label[9.25,0.5;", table.concat(text, ""), "]",
}, "")
minetest.show_formspec(player:get_player_name(), "hidroplane:paint", paint_form)
end
if fields.tips then
local text = {
"Tips \n\n",
"* During a stall, centralize the controls (A + D shortcut) \n",
" and apply maximum power, then gently pull the control. \n",
"* The \"repair tool\" can repair damage suffered by the \n",
" aircraft. To use it, have some steel ingots in the \n",
" inventory, which will be subtracted for repair \n",
"* There is a turbo mode that can be used for long climbs, \n",
" just hold the jump key. But be careful with the angle of \n",
" attack, because even with full power it is not possible to \n",
" climb with an angle of attack that is too high. \n",
"* When boarding as a flight instructor, use \n",
" the external camera with the hud on. \n",
"* As an instructor, only pass control to the student at \n",
" altitudes that allow time for reaction, unless you \n",
" already trust that student.",
}
local tips_form = table.concat({
"formspec_version[3]",
"size[16,10]",
"background[-0.7,-0.5;17.5,11.5;hidroplane_manual_bg.png]",
"label[0.5,0.5;", table.concat(text, ""), "]",
}, "")
minetest.show_formspec(player:get_player_name(), "hidroplane:tips", tips_form)
end
end
end)

View File

@ -31,6 +31,7 @@ dofile(minetest.get_modpath("hidroplane") .. DIR_DELIM .. "hidroplane_fuel_manag
dofile(minetest.get_modpath("hidroplane") .. DIR_DELIM .. "hidroplane_custom_physics.lua")
dofile(minetest.get_modpath("hidroplane") .. DIR_DELIM .. "hidroplane_utilities.lua")
dofile(minetest.get_modpath("hidroplane") .. DIR_DELIM .. "hidroplane_entities.lua")
dofile(minetest.get_modpath("hidroplane") .. DIR_DELIM .. "hidroplane_manual.lua")
--
-- helpers and co.
@ -82,3 +83,12 @@ minetest.register_chatcommand("hydro_eject", {
end
})
minetest.register_chatcommand("hydro_manual", {
params = "",
description = "Hydroplane operation manual",
privs = {interact = true},
func = function(name, param)
hidroplane.manual_formspec(name)
end
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 KiB