2024-04-15 03:04:44 -04:00
export { } ;
2023-11-13 03:10:31 -05:00
2023-11-13 20:57:43 -05:00
//* note: All enums were moved to mods/utility/enums.ts
//? Everything was just dumped in as I looked down the lua_api.md
2023-11-13 04:57:55 -05:00
/** @noSelf **/
2024-04-15 03:04:44 -04:00
interface minetest {
2024-04-19 01:15:48 -04:00
get_current_modname ( ) : string ;
get_modpath ( modName : string ) : string ;
get_modnames ( ) : string [ ] ;
get_game_info ( ) : GameInfo ;
get_worldpath ( ) : string ;
is_singleplayer ( ) : boolean ;
features ( ) : MinetestFeatures ;
has_feature ( featureName : string ) : boolean ;
get_player_information ( playerName : string ) : PlayerInformation ;
get_player_window_information ( playerName : string ) : WindowInformation ;
mkdir ( dir : string ) : boolean ;
rmdir ( dir : string ) : boolean ;
cpdir ( dir : string , dst : string ) : boolean ;
mvdir ( dir : string ) : boolean ;
get_dir_list ( dir : string , isDir : boolean ) : string [ ] ;
safe_file_write ( path : string , content : string ) : boolean ;
get_version ( ) : MinetestInfo ;
sha1 ( data : any , raw : boolean ) : string ;
colorspec_to_colorstring ( colorSpec : ColorSpec ) : string ;
colorspec_to_bytes ( colorSpec : ColorSpec ) : string ;
encode_png ( width : number , height : number , data : ColorSpec [ ] | string , compression : number ) : string ;
urlencode ( url : string ) : string ;
debug ( anything : string ) : void ;
log ( level : LogLevel , text : string ) : void ;
register_node ( nodeName : string , definition : NodeDefinition ) : void ;
register_craftitem ( craftItemName : string , definition : ItemDefinition ) : void ;
register_tool ( toolName : string , definition : ItemDefinition ) : void ;
override_item ( itemName : string , definition : ItemDefinition ) : void ;
unregister_item ( itemName : string ) : void ;
register_entity ( entityName : string , definition : LuaEntity ) : void ;
register_abm ( abm : ABMDefinition ) : void ;
register_lbm ( lbm : LBMDefinition ) : void ;
register_alias ( alias : string , originalName : string ) : void ;
register_alias_force ( alias : string , originalName : string ) : void ;
register_ore ( ore : OreDefinition ) : void ;
register_biome ( biome : BiomeDefinition ) : void ;
unregister_biome ( biomeName : string ) : void ;
register_decoration ( decoration : DecorationDefinition ) : void ;
register_schematic ( schematic : SchematicDefinition ) : number ;
clear_registered_biomes ( ) : void ;
clear_registered_decorations ( ) : void ;
clear_registered_ores ( ) : void ;
clear_registered_schematics ( ) : void ;
register_craft ( craftRecipe : CraftRecipeDefinition ) : void ;
clear_craft ( craftRecipe : CraftRecipeDefinition ) : void ;
register_chatcommand ( commandName : string , definition : ChatCommandDefinition ) : void ;
override_chatcommand ( commandName : string , definition : ChatCommandDefinition ) : void ;
unregister_chatcommand ( commandName : string ) : void ;
register_privilege ( privilegeName : string , definition : PrivilegeDefinition ) : void ;
register_authentication_handler ( authHandler : AuthenticationHandlerDefinition ) : void ;
register_globalstep ( fun : ( delta : number ) = > void ) : void ;
register_on_mods_loaded ( fun : ( ) = > void ) : void ;
register_on_shutdown ( fun : ( ) = > void ) : void ;
register_on_placenode ( fun : ( pos : Vec3 , node : NodeTable , placer : ObjectRef , oldNode : NodeTable , itemStack : ItemStackObject , pointedThing : PointedThing ) = > void ) : void ;
register_on_dignode ( fun : ( pos : Vec3 , oldNode : NodeTable , digger : ObjectRef ) = > void ) : void ;
register_on_punchnode ( fun : ( pos : Vec3 , node : NodeTable , puncher : ObjectRef , pointedThing : PointedThing ) = > void ) : void ;
register_on_generated ( fun : ( minp : Vec3 , maxp : Vec3 , blockSeed : number ) = > void ) : void ;
register_on_newplayer ( fun : ( player : ObjectRef ) = > void ) : void ;
register_on_punchplayer ( fun : ( player : ObjectRef , hitter : ObjectRef , timeFromLastPunch : number , toolCapabilities : ToolCapabilities , dir : Vec3 , damage : number ) = > void ) : void ;
register_on_rightclickplayer ( fun : ( player : ObjectRef , clicker : ObjectRef ) = > void ) : void ;
register_on_player_hpchange ( fun : ( player : ObjectRef , hpChange : number , reason : HPChangeReasonDefinition ) = > void , modifier : boolean ) : void ;
register_on_dieplayer ( fun : ( player : ObjectRef , reason : HPChangeReasonDefinition ) = > void ) : void ;
register_on_respawnplayer ( fun : ( player : ObjectRef ) = > void ) : void ;
register_on_prejoinplayer ( fun : ( name : string , ip : string ) = > void ) : void ;
register_on_joinplayer ( fun : ( player : ObjectRef , lastLogin : string ) = > void ) : void ;
register_on_leaveplayer ( fun : ( player : ObjectRef , timedOut : boolean ) = > void ) : void ;
register_on_authplayer ( fun : ( name : string , ip : string , isSuccess : boolean ) = > void ) : void ;
register_on_auth_fail ( fun : ( name : string , ip : string ) = > void ) : void ;
register_on_cheat ( fun : ( player : ObjectRef , cheat : CheatDefinition ) = > void ) : void ;
register_on_chat_message ( fun : ( name : string , message : string ) = > void ) : void ;
register_on_chatcommand ( fun : ( name : string , command : string , params : string ) = > boolean ) : void ;
register_on_player_receive_fields ( fun : ( player : ObjectRef , formName : string , fields : { string : any ; } ) = > void ) : void ;
register_on_craft ( fun : ( itemStack : ItemStackObject , player : ObjectRef , oldCraftGrid : any [ ] , craftInv : string ) = > void ) : void ;
register_craft_predict ( fun : ( itemStack : ItemStackObject , player : ObjectRef , oldCraftGrid : any [ ] , craftInv : string ) = > void ) : void ;
register_allow_player_inventory_action ( fun : ( player : ObjectRef , action : string , inventory : string , inventoryInfo : ActionDefinition ) = > void ) : void ;
register_on_player_inventory_action ( fun : ( player : ObjectRef , action : string , inventory : string , inventoryInfo : ActionDefinition ) = > void ) : void ;
register_on_protection_violation ( fun : ( position : Vec3 , name : string ) = > void ) : void ;
register_on_item_eat ( fun : ( hpChange : number , replaceWithItem : boolean , itemStack : ItemStackObject , user : ObjectRef , pointedThing : PointedThing ) = > void ) : void ;
register_on_item_pickup ( fun : ( itemStack : ItemStackObject , picker : ObjectRef , pointedThing : PointedThing , timeFromLastPunch : number , . . . any : any ) = > void ) : void ;
register_on_priv_grant ( fun : ( name : string , granter : string , priv : string ) = > void ) : void ;
register_on_priv_revoke ( fun : ( name : string , revoker : string , priv : string ) = > void ) : void ;
register_can_bypass_userlimit ( fun : ( name : string , ip : string ) = > void ) : void ;
register_on_modchannel_message ( fun : ( channelName : string , sender : string , message : string ) = > void ) : void ;
register_on_liquid_transformed ( fun : ( posList : Vec3 [ ] , nodeList : string [ ] ) = > void ) : void ;
register_on_mapblocks_changed ( fun : ( modifiedBlocks : string [ ] , nodeList : any [ ] ) = > void ) : void ;
settings : MinetestSettingsObject ;
setting_get_pos ( name : string ) : Vec3 ;
string_to_privs ( str : string , delim : string ) : string ;
privs_to_string ( privs : string , delim : string ) : string ;
get_player_privs ( playerName : string ) : string [ ] ;
check_player_privs ( playerOrName : ObjectRef | string , stringListOrMap : string | Map < string , boolean > ) : boolean | boolean [ ] ;
check_password_entry ( playerName : string , entry : string , password : string ) : boolean ;
get_password_hash ( playerName : string , rawPassword : string ) : string ;
get_player_ip ( playerName : string ) : string ;
get_auth_handler ( ) : AuthenticationHandlerDefinition ;
notify_authentication_modified ( playerName : string ) : void ;
set_player_password ( playerName : string , passwordHash : string ) : void ;
set_player_privs ( playerName : string , { string : boolean } ) : void ;
auth_reload ( ) : void ;
chat_send_all ( message : string ) : void ;
chat_send_player ( playerName : string , message : string ) : void ;
format_chat_message ( playerName : string , message : string ) : void ;
set_node ( position : Vec3 , nodeTable : NodeTable ) : void ;
add_node ( position : Vec3 , nodeTable : NodeTable ) : void ;
bulk_set_node ( positions : Vec3 [ ] , nodeTable : NodeTable ) : void ;
swap_node ( position : Vec3 , nodeTable : NodeTable ) : void ;
remove_node ( position : Vec3 ) : void ;
get_node ( position : Vec3 ) : NodeTable ;
get_node_or_nil ( position : Vec3 ) : NodeTable | null ;
get_node_light ( position : Vec3 , timeOfDay : number ) : number ;
get_natural_light ( position : Vec3 , timeOfDay : number ) : number ;
get_artificial_light ( param1 : number ) : number ;
place_node ( position : Vec3 , nodeTable : NodeTable ) : void ;
dig_node ( position : Vec3 ) : boolean ;
punch_node ( position : Vec3 ) : void ;
spawn_falling_node ( position : Vec3 ) : [ boolean , ObjectRef ] | boolean ;
find_nodes_with_meta ( pos1 : Vec3 , pos2 : Vec3 ) : Vec3 [ ] ;
get_meta ( position : Vec3 ) : MetaRef ;
get_node_timer ( position : Vec3 ) : NodeTimerObject ;
add_entity ( position : Vec3 , entityName : string , staticData? : string ) : ObjectRef | null ;
add_item ( position : Vec3 , item : ItemStackObject | string ) : ObjectRef ;
get_player_by_name ( playerName : string ) : ObjectRef ;
get_objects_inside_radius ( position : Vec3 , radius : number ) : ObjectRef [ ] ;
get_objects_in_area ( pos1 : Vec3 , pos2 : Vec3 ) : ObjectRef [ ] ;
set_timeofday ( newTimeOfDay : number ) : void ;
get_timeofday ( ) : number ;
get_gametime ( ) : number ;
get_day_count ( ) : number ;
find_node_near ( position : Vec3 , radius : number , nodeNames : string [ ] , searchCenter? : boolean ) : Vec3 | void ;
find_nodes_in_area ( pos1 : Vec3 , pos2 : Vec3 , nodeNames : string [ ] , grouped : boolean ) : any [ ] ; //! FIXME: returns a very specific thing, turn it into an interface
find_nodes_in_area_under_air ( pos1 : Vec3 , pos2 : Vec3 , nodeNames : string [ ] ) : Vec3 [ ] ;
get_perlin ( nodeParams : NoiseParams ) : PerlinNoiseObject ;
get_perlin ( seedDiff : number , octaves : number , persistence : number , spread : number ) : PerlinNoiseObject ;
get_voxel_manip ( pos1 : Vec3 , pos2 : Vec3 ) : VoxelManipObject ;
set_gen_notify ( flags : GenNotifyFlags , decorationIDs : number [ ] ) : void ;
get_gen_notify ( ) : number [ ] ;
get_decoration_id ( decorationName : string ) : number ;
get_mapgen_object ( objectName : string ) : GenNotifyObject ;
get_heat ( position : Vec3 ) : number ;
get_humidity ( position : Vec3 ) : number ;
get_biome_data ( position : Vec3 ) : BiomeDataDefinition | void ;
get_biome_id ( biomeName : string ) : number ;
get_biome_name ( biomeID : number ) : string ;
get_mapgen_setting ( settingName : string ) : MapGenSettingsDefinition ;
set_mapgen_params ( mapgenParams : MapGenSettingsDefinition ) : void ;
get_mapgen_edges ( mapgenLimit : number , chunkSize : number ) : void ;
get_mapgen_setting ( settingName : string ) : MapGenSettingsDefinition ;
get_mapgen_setting_noiseparams ( settingName : string ) : NoiseParams ;
set_mapgen_setting ( name : string , value : any , overrideMeta : boolean ) : void ;
set_noiseparams ( name : string , noiseParams : NoiseParams , overrideMeta : boolean ) : void ;
get_noiseparams ( name : string ) : NoiseParams ;
generate_ores ( voxelManip : VoxelManipObject , pos1 : Vec3 , pos2 : Vec3 ) : void ;
generate_decorations ( voxelManip : VoxelManipObject , pos1 : Vec3 , pos2 : Vec3 ) : void ;
clear_objects ( options : ClearObjectsOptions ) : void ;
load_area ( pos1 : Vec3 , pos2 : Vec3 ) : void ;
emerge_area ( pos1 : Vec3 , pos2 : Vec3 , fun : EmergeAreaCallback , param : any ) : void ;
delete_area ( pos1 : Vec3 , pos2 : Vec3 ) : void ;
line_of_sight ( pos1 : Vec3 , pos2 : Vec3 ) : [ boolean , Vec3 ] ;
raycast ( pos1 : Vec3 , pos2 : Vec3 , hitObjects : boolean , hitLiquids : boolean ) : RaycastObject ;
find_path ( pos1 : Vec3 , pos2 : Vec3 , searchDistance : number , maxJump : number , maxDrop : number , algorithm : SearchAlgorithm ) : Vec3 [ ] ;
spawn_tree ( position : Vec3 , definition : TreeDefinition ) : void ;
transforming_liquid_add ( position : Vec3 ) : void ;
get_node_max_level ( position : Vec3 ) : number ;
get_node_level ( position : Vec3 ) : number ;
set_node_level ( position : Vec3 , level : number ) : number ;
add_node_level ( position : Vec3 , level : number ) : number ;
fix_light ( pos1 : Vec3 , pos2 : Vec3 ) : boolean ;
check_single_for_falling ( position : Vec3 ) : void ;
check_for_falling ( position : Vec3 ) : void ;
get_spawn_level ( x : number , z : number ) : number | void ;
mod_channel_join ( channelName : string ) : void ;
get_inventory ( position : Vec3 ) : InvRef ;
get_perlin_map ( params : NoiseParams , size : Vec3 ) : PerlinNoiseMapObject ;
get_inventory ( position : Vec3 ) : InvRef ;
create_detached_inventory ( name : string , callbacks : DetachedInventoryCallbacks , playerName : string ) : InvRef ;
remove_detached_inventory ( name : string ) : boolean ;
do_item_eat ( hpChange : number , replaceWithItem : ItemStackObject , itemStack : ItemStackObject , user : ObjectRef , pointedThing : PointedThing ) : ItemStackObject | void ;
show_formspec ( playerName : string , formName : string , formSpec : string ) : void ;
close_formspec ( playerName : string , formName : string ) : void ;
formspec_escape ( escape : string ) : string ;
explode_table_event ( string : string ) : Map < any , any > ;
explode_textlist_event ( string : string ) : Map < any , any > ;
explode_scrollbar_event ( string : string ) : Map < any , any > ;
inventorycube ( img1 : string , img2 : string , img3 : string ) : string ;
get_pointed_thing_position ( pointedThing : PointedThing , above : boolean ) : Vec3 | void ;
dir_to_facedir ( direction : Vec3 , is6d : boolean ) : number ;
facedir_to_dir ( faceDir : number ) : Vec3 ;
dir_to_fourdir ( direction : Vec3 ) : number ;
fourdir_to_dir ( faceDir : number ) : Vec3 ;
dir_to_wallmounted ( direction : Vec3 ) : number ;
wallmounted_to_dir ( faceDir : number ) : Vec3 ;
dir_to_yaw ( direction : Vec3 ) : number ;
yaw_to_dir ( yaw : number ) : Vec3 ;
is_colored_paramtype ( pType : number ) : boolean ;
strip_param2_color ( param2 : number , paramType2 : ParamType2 ) : number | void ;
get_node_drops ( node : string | NodeTable , toolName : string ) : string [ ] ;
get_craft_result ( input : CraftRecipeCheckDefinition ) : LuaMultiReturn < [ CraftResultObject , CraftRecipeCheckDefinition ] > ;
get_craft_recipe ( output : string | NodeTable ) : CraftRecipeDefinition | void ;
get_all_craft_recipes ( queryItem : string | NodeTable ) : CraftRecipeDefinition [ ] | void ;
handle_node_drops ( position : Vec3 , drops : string [ ] , digger : ObjectRef ) : void ;
itemstring_with_palette ( item : ItemStackObject , paletteIndex : number ) : string ;
itemstring_with_color ( item : ItemStackObject , colorString : DynamicColorSpec ) : string ;
rollback_get_node_actions ( position : Vec3 , range : number , seconds : number , limit : number ) : Rollback [ ] ;
rollback_revert_actions_by ( actor : string , seconds : number ) : [ boolean , string ] ;
item_place_node ( itemStack : ItemStackObject , placer : ObjectRef , pointedThing : PointedThing , param2 : number , preventAfterPlace : boolean ) : [ ItemStackObject , Vec3 | void ] ;
2024-04-17 05:23:45 -04:00
//? Deprecated.
2023-11-13 00:03:01 -05:00
// item_place_object(itemStack: ItemStackObject, placer: ObjectRef, pointedThing: PointedThing): ItemStackObject
2024-04-19 01:15:48 -04:00
item_place ( itemStack : ItemStackObject , placer : ObjectRef , pointedThing : PointedThing , param2 : number ) : [ ItemStackObject , Vec3 | void ] ;
item_pickup ( itemStack : ItemStackObject , picker : ObjectRef , pointedThing : PointedThing , timeFromLastPunch : number , . . . any : any ) : ItemStackObject ;
item_drop ( itemStack : ItemStackObject , dropper : ObjectRef | null , position : Vec3 ) : ItemStackObject ;
item_eat ( hpChange : number , replaceWithItem : string ) : void ;
node_punch ( position : Vec3 , nodeTable : NodeTable , puncher : ObjectRef , pointedThing : PointedThing ) : void ;
node_dig ( position : Vec3 , nodeTable : NodeTable , digger : ObjectRef ) : void ;
after ( seconds : number , fun : ( . . . any : any ) = > void , . . . any : any ) : Job ;
handle_async ( fun : ( . . . any : any ) = > any , callback : ( . . . any : any ) = > any , . . . any : any ) : any ; // any any any any
register_async_dofile ( path : string ) : void ;
request_shutdown ( message : string , reconnect : boolean , delay : number ) : void ;
cancel_shutdown_requests ( ) : void ;
get_server_status ( name : string , joined : boolean ) : void ;
get_server_uptime ( ) : number ;
get_server_max_lag ( ) : number ;
remove_player ( playerName : string ) : number ;
remove_player_auth ( playerName : string ) : boolean ;
dynamic_add_media ( options : DynamicAddMediaOptions , fun : ( name : string ) = > void ) : void ;
get_ban_list ( ) : string ;
get_ban_description ( ipOrName : string ) : string ;
ban_player ( playerName : string ) : boolean ;
unban_player_or_ip ( ipOrName : string ) : void ;
kick_player ( playerName : string , reason : string ) : boolean ;
disconnect_player ( name : string , reason : string ) : boolean ;
add_particle ( definition : ParticleDefinition ) : void ;
add_particlespawner ( definition : ParticleSpawnerDefinition ) : number ;
delete_particlespawner ( id : number , playerName : string ) : void ;
create_schematic ( pos1 : Vec3 , pos2 : Vec3 , probabilityList : SchematicProbability [ ] , fileName : string , sliceProbList : SchematicSliceProbability [ ] ) : void ;
place_schematic ( position : Vec3 , schematic : SchematicDefinition | string , rotation : SchematicRotation , replacements : Map < string , string > , forcePlacement : boolean , flags : SchematicPlacementFlag [ ] ) : void ;
place_schematic_on_vmanip ( voxelManip : VoxelManipObject , position : Vec3 , schematic : SchematicDefinition , rotation : SchematicRotation , replacement : Map < string , string > , forcePlacement : boolean , flags : SchematicPlacementFlag [ ] ) : void ;
serialize_schematic ( schematic : SchematicDefinition , format : SchematicFormat , options : SchematicSerializationOption [ ] ) : void ;
read_schematic ( schematic : SchematicDefinition | string , options : SchematicReadOptionYSlice [ ] ) : Array < any > ;
request_http_api ( ) : HTTPApi ;
get_mod_storage ( ) : MetaRef ;
get_connected_players ( ) : ObjectRef [ ] ;
is_player ( thing : ObjectRef ) : boolean ;
player_exists ( playerName : string ) : boolean ;
hud_replace_builtin ( name : HudReplaceBuiltinOption , definition : HudDefinition ) : void ;
parse_relative_number ( arg : ParseRelativeNumberArgument , relativeTo : number ) : number | void ;
send_join_message ( playerName : string ) : void ;
send_leave_message ( playerName : string , timedOut : boolean ) : void ;
hash_node_position ( position : Vec3 ) : number ;
get_position_from_hash ( hash : number ) : Vec3 ;
get_item_group ( name : string , group : string ) : number ;
raillike_group ( name : string ) : number ;
get_content_id ( name : string ) : number ;
get_name_from_content_id ( id : number ) : string ;
parse_json ( string : string , nullValue : any ) : Array < any > ;
write_json ( data : any [ ] , styled : boolean ) : string | void ;
serialize ( any : any ) : string ;
deserialize ( string : string , safe? : boolean ) : { [ id : string | number | symbol ] : any ; } ;
compress ( data : string , method : CompressionMethod , . . . any : any ) : string ;
decompress ( data : string , method : CompressionMethod , . . . any : any ) : string ;
rgba ( red : number , green : number , blue : number , alpha : number ) : string ;
encode_base64 ( string : string ) : string ;
decode_base64 ( string : string ) : string ;
is_protected ( position : Vec3 , name : string ) : boolean ;
record_protection_violation ( position : Vec3 , name : string ) : void ;
is_creative_enabled ( name : string ) : boolean ;
is_area_protected ( pos1 : Vec3 , pos2 : Vec3 , playerName : string , interval : number ) : boolean ;
rotate_and_place ( itemStack : ItemStackObject , placer : ObjectRef , pointedThing : PointedThing , infiniteStacks : boolean , orientFlags : RotateAndPlaceOrientationFlag , preventAfterPlace : boolean ) : ItemStackObject ;
rotate_node ( itemStack : ItemStackObject , placer : ObjectRef , pointedThing : PointedThing ) : void ;
calculate_knockback ( player : ObjectRef , hitter : ObjectRef , timeFromLastPunch : number , toolCapabilities : ToolCapabilities , dir : Vec3 , distance : number , damage : number ) : number ;
forceload_block ( position : Vec3 , transient : boolean , limit : number ) : boolean ;
forceload_free_block ( position : Vec3 , transient : boolean ) : void ;
compare_block_status ( position : Vec3 , condition : BlockStatusCondition ) : boolean | void ;
request_insecure_environment ( ) : any ;
global_exists ( name : string ) : boolean ;
registered_items : { [ id : string ] : ItemDefinition ; } ;
registered_nodes : { [ id : string ] : NodeDefinition ; } ;
registered_craftitems : { [ id : string ] : ItemDefinition ; } ;
registered_tools : { [ id : string ] : ItemDefinition ; } ;
registered_entities : { [ id : string ] : LuaEntity ; } ;
object_refs : { [ id : string ] : ObjectRef ; } ;
luaentities : { [ id : string ] : LuaEntity ; } ;
registered_abms : ABMDefinition [ ] ;
registered_lbms : LBMDefinition [ ] ;
registered_aliases : { [ id : string ] : string ; } ;
registered_ores : { [ id : string ] : OreDefinition ; } ;
registered_biomes : { [ id : string ] : BiomeDefinition ; } ;
registered_decorations : { [ id : string ] : DecorationDefinition ; } ;
registered_schematics : { [ id : string ] : SchematicDefinition ; } ;
registered_chatcommands : { [ id : string ] : ChatCommandDefinition ; } ;
registered_privileges : { [ id : string ] : PrivilegeDefinition ; } ;
wrap_text ( str : string , limit : number , asTable : boolean ) : string | string [ ] ;
pos_to_string ( position : Vec3 , decimalPlaces : number ) : string ;
string_to_pos ( string : string ) : Vec3 ;
string_to_area ( positions : string , relativeTo : Vec3 ) : [ Vec3 , Vec3 ] ;
formspec_escape ( string : string ) : string ;
is_yes ( arg : any ) : boolean ;
is_nan ( arg : number ) : boolean ;
get_us_time ( ) : number ;
pointed_thing_to_face_pos ( placer : ObjectRef , pointedThing : PointedThing ) : Vec3 ;
get_tool_wear_after_use ( uses : number , initialWear : number ) : number ;
get_dig_params ( groups : string [ ] , toolCapabilities : ToolCapabilities , wear : number ) : DigParamsReturn ;
get_hit_params ( groups : string [ ] , toolCapabilities : ToolCapabilities , timeFromLastPunch : number , wear : number ) : HitParamsReturn ;
get_translator ( textDomain : string ) : Translator ;
translate ( textDomain : string , . . . string : string [ ] ) : string ;
sound_play ( spec : SimpleSoundSpec , parameters : SoundParameterTable , ephemeral? : boolean ) : number ;
sound_stop ( handle : number ) : void ;
sound_fade ( handle : number , step : number , gain : number ) : void ;
registerTSEntity ( clazz : { new ( ) : LuaEntity ; } ) : void ;
get_color_escape_sequence ( color : string ) : string ;
colorize ( color : string , message : string ) : string ;
get_background_escape_sequence ( color : string ) : string ;
strip_foreground_colors ( string : string ) : string ;
strip_background_colors ( string : string ) : string ;
strip_colors ( string : string ) : string ;
2023-11-22 03:51:42 -05:00
2023-11-14 03:13:32 -05:00
/ * *
* WARNING ! THIS IS NOT MEANT TO BE USED IN PRODUCTION !
* This is only exposed to allow extension !
* /
2024-04-19 01:15:48 -04:00
spawn_item ( pos : Vec3 , item : ItemStackObject | string ) : ObjectRef | null ;
2023-11-12 21:14:35 -05:00
}
2023-11-12 22:08:50 -05:00
2024-04-15 03:04:44 -04:00
// interface HeightMapObject {
2023-11-12 21:14:35 -05:00
2023-11-13 03:10:31 -05:00
// }
2023-11-12 21:14:35 -05:00
2024-04-15 03:04:44 -04:00
// interface BiomeMapObject {
2023-11-12 21:14:35 -05:00
2023-11-13 03:10:31 -05:00
// }
2023-11-12 21:14:35 -05:00
2024-04-15 03:04:44 -04:00
// interface HeatMapObject {
2023-11-12 21:14:35 -05:00
2023-11-13 03:10:31 -05:00
// }
2023-11-12 21:14:35 -05:00
2024-04-15 03:04:44 -04:00
// interface HumidityMapObject {
2023-11-12 21:14:35 -05:00
2023-11-13 03:10:31 -05:00
// }
2023-11-12 21:14:35 -05:00
2023-11-13 03:10:31 -05:00
declare global {
2023-11-13 02:48:39 -05:00
2023-11-13 04:01:47 -05:00
interface ItemStackObject {
2024-04-19 01:15:48 -04:00
name : string ;
2023-11-22 03:04:22 -05:00
// count: number
2024-04-19 01:15:48 -04:00
wear : number ;
metadata : string ;
is_empty ( ) : boolean ;
get_name ( ) : string ;
set_name ( name : string ) : boolean ;
get_count ( ) : number ;
set_count ( count : number ) : boolean ;
get_wear ( ) : number ;
set_wear ( wear : number ) : boolean ;
get_meta ( ) : MetaRef ;
get_description ( ) : string ;
get_short_description ( ) : string ;
clear ( ) : void ;
replace ( item : ItemStackObject | string ) : void ;
to_string ( ) : string ;
to_table ( ) : any [ ] ;
get_stack_max ( ) : number ;
get_free_space ( ) : number ;
is_known ( ) : boolean ;
get_definition ( ) : ItemDefinition ;
get_tool_capabilities ( ) : ToolCapabilities ;
add_wear ( wear : number ) : void ;
add_wear_by_uses ( maxUses : number ) : void ;
add_item ( item : ItemStackObject ) : ItemStackObject ;
item_fits ( item : ItemStackObject ) : boolean ;
take_item ( n : number ) : ItemStackObject ;
peek_item ( n : number ) : ItemStackObject ;
equals ( other : ItemStackObject ) : boolean ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface InvRefLocation {
2024-04-19 01:15:48 -04:00
type : string ;
name : string ;
pos : Vec3 ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface InvRef {
2024-04-19 01:15:48 -04:00
is_empty ( listName : string ) : boolean ;
get_size ( listName : string ) : number ;
set_size ( listName : string , size : number ) : boolean ;
get_width ( listName : string ) : number ;
set_width ( listName : string , size : number ) : void ;
get_stack ( listName : string , i : number ) : ItemStackObject ;
set_stack ( listName : string , i : number , stack : ItemStackObject | string ) : void ;
get_list ( listName : string ) : ItemStackObject [ ] ;
set_list ( listName : string , list : ItemStackObject [ ] ) : void ;
get_lists ( ) : string [ ] ;
set_lists ( lists : ItemStackObject [ ] ) : void ;
add_item ( listName : string , stack : ItemStackObject | string ) : ItemStackObject ;
room_for_item ( listName : string , stack : ItemStackObject | string ) : boolean ;
contains_item ( listName : string , stack : ItemStackObject | string , matchMeta : boolean ) : boolean ;
remove_item ( listName : string , stack : ItemStackObject | string ) : ItemStackObject [ ] ;
get_location ( ) : InvRefLocation ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface TreeDefinition {
2024-04-19 01:15:48 -04:00
axiom : string ;
rules_a : string ;
rules_b : string ;
rules_c : string ;
rules_d : string ;
trunk : string ;
leaves : string ;
leaves2 : string ;
leaves2_chance : number ;
angle : number ;
iterations : number ;
random_level : number ;
trunk_type : string ;
thin_branches : boolean ;
fruit : string ;
fruit_chance : number ;
seed : number ;
}
type GenNotifyObject = Map < string , Vec3 [ ] > ;
2023-11-13 04:01:47 -05:00
2024-04-15 03:04:44 -04:00
interface SimpleSoundSpec {
2024-04-19 01:15:48 -04:00
name? : string ;
gain? : number ;
pitch? : number ;
fade? : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface SoundParameterTable extends SimpleSoundSpec {
2024-04-19 01:15:48 -04:00
start_time? : number ;
loop? : boolean ;
pos? : Vec3 ;
object ? : ObjectRef ;
to_player? : string ;
max_hear_distance? : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface NodeBox {
2024-04-19 01:15:48 -04:00
type : Nodeboxtype ;
fixed? : boxTable ;
wall_top? : box ;
wall_bottom? : box ;
wall_side? : box ;
connect_top? : box ;
connect_bottom? : box ;
connect_front? : box ;
connect_left? : box ;
connect_back? : box ;
connect_right? : box ;
disconnected_top? : box ;
disconnected_bottom? : box ;
disconnected_front? : box ;
disconnected_left? : box ;
disconnected_back? : box ;
disconnected_right? : box ;
disconnected? : box ;
disconnected_sides? : box ;
}
type box = number [ ] ;
type boxTable = box [ ] ;
type itemstring = string ;
2024-04-15 03:04:44 -04:00
interface GameInfo {
2024-04-19 01:15:48 -04:00
id : string ;
title : string ;
author : string ;
path : string ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface MinetestFeatures {
2024-04-19 01:15:48 -04:00
glasslike_framed : boolean ;
nodebox_as_selectionbox : boolean ;
get_all_craft_recipes_works : boolean ;
use_texture_alpha : boolean ;
no_legacy_abms : boolean ;
texture_names_parens : boolean ;
area_store_custom_ids : boolean ;
add_entity_with_staticdata : boolean ;
no_chat_message_prediction : boolean ;
object_use_texture_alpha : boolean ;
object_independent_selectionbox : boolean ;
httpfetch_binary_data : boolean ;
formspec_version_element : boolean ;
area_store_persistent_ids : boolean ;
pathfinder_works : boolean ;
object_step_has_moveresult : boolean ;
direct_velocity_on_players : boolean ;
use_texture_alpha_string_modes : boolean ;
degrotate_240_steps : boolean ;
abm_min_max_y : boolean ;
dynamic_add_media_table : boolean ;
particlespawner_tweenable : boolean ;
get_sky_as_table : boolean ;
get_light_data_buffer : boolean ;
mod_storage_on_disk : boolean ;
compress_zstd : boolean ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface PlayerInformation {
2024-04-19 01:15:48 -04:00
address : string ;
ip_version : number ;
connection_uptime : number ;
protocol_version : number ;
formspec_version : number ;
lang_code : string ;
min_rtt : number ;
max_rtt : number ;
avg_rtt : number ;
min_jitter : number ;
max_jitter : number ;
avg_jitter : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface WindowInformation {
2024-04-19 01:15:48 -04:00
size : Vec2 ;
max_formspec_size : Vec2 ;
real_gui_scaling : number ;
real_hud_scaling : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface MinetestInfo {
2024-04-19 01:15:48 -04:00
project : string ;
string : string ;
proto_min : string ;
proto_max : string ;
hash : string ;
is_dev : boolean ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface ColorSpec {
2024-04-19 01:15:48 -04:00
a : number ;
r : number ;
g : number ;
b : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface NodeSoundSpec {
2024-04-19 01:15:48 -04:00
footstep? : SimpleSoundSpec ;
dig? : SimpleSoundSpec | string ;
dug? : SimpleSoundSpec ;
place? : SimpleSoundSpec ;
place_failed? : SimpleSoundSpec ;
fall? : SimpleSoundSpec ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface ItemDropSpec {
2024-04-19 01:15:48 -04:00
tools? : string [ ] ;
rarity? : number ;
items? : string [ ] ;
inherit_color? : boolean ;
tool_groups? : string [ ] | string [ ] [ ] ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface NodeDropSpec {
2024-04-19 01:15:48 -04:00
max_items? : number ;
items : ItemDropSpec [ ] ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface MapNode {
2024-04-19 01:15:48 -04:00
name : string ;
prob : number ;
param2 : number ;
force_place : boolean ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface NodeTable {
2024-04-19 01:15:48 -04:00
name : string ;
param1? : number ;
param2? : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface PointedThing {
2024-04-19 01:15:48 -04:00
type : string ;
under : Vec3 ;
above : Vec3 ;
ref : ObjectRef ;
2023-11-13 04:01:47 -05:00
}
2023-11-14 05:15:15 -05:00
2024-04-15 03:04:44 -04:00
interface GroupCap {
2023-11-14 05:26:13 -05:00
// Allow the end programmer to do it their way.
2024-04-19 01:15:48 -04:00
times : number [ ] | { [ id : number ] : number ; } ,
2023-11-14 05:26:13 -05:00
uses? : number ,
2024-04-19 01:15:48 -04:00
maxlevel? : number ;
2023-11-14 05:36:12 -05:00
// This is a bolt on specifically for Forgotten Lands. You can still use it though, but it won't do anything without implementation.
2024-04-19 01:15:48 -04:00
maxdrop? : number ;
2023-11-14 05:15:15 -05:00
}
2024-04-15 03:04:44 -04:00
interface ToolCapabilities {
2024-04-19 01:15:48 -04:00
full_punch_interval? : number ;
max_drop_level? : number ;
groupcaps ? : { [ id : string ] : GroupCap ; } ;
damage_groups ? : { [ id : string ] : number ; } ;
punch_attack_uses? : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface ItemSounds {
2024-04-19 01:15:48 -04:00
breaks : SimpleSoundSpec ;
eat : SimpleSoundSpec ;
punch_use : SimpleSoundSpec ;
punch_use_air : SimpleSoundSpec ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface Collision {
2024-04-19 01:15:48 -04:00
type : string ;
axis : string ;
node_pos : Vec3 ;
object : ObjectRef ;
old_velocity : Vec3 ;
new_velocity : Vec3 ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface MoveResult {
2024-04-19 01:15:48 -04:00
touching_ground : boolean ;
collides : boolean ;
standing_on_object : boolean ;
collisions : Collision [ ] ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
2024-04-19 01:15:48 -04:00
type DynamicColorSpec = ( ColorSpec | string ) ;
2024-04-15 03:04:44 -04:00
interface ItemDefinition {
2024-04-19 01:15:48 -04:00
type ? : string ;
description? : string ;
short_description? : string ;
groups ? : { [ id : string ] : number ; } ;
inventory_image? : string ;
inventory_overlay? : string ;
wield_image? : string ;
wield_overlay? : string ;
wield_scale? : Vec3 ;
palette? : string ;
color? : string ;
stack_max? : number ;
range? : number ;
liquids_pointable? : boolean ;
light_source? : number ;
tool_capabilities? : ToolCapabilities ;
node_placement_prediction? : string ;
node_dig_prediction? : string ;
sound? : SimpleSoundSpec ;
on_place ? ( itemStack : ItemStackObject , placer : ObjectRef , pointedThing : PointedThing ) : void ;
on_secondary_use ? ( itemStack : ItemStackObject , user : ObjectRef , pointedThing : PointedThing ) : void ;
on_drop ? ( itemStack : ItemStackObject , dropper : ObjectRef , position : Vec3 ) : void ;
on_pickup ? ( itemStack : ItemStackObject , picker : ObjectRef , pointedThing : PointedThing , timeFromLastPunch : number , . . . any : any ) : void ;
on_use ? ( itemStack : ItemStackObject , user : ObjectRef , pointedThing : PointedThing ) : void ;
after_use ? ( itemStack : ItemStackObject , user : ObjectRef , nodeTable : NodeTable , digParams : { string : any ; } ) : void ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
2024-04-18 05:24:53 -04:00
/** @noSelf */
interface TileDefinition {
name : string ,
backface_culling : boolean ,
2024-04-19 01:15:48 -04:00
animation : TileAnimationDefinition ;
2024-04-18 05:24:53 -04:00
}
2023-11-20 06:51:16 -05:00
/** @noSelf **/
2024-04-15 03:04:44 -04:00
interface NodeDefinition {
2024-04-19 01:15:48 -04:00
description? : string ;
drawtype? : Drawtype ;
visual_scale? : number ;
tiles? : string [ ] | TileDefinition [ ] ;
overlay_tiles? : string [ ] ;
special_tiles? : string [ ] | TileDefinition [ ] ;
2024-04-17 04:57:41 -04:00
wield_scale? : Vec3 ,
2024-04-19 01:15:48 -04:00
color? : DynamicColorSpec ;
light_source? : number ;
use_texture_alpha? : TextureAlpha ;
palette? : string ;
post_effect_color? : DynamicColorSpec ;
post_effect_color_shaded? : boolean ;
paramtype? : ParamType1 ;
paramtype2? : ParamType2 ;
place_param2? : number ;
is_ground_content? : boolean ;
sunlight_propagates? : boolean ;
walkable? : boolean ;
groups ? : { [ id : string ] : number ; } ;
pointable? : boolean ;
diggable? : boolean ;
climbable? : boolean ;
move_resistance? : number ;
buildable_to? : boolean ;
floodable? : boolean ;
liquidtype? : LiquidType ;
liquid_alternative_flowing? : string ;
liquid_alternative_source? : string ;
liquid_viscosity? : number ;
liquid_renewable? : boolean ;
liquid_move_physics? : boolean ;
leveled? : number ;
leveled_max? : number ;
liquid_range? : number ;
drowning? : number ;
damage_per_second? : number ;
node_box? : NodeBox ;
connects_to? : string [ ] ;
connect_sides? : NodeBoxConnections ;
mesh? : string ;
selection_box? : NodeBox ;
collision_box? : NodeBox ;
legacy_facedir_simple? : boolean ;
legacy_wallmounted? : boolean ;
waving? : number ;
sounds? : NodeSoundSpec ;
drop? : NodeDropSpec | string ;
on_construct ? ( position : Vec3 ) : void ;
on_destruct ? ( position : Vec3 ) : void ;
after_destruct ? ( position : Vec3 , oldNode : MapNode ) : void ;
on_flood ? ( position : Vec3 , oldNode : NodeTable , newNode : NodeTable ) : void ;
preserve_metadata ? ( position : Vec3 , oldNode : NodeTable , oldMeta : NodeTable , drops : ItemStackObject [ ] ) : void ;
after_place_node ? ( position : Vec3 , placer : ObjectRef , itemStack : ItemStackObject , pointedThing : PointedThing ) : void ;
after_dig_node ? ( position : Vec3 , oldNode : NodeTable , oldMeta : string , digger : ObjectRef ) : void ;
can_dig ? ( position : Vec3 , canDig : ObjectRef ) : boolean ;
on_punch ? ( position : Vec3 , node : NodeTable , puncher : ObjectRef , pointedThing : PointedThing ) : void ;
on_rightclick ? ( position : Vec3 , node : NodeTable , clicker : ObjectRef , itemStack : ItemStackObject , pointedThing : PointedThing ) : void ;
on_dig ? ( position : Vec3 , node : NodeTable , digger : ObjectRef ) : void ;
on_timer ? ( position : Vec3 , elapsed : number ) : void ;
on_receive_fields ? ( position : Vec3 , formName : string , fields : { [ id : string ] : any ; } , sender : ObjectRef ) : void ;
allow_metadata_inventory_move ? ( position : Vec3 , fromList : string , fromIndex : number , toList : string , toIndex : number , count : number , player : ObjectRef ) : void ;
allow_metadata_inventory_put ? ( position : Vec3 , listName : string , index : number , stack : ItemStackObject , player : ObjectRef ) : number ;
allow_metadata_inventory_take ? ( position : Vec3 , listName : string , index : number , stack : ItemStackObject , player : ObjectRef ) : number ;
on_metadata_inventory_move ? ( position : Vec3 , fromList : string , fromIndex : number , toList : string , toIndex : number , count : number , player : ObjectRef ) : void ;
on_metadata_inventory_put ? ( position : Vec3 , listName : string , index : number , stack : ItemStackObject , player : ObjectRef ) : void ;
on_metadata_inventory_take ? ( position : Vec3 , listName : string , index : number , stack : ItemStackObject , player : ObjectRef ) : void ;
on_blast ? ( position : Vec3 , intensity : number ) : void ;
mod_origin? : string ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface MetaRef {
2024-04-19 01:15:48 -04:00
set_tool_capabilities ( toolCapabilities : ToolCapabilities ) : void ;
contains ( key : string ) : boolean ;
get ( key : string ) : string ;
set_string ( key : string , value : string ) : void ;
get_string ( key : string ) : string ;
set_int ( key : string , value : number ) : void ;
get_int ( key : string ) : number ;
set_float ( key : string , value : number ) : void ;
get_float ( key : string ) : number ;
get_keys ( ) : string [ ] ;
to_table ( ) : MetaData | void ;
from_table ( data : MetaData ) : boolean ;
equals ( other : MetaRef ) : boolean ;
2024-04-17 05:23:45 -04:00
//! FIXME: USE INHERITANCE!
2023-11-13 04:01:47 -05:00
// node
2024-04-19 01:15:48 -04:00
get_inventory ( ) : InvRef ;
mark_as_private ( nameOrArray : string | string [ ] ) : void ;
2023-11-13 04:01:47 -05:00
// timer
2024-04-19 01:15:48 -04:00
set ( timeOut : number , elapsed : number ) : void ;
start ( timeOut : number ) : void ;
stop ( ) : void ;
get_timeout ( ) : number ;
get_elapsed ( ) : number ;
is_started ( ) : boolean ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface ABMDefinition {
2024-04-19 01:15:48 -04:00
label : string ;
nodenames : string [ ] ;
neighbors : string [ ] ;
interval : number ;
chance : number ;
min_y : number ;
max_y : number ;
catch_up : number ;
action ( pos : Vec3 , node : NodeTable , activeObjectCount : number , activeObjectCountWider : number ) : void ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface LBMDefinition {
2024-04-19 01:15:48 -04:00
label : string ;
name : string ;
nodenames : string [ ] ;
run_at_every_load : boolean ;
action ( pos : Vec3 , node : NodeTable , delta : number ) : void ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface SchematicReadOptionYSlice {
2024-04-19 01:15:48 -04:00
write_yslice_prob : SchematicReadOptionYSliceOption ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface SchematicData {
2024-04-19 01:15:48 -04:00
name : string ;
prob : number ;
param1 : number ;
param2 : number ;
force_place : boolean ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface SchematicProbability {
2024-04-19 01:15:48 -04:00
pos : Vec3 ;
prob : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface SchematicSliceProbability {
2024-04-19 01:15:48 -04:00
ypos : number ;
prob : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface SchematicDefinition {
2024-04-19 01:15:48 -04:00
size : Vec3 ;
data : SchematicData [ ] ;
yslice_prob : number [ ] [ ] ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface HTTPrequestDefinition {
2024-04-19 01:15:48 -04:00
url : string ;
timeout : number ;
method : HTTPRequestMethod ;
data : string | { string : string ; } ;
user_agent : string ;
extra_headers : string [ ] ;
multipart : boolean ;
post_data : string | { string : string ; } ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface HTTPRequestResult {
2024-04-19 01:15:48 -04:00
completed : boolean ;
succeeded : boolean ;
timeout : boolean ;
code : number ;
data : string ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface HTTPApi {
2024-04-19 01:15:48 -04:00
fetch ( req : HTTPrequestDefinition , callback : ( res : HTTPRequestResult ) = > void ) : void ;
fetch_async ( req : HTTPrequestDefinition ) : number ;
fetch_async_get ( handle : number ) : HTTPRequestResult ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface NoiseParams {
2024-04-19 01:15:48 -04:00
offset : number ;
scale : number ;
spread : Vec3 ;
seed : number ;
octaves : number ;
persistence : number ;
lacunarity : number ;
flags : NoiseFlags ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface OreDefinition {
2024-04-19 01:15:48 -04:00
ore_type : OreType ;
ore : string ;
ore_param2? : number ;
wherein : string ;
clust_scarcity : number ;
clust_num_ores : number ;
clust_size : number ;
y_min : number ;
y_max : number ;
flags? : OreFlags ;
noise_threshold? : number ;
noise_params? : NoiseParams ;
biomes? : string [ ] ;
column_height_min? : number ;
column_height_max? : number ;
column_midpoint_factor? : number ;
np_puff_top? : NoiseParams ;
np_puff_bottom? : NoiseParams ;
random_factor? : number ;
np_stratum_thickness? : NoiseParams ;
stratum_thickness? : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface BiomeDefinition {
2024-04-19 01:15:48 -04:00
name : string ;
node_dust? : string ;
node_top? : string ;
depth_top? : number ;
node_filler? : string ;
depth_filler? : number ;
node_stone? : string ;
node_water_top? : string ;
depth_water_top? : number ;
node_water? : string ;
node_river_water? : string ;
node_riverbed? : string ;
depth_riverbed? : number ;
node_cave_liquid? : string ;
node_dungeon? : string ;
node_dungeon_alt? : string ;
node_dungeon_stair? : string ;
y_max? : number ;
y_min? : number ;
max_pos? : Vec3 ;
min_pos? : Vec3 ;
vertical_blend? : number ;
heat_point? : number ;
humidity_point? : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface DecorationDefinition {
2024-04-19 01:15:48 -04:00
name : string ;
deco_type? : DecorationType ;
place_on? : string ;
sidelen? : number ;
fill_ratio? : number ;
noise_params? : NoiseParams ;
biomes? : string [ ] ;
y_min? : number ;
y_max? : number ;
spawn_by? : string ;
check_offset? : number ;
num_spawn_by? : number ;
flags? : string | { string : boolean ; } ;
decoration? : string | string [ ] ;
height? : number ;
height_max? : number ;
param2? : number ;
param2_max? : number ;
place_offset_y? : number ;
schematic? : string | SchematicDefinition | number ;
replacements ? : { string : string ; } ;
rotation? : string ;
2023-11-13 04:01:47 -05:00
}
2023-11-13 20:54:35 -05:00
2024-04-15 03:04:44 -04:00
interface CraftRecipeDefinition {
2024-04-19 01:15:48 -04:00
type ? : CraftRecipeType ;
output? : string ;
recipe : string [ ] [ ] | string [ ] | string ;
replacements? : string [ ] ;
additional_wear? : number ;
cooktime? : number ;
burntime? : number ;
2023-11-13 04:01:47 -05:00
}
2023-11-20 11:00:29 -05:00
2024-04-15 03:04:44 -04:00
interface CraftResultObject {
2024-04-19 01:15:48 -04:00
item : ItemStackObject ;
time : number ;
replacements : ItemStackObject [ ] ;
2023-11-20 11:00:29 -05:00
}
2024-04-15 03:04:44 -04:00
interface CraftRecipeCheckDefinition {
2024-04-19 01:15:48 -04:00
method : CraftCheckType ;
width : number ;
items : ItemStackObject [ ] ;
2023-11-20 11:00:29 -05:00
}
2024-04-15 03:04:44 -04:00
interface ChatCommandDefinition {
2024-04-19 01:15:48 -04:00
params : string ;
description : string ;
privs : string [ ] ;
func ( name : string , param : string ) : [ boolean , string ] ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface PrivilegeDefinition {
2024-04-19 01:15:48 -04:00
description : string ;
give_to_singleplayer : boolean ;
give_to_admin : boolean ;
on_grant ( name : string , granterName : string ) : void ;
on_revoke ( name : string , revokerName : string ) : void ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface AuthenticationHandlerDefinition {
2024-04-19 01:15:48 -04:00
get_auth ( name : string ) : void ;
create_auth ( name : string , password : string ) : void ;
delete_auth ( name : string ) : void ;
set_password ( name : string , password : string ) : void ;
set_privileges ( name : string , privileges : Map < any , any > ) : void ; // ! fixme: this needs to be checked.
reload ( ) : void ;
record_login ( name : string ) : void ;
iterate ( ) : void ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface HPChangeReasonDefinition {
2024-04-19 01:15:48 -04:00
type : HPChangeReasonType ;
node : string ;
node_pos : Vec3 ;
object : ObjectRef ;
from : string ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface ActionDefinition {
2024-04-19 01:15:48 -04:00
from_list : string ;
to_list : string ;
from_index : number ;
to_index : number ;
count : number ;
listname : string ;
index : number ;
stack : ItemStackObject ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface CheatDefinition {
2024-04-19 01:15:48 -04:00
type : CheatType ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
2024-04-19 01:15:48 -04:00
type EmergeAreaCallback = ( blockPos : Vec3 , action : any , callsRemaining : number , param : any ) = > void ; // ! FIXME: figure out what minetest.EMERGE_CANCELLED EVEN IS!
2024-04-15 03:04:44 -04:00
interface BiomeDataDefinition {
2024-04-19 01:15:48 -04:00
biome : number ;
heat : number ;
humidity : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface MapGenSettingsDefinition {
2024-04-19 01:15:48 -04:00
mgname : string ;
seed : number ;
chunksize : number ;
water_level : number ;
flags : string ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface MetaData {
2024-04-19 01:15:48 -04:00
fields : { string : any ; } ;
inventory : { string : { number : string ; } ; } ;
}
function ItemStack ( stringOrObject : ItemStackObject | string ) : ItemStackObject ;
function VoxelManip ( _pos1 : Vec3 , _pos2 : Vec3 ) : VoxelManipObject ;
function VoxelArea ( _min : Vec3 , _max : Vec3 ) : VoxelAreaObject ;
function Raycast ( _pos1 : Vec3 , _pos2 : Vec3 , _object : boolean , _liquids : boolean ) : RaycastObject ;
function SecureRandom ( ) : SecureRandomObject ;
function Settings ( _ : string ) : MinetestSettingsObject ;
function PcgRandom ( seed : number , sequence : number [ ] ) : PcgRandomObject ;
function PerlinNoise ( params : NoiseParams ) : PerlinNoiseObject ;
function PerlinNoiseMap ( params : NoiseParams , size : Vec3 ) : PerlinNoiseMapObject ;
function PseudoRandom ( seed : number ) : PseudoRandomObject ;
function AreaStore ( _ : AreaStoreType ) : AreaStoreObject ;
2024-04-15 03:04:44 -04:00
namespace vector {
2024-04-19 01:15:48 -04:00
function zero ( ) : Vec3 ;
function copy ( vec : Vec3 ) : Vec3 ;
function from_string ( s : string , init : string ) : Vec3 ;
function to_string ( vec : Vec3 ) : string ;
function direction ( vec1 : Vec3 , vec2 : Vec3 ) : Vec3 ;
function distance ( vec1 : Vec3 , vec2 : Vec3 ) : number ;
function length ( vec : Vec3 ) : number ;
function normalize ( vec : Vec3 ) : Vec3 ;
function floor ( vec : Vec3 ) : Vec3 ;
function round ( vec : Vec3 ) : Vec3 ;
function apply ( vec : Vec3 , fun : ( input : number ) = > number ) : Vec3 ;
function combine ( vec1 : Vec3 , vec2 : Vec3 , fun : ( . . . any : any ) = > void ) : Vec3 ; //! fixme: test this
function equals ( vec1 : Vec3 , vec2 : Vec3 ) : boolean ;
function sort ( vec1 : Vec3 , vec2 : Vec3 ) : [ Vec3 , Vec3 ] ;
function angle ( vec1 : Vec3 , vec2 : Vec3 ) : number ;
function dot ( vec1 : Vec3 , vec2 : Vec3 ) : number ;
function cross ( vec1 : Vec3 , vec2 : Vec3 ) : number ;
function check ( vec : Vec3 ) : boolean ;
function in_area ( vec : Vec3 , min : Vec3 , max : Vec3 ) : boolean ;
function add ( vec : Vec3 , scalarOrVec : Vec3 | number ) : Vec3 ;
function subtract ( vec : Vec3 , scalarOrVec : Vec3 | number ) : Vec3 ;
function multiply ( vec : Vec3 , scalarOrVec : Vec3 | number ) : Vec3 ;
function divide ( vec : Vec3 , scalarOrVec : Vec3 | number ) : Vec3 ;
function rotate ( vec : Vec3 , radians : number ) : Vec3 ;
function rotate_around_axis ( vec : Vec3 , vec2 : Vec3 , radians : number ) : Vec3 ;
function dir_to_rotation ( vec : Vec3 , up : Vec3 ) : Vec3 ;
2023-11-13 04:52:58 -05:00
2023-11-14 01:52:48 -05:00
// This is created in the utility module because new is a reserved keyword in TS.
2024-04-19 01:15:48 -04:00
function create3d ( x? : number , y? : number , z? : number ) : Vec3 ;
2023-11-14 01:52:48 -05:00
// Everything else is a bolt on created in the utility module.
2024-04-19 01:15:48 -04:00
function create2d ( x? : number , y? : number ) : Vec2 ;
function random ( minX : number , maxX : number , minY : number , maxY : number , minZ : number , maxZ : number ) : Vec3 ;
function distance2d ( vec1 : Vec3 , vec2 : Vec3 ) : number ;
2023-11-13 04:01:47 -05:00
}
2024-04-15 03:04:44 -04:00
interface VoxelManipObject {
2024-04-19 01:15:48 -04:00
read_from_map ( pos1 : Vec3 , pos2 : Vec3 ) : [ Vec3 , Vec3 ] ;
write_to_map ( light : boolean ) : void ;
get_node_at ( position : Vec3 ) : MapNode ;
set_node_at ( position : Vec3 , node : MapNode ) : void ;
get_data ( buffer? : number [ ] ) : number [ ] ;
set_data ( buffer? : number [ ] ) : number [ ] ;
set_lighting ( light : number , p1 : Vec3 , p2 : Vec3 ) : void ;
get_light_data ( buffer : number [ ] ) : number [ ] ;
set_light_data ( lightData : number [ ] ) : void ;
get_param2_data ( buffer : number [ ] ) : number [ ] ;
set_param2_data ( param2Data : number [ ] ) : void ;
calc_lighting ( p1 : Vec3 , p2 : Vec3 , propagateShadows : boolean ) : void ;
update_liquids ( ) : void ;
was_modified ( ) : boolean ;
get_emerged_area ( ) : [ Vec3 , Vec3 ] ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface VoxelAreaInitializer {
2024-04-19 01:15:48 -04:00
MinEdge : Vec3 ;
MaxEdge : Vec3 ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface VoxelAreaObject {
2024-04-19 01:15:48 -04:00
ystride : number ;
zstride : number ;
new ( init : VoxelAreaInitializer ) : VoxelAreaObject ;
getExtent ( ) : Vec3 ;
index ( x : number , y : number , z : number ) : number ;
indexp ( p : Vec3 ) : number ;
position ( i : number ) : Vec3 ;
contains ( x : number , y : number , z : number ) : boolean ;
containsp ( p : Vec3 ) : boolean ;
containsi ( i : number ) : boolean ;
iter ( minX : number , minY : number , minZ : number , maxX : number , maxY : number , maxZ : number ) : Iterator < number > ;
iterp ( minp : Vec3 , maxp : Vec3 ) : Iterator < number > ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface RaycastObject extends Iterator < PointedThing > { }
2023-11-13 03:10:31 -05:00
2024-04-15 03:04:44 -04:00
interface SecureRandomObject {
2024-04-19 01:15:48 -04:00
next_bytes ( count : number ) : string ;
2023-11-13 03:10:31 -05:00
}
2023-11-13 17:39:02 -05:00
2024-04-15 03:04:44 -04:00
interface DetachedInventoryCallbacks {
2024-04-19 01:15:48 -04:00
allow_move ( inv : InvRef , fromList : string , fromIndex : number , toList : string , toIndex : number , count : number , player : ObjectRef ) : number ;
allow_put ( inv : InvRef , listName : string , index : number , stack : ItemStackObject , player : ObjectRef ) : number ;
allow_take ( inv : InvRef , listName : string , index : number , stack : ItemStackObject , player : ObjectRef ) : number ;
on_move ( inv : InvRef , fromList : string , fromIndex : number , toList : string , toIndex : number , count : number , player : ObjectRef ) : void ;
on_put ( inv : InvRef , listName : string , index : number , stack : ItemStackObject , player : ObjectRef ) : void ;
on_take ( inv : InvRef , listName : string , index : number , stack : ItemStackObject , player : ObjectRef ) : void ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface AreaStoreObject {
2024-04-19 01:15:48 -04:00
get_area ( id : number , includeCorners : boolean , includeData : boolean ) : Array < AreaStoreArea | boolean > | void ;
get_areas_for_pos ( pos : Vec3 , includeCorners : boolean , includeData : boolean ) : Array < AreaStoreArea | boolean > | void ;
get_areas_in_area ( corner1 : Vec3 , corner2 : Vec3 , acceptOverlap : boolean , includeCorners : boolean , includeData : boolean ) : Array < AreaStoreArea | boolean > | void ;
insert_area ( corner1 : Vec3 , corner2 : Vec3 , data : string , id : number ) : number ;
reserve ( count : number ) : void ;
remove_area ( id : number ) : boolean ;
set_cache_params ( params : AreaStoreCacheDefinition ) : void ;
to_string ( ) : string ;
to_file ( fileName : string ) : void ;
from_string ( str : string ) : [ boolean , string ] | void ;
from_file ( fileName : string ) : [ boolean , string ] | void ;
2023-11-13 03:10:31 -05:00
}
2023-11-12 21:14:35 -05:00
2024-04-15 03:04:44 -04:00
interface MinetestSettingsObject {
2024-04-19 01:15:48 -04:00
get ( key : string ) : any ;
get_bool ( key : string , defaul? : boolean ) : boolean | null ;
get_np_group ( key : string ) : NoiseParams ;
get_flags ( key : string ) : { string : boolean ; } ;
set ( key : string , value : string ) : void ;
set_bool ( key : string , value : boolean ) : void ;
set_np_group ( key : string , value : NoiseParams ) : void ;
remove ( key : string ) : boolean ;
get_names ( ) : string [ ] ;
has ( key : string ) : boolean ;
write ( ) : boolean ;
to_table ( ) : Map < string , any > ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface NametagAttributes {
2024-04-19 01:15:48 -04:00
text : string ;
color : RGBA ;
bgcolor : RGBA ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface AttachRef {
2024-04-19 01:15:48 -04:00
parent : ObjectRef ;
bone : string ;
position : Vec3 ;
rotation : Vec3 ;
forced_visible : boolean ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
2024-04-19 01:15:48 -04:00
interface BoneOverrideProperty {
vec : Vec3 ,
interpolation : number ,
absolute : boolean ;
}
2024-04-15 03:04:44 -04:00
2024-04-19 01:37:25 -04:00
interface BoneOverride {
position? : BoneOverrideProperty ,
rotation? : BoneOverrideProperty ,
scale? : BoneOverrideProperty ,
}
2024-04-15 03:04:44 -04:00
interface ObjectRef {
2024-04-19 01:15:48 -04:00
get_pos ( ) : Vec3 ;
set_pos ( position : Vec3 ) : void ;
get_velocity ( ) : Vec3 ;
add_velocity ( velocity : Vec3 ) : void ;
move_to ( newPos : Vec3 , continuous : boolean ) : void ;
punch ( puncher : ObjectRef , timeFromLastPunch : number , toolCapabilities : ToolCapabilities , dir : Vec3 ) : void ;
right_click ( clicker : ObjectRef ) : void ;
get_hp ( ) : number ;
set_hp ( hp : number , reason : HPChangeReasonType ) : void ;
get_inventory ( ) : InvRef ;
get_wield_list ( ) : string ;
get_wield_index ( ) : number ;
get_wielded_item ( ) : ItemStackObject ;
set_wielded_item ( item : ItemStackObject ) : boolean ;
get_armor_groups ( ) : { string : number ; } ;
set_armor_groups ( groups : { [ id : string ] : number ; } ) : void ;
get_animation ( ) : Array < Vec2 | number > ;
set_animation ( frameRange : Vec2 , frameSpeed : number , frameBlend : number , loop : boolean ) : void ;
set_animation_frame_speed ( speed : number ) : void ;
set_attach ( parent : ObjectRef , bone : string , position : Vec3 , rotation : Vec3 , forcedVisible : boolean ) : void ;
get_attach ( ) : AttachRef | void ;
get_children ( ) : ObjectRef [ ] ;
set_detach ( ) : void ;
2024-04-19 01:37:18 -04:00
set_bone_override ( bone : string , property : BoneOverride | null ) : void ;
2024-04-19 01:48:26 -04:00
get_bone_override ( bone : string ) : BoneOverride ;
get_bone_overrides ( ) : { [ key : string ] : BoneOverride ; } ;
2024-04-19 01:15:48 -04:00
set_properties ( objectPropertiesTable : ObjectProperties ) : void ;
get_properties ( ) : ObjectProperties ;
is_player ( ) : boolean ;
get_nametag_attributes ( ) : NametagAttributes ;
set_nametag_attributes ( attributes : NametagAttributes ) : void ;
remove ( ) : void ;
set_velocity ( velocity : Vec3 ) : void ;
set_acceleration ( acceleration : Vec3 ) : void ;
get_acceleration ( ) : Vec3 ;
set_rotation ( rotation : Vec3 ) : void ;
get_rotation ( ) : Vec3 ;
set_yaw ( yaw : number ) : void ;
get_yaw ( ) : number ;
set_texture_mod ( mod : string ) : void ;
get_texture_mod ( ) : string ;
set_sprite ( startFrame : Vec2 , numberOfFrames : number , frameLength : number , selectXByCamera : boolean ) : void ;
name : string ;
get_luaentity ( ) : LuaEntity ;
get_player_name ( ) : string ;
get_look_dir ( ) : Vec3 ;
get_look_vertical ( ) : number ;
get_look_horizontal ( ) : number ;
set_look_vertical ( radians : number ) : void ;
set_look_horizontal ( radians : number ) : void ;
get_look_pitch ( ) : number ;
get_look_yaw ( ) : number ;
set_look_pitch ( radians : number ) : void ;
set_look_yaw ( radians : number ) : void ;
get_breath ( ) : number ;
set_breath ( value : number ) : void ;
set_fov ( fov : number , isMultiplier : boolean , transitionTime : number ) : void ;
get_fov ( ) : number ;
get_meta ( ) : MetaRef ;
set_inventory_formspec ( formSpec : string ) : void ;
get_inventory_formspec ( ) : string ;
set_formspec_prepend ( formSpec : string ) : void ;
get_formspec_prepend ( ) : string ;
get_player_control ( ) : PlayerControl ;
get_player_control_bits ( ) : number ;
set_physics_override ( override : PhysicsOverride ) : void ;
get_physics_override ( ) : PhysicsOverride ;
hud_add ( definition : HudDefinition ) : number ;
hud_remove ( id : number ) : void ;
hud_change ( id : number , stat : HudElementType , value : any ) : void ;
hud_get ( id : number ) : HudDefinition ;
hud_set_flags ( flags : HudFlags ) : void ;
hud_get_flags ( ) : HudFlags ;
hud_set_hotbar_itemcount ( count : number ) : void ;
hud_get_hotbar_itemcount ( ) : number ;
hud_set_hotbar_image ( textureName : string ) : void ;
hud_get_hotbar_image ( ) : string ;
hud_set_hotbar_selected_image ( textureName : string ) : void ;
hud_get_hotbar_selected_image ( ) : string ;
set_minimap_modes ( mode : MinimapModes , selectedMode : number ) : void ;
set_sky ( parameters : SkyParameters ) : void ;
get_sky ( asTable : true ) : SkyParameters ;
set_sun ( parameters : SunParameters ) : void ;
get_sun ( ) : SunParameters ;
set_moon ( parameters : MoonParameters ) : void ;
get_moon ( ) : MoonParameters ;
set_stars ( parameters : StarParameters ) : void ;
get_stars ( ) : StarParameters ;
set_clouds ( parameters : CloudParameters ) : void ;
get_clouds ( ) : CloudParameters ;
override_day_night_ratio ( ratio : number | void ) : void ;
get_day_night_ratio ( ) : number | void ;
set_local_animation ( idle : Vec2 , walk : Vec2 , dig : Vec2 , walkWhileDig : Vec2 , frameSpeed : number ) : void ;
get_local_animation ( ) : [ Vec2 , Vec2 , Vec2 , Vec2 , number ] ;
set_eye_offset ( firstPerson : Vec3 , thirdPersonBack : Vec3 , thirdPersonFront : Vec3 ) : void ;
get_eye_offset ( ) : [ Vec3 , Vec3 , Vec3 ] ;
send_mapblock ( blockPos : Vec3 ) : boolean ;
set_lighting ( definition : LightingDefinition ) : void ;
get_lighting ( ) : LightingDefinition ;
respawn ( ) : void ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface PcgRandomObject {
2024-04-19 01:15:48 -04:00
next ( ) : number ;
next ( min : number , max : number ) : number ;
rand_normal_dist ( min : number , max : number , trials : number ) : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface PerlinNoiseObject {
2024-04-19 01:15:48 -04:00
get_2d ( position : Vec2 ) : number ;
get_3d ( position : Vec3 ) : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface PerlinNoiseMapObject {
2024-04-19 01:15:48 -04:00
get_2d_map ( pos : Vec2 ) : number [ ] [ ] ;
get_3d_map ( pos : Vec3 ) : number [ ] [ ] [ ] ;
get_2d_map_flat ( pos : Vec2 , buffer : number [ ] ) : number [ ] ;
get_3d_map_flat ( pos : Vec3 , buffer : number [ ] ) : number [ ] ;
calc_2d_map ( pos : Vec2 ) : void ;
calc_3d_map ( pos : Vec3 ) : void ;
get_map_slice ( sliceOffset : Vec3 , sliceSize : Vec3 , buffer : number [ ] ) : number [ ] ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface PseudoRandomObject {
2024-04-19 01:15:48 -04:00
next ( ) : number ;
next ( min : number , max : number ) : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface PhysicsOverride {
2024-04-19 01:15:48 -04:00
speed : number ;
jump : number ;
gravity : number ;
speed_climb : number ;
speed_crouch : number ;
liquid_fluidity : number ;
liquid_fluidity_smooth : number ;
liquid_sink : number ;
acceleration_default : number ;
acceleration_air : number ;
sneak : boolean ;
sneak_glitch : boolean ;
new_move : boolean ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface PlayerControl {
2024-04-19 01:15:48 -04:00
up : boolean ;
down : boolean ;
left : boolean ;
right : boolean ;
jump : boolean ;
aux1 : boolean ;
sneak : boolean ;
dig : boolean ;
place : boolean ;
LMB : boolean ;
RMB : boolean ;
zoom : boolean ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface SkyParametersColor {
2024-04-19 01:15:48 -04:00
day_sky : DynamicColorSpec ;
day_horizon : DynamicColorSpec ;
dawn_sky : DynamicColorSpec ;
dawn_horizon : DynamicColorSpec ;
nigh_sky : DynamicColorSpec ;
night_horizon : DynamicColorSpec ;
indoors : DynamicColorSpec ;
fog_sun_tint : DynamicColorSpec ;
fog_moon_tint : DynamicColorSpec ;
fog_tint_type : SkyParametersFogTintType ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface SkyParametersFog {
2024-04-19 01:15:48 -04:00
fog_distance : number ;
fog_start : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface SkyParameters {
2024-04-19 01:15:48 -04:00
base_color : DynamicColorSpec ;
body_orbit_tilt : number ;
type : SkyParametersType ;
textures : string [ ] ;
clouds : boolean ;
sky_color : SkyParametersColor ;
fog : SkyParametersFog ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface SunParameters {
2024-04-19 01:15:48 -04:00
visible : boolean ;
texture : string ;
tonemap : string ;
sunrise : string ;
sunrise_visible : boolean ;
scale : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface MoonParameters {
2024-04-19 01:15:48 -04:00
visible : boolean ;
texture : string ;
tonemap : string ;
scale : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface StarParameters {
2024-04-19 01:15:48 -04:00
visible : boolean ;
day_opacity : number ;
count : number ;
star_color : DynamicColorSpec ;
scale : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface CloudParameters {
2024-04-19 01:15:48 -04:00
density : number ;
color : DynamicColorSpec ;
ambient : DynamicColorSpec ;
height : number ;
thickness : number ;
speed : Vec2 ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface LightShadowsSpec {
2024-04-19 01:15:48 -04:00
intensity : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface LightExposureSpec {
2024-04-19 01:15:48 -04:00
luminance_min : number ;
luminance_max : number ;
exposure_correction : number ;
speed_dark_bright : number ;
speed_bright_dark : number ;
center_weight_power : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface LightingDefinition {
2024-04-19 01:15:48 -04:00
saturation? : number ;
shadows? : LightShadowsSpec ;
exposure? : LightExposureSpec ;
2023-11-13 03:10:31 -05:00
}
2024-04-19 01:15:48 -04:00
type CollisionBox = Array < number > ;
2023-11-13 03:10:31 -05:00
2024-04-15 03:04:44 -04:00
interface ObjectProperties {
2024-04-19 01:15:48 -04:00
hp_max? : number ;
breath_max? : number ;
zoom_fov? : number ;
eye_height? : number ;
physical? : boolean ;
wield_item? : string ;
collide_with_objects? : boolean ;
collisionbox? : CollisionBox ;
selectionbox? : number [ ] ;
pointable? : boolean ;
visual? : EntityVisual ;
visual_size? : Vec3 | Vec2 ;
mesh? : string ;
textures? : string [ ] ;
colors? : DynamicColorSpec [ ] ;
use_texture_alpha? : boolean ;
spritediv? : Vec2 ;
initial_sprite_basepos? : Vec2 ;
is_visible? : boolean ;
makes_footstep_sound? : boolean ;
automatic_rotate? : number ;
stepheight? : number ;
automatic_face_movement_dir? : number ;
automatic_face_movement_max_rotation_per_sec? : number ;
backface_culling? : boolean ;
glow? : number ;
nametag? : string ;
nametag_color? : ColorSpec ;
nametag_bgcolor? : ColorSpec ;
infotext? : string ;
static_save? : boolean ;
damage_texture_modifier? : string ;
shaded? : boolean ;
show_on_minimap? : boolean ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface LuaEntity {
2024-04-19 01:15:48 -04:00
__index? : LuaEntity ;
initial_properties? : ObjectProperties ;
name : string ;
object : ObjectRef ;
on_activate ? ( staticData : string , delta : number ) : void ;
on_deactivate ? ( removal : boolean ) : void ;
on_step ? ( delta : number , moveResult : MoveResult ) : void ;
on_punch ? ( puncher : ObjectRef , timeFromLastPunch : number , toolCapabilities : ToolCapabilities , dir : Vec3 , damage : number ) : void ;
on_death ? ( killer : ObjectRef ) : void ;
on_rightclick ? ( clicker : ObjectRef ) : void ;
on_attach_child ? ( child : ObjectRef ) : void ;
on_detach_child ? ( child : ObjectRef ) : void ;
on_detach ? ( parent : ObjectRef ) : void ;
get_staticdata ? ( ) : string ;
2023-11-13 03:10:31 -05:00
}
2023-11-13 20:54:35 -05:00
2024-04-15 03:04:44 -04:00
interface MinimapModes {
2024-04-19 01:15:48 -04:00
type : MinimapType ;
label : string ;
size : number ;
texture : string ;
scale : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface HudFlags {
2024-04-19 01:15:48 -04:00
hotbar : boolean ;
healthbar : boolean ;
crosshair : boolean ;
wielditem : boolean ;
breathbar : boolean ;
minimap : boolean ;
minimap_radar : boolean ;
basic_debug : boolean ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface HudDefinition {
2024-04-19 01:15:48 -04:00
hud_elem_type : HudElementType ;
position : Vec2 ;
name : string ;
scale : Vec2 ;
text : string ;
text2 : string ;
number : number ;
item : number ;
direction : number ;
alignment : Vec2 ;
offset : Vec2 ;
world_pos : Vec3 ;
size : Vec2 ;
z_index : number ;
style : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface TileAnimationDefinition {
2024-04-19 01:15:48 -04:00
type ? : TileAnimationType ;
aspect_w? : number ;
aspect_h? : number ;
length? : number ;
frames_w? : number ;
frames_h? : number ;
frame_length? : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface Rollback {
2024-04-19 01:15:48 -04:00
actor : string ;
pos : Vec3 ;
time : number ;
oldnode : string ;
newnode : string ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface Job {
2024-04-19 01:15:48 -04:00
cancel ( ) : void ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface DynamicAddMediaOptions {
2024-04-19 01:15:48 -04:00
filepath : string ;
to_player : string ;
ephemeral : boolean ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface ParticleBounceDefinition {
2024-04-19 01:15:48 -04:00
min : number ;
max : number ;
bias : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface ParticleDefinition {
2024-04-19 01:15:48 -04:00
pos : Vec3 ;
velocity : Vec3 ;
acceleration : Vec3 ;
expirationtime : number ;
size : number ;
collisiondetection : boolean ;
collision_removal : boolean ;
object_collision : boolean ;
vertical : boolean ;
texture : string ;
playername : string ;
animation : TileAnimationDefinition ;
glow : number ;
node : NodeTable ;
node_tile : NodeSoundSpec ;
drag : Vec3 ;
bounce : ParticleBounceDefinition ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface ParticleSpawnerTweenDefinition extends Array < number | ParticleSpawnerRangeDefinition > {
2023-11-13 03:10:31 -05:00
// {number | ParticleSpawnerRangeDefinition}
2024-04-19 01:15:48 -04:00
style : ParticleSpawnerTweenStyle ;
reps : number ;
start : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface ParticleSpawnerRangeDefinition {
2024-04-19 01:15:48 -04:00
min : Vec3 ;
max : Vec3 ;
bias : number ;
pos_tween : ParticleSpawnerTweenDefinition ;
x : number ;
y : number ;
z : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
2024-04-19 01:15:48 -04:00
type ParticleSpawnerTextureScaleTween = Array < Vec2 > ;
2024-04-15 03:04:44 -04:00
interface ParticleSpawnerTextureDefinition {
2024-04-19 01:15:48 -04:00
name : string ;
alpha : number ;
alpha_tween : number [ ] ;
scale : number | Vec2 ;
scale_tween : ParticleSpawnerTextureScaleTween ;
blend : ParticleSpawnerTextureBlend ;
animation : TileAnimationDefinition ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface TexturePoolComponentTweenDefinition extends Array < number > {
2024-04-19 01:15:48 -04:00
style : ParticleSpawnerTweenStyle ;
reps : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface TexturePoolComponentDefinition {
2024-04-19 01:15:48 -04:00
name : string ;
fade : TexturePoolComponentFade ;
alpha : number ;
scale : number ;
animation : TileAnimationDefinition ;
alpha_tween : TexturePoolComponentTweenDefinition ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
2024-04-19 01:15:48 -04:00
type ParticleSpawnerTexturePoolDefinition = Array < string | TexturePoolComponentDefinition > ;
2024-04-15 03:04:44 -04:00
interface ParticleSpawnerAttractionDefinition {
2024-04-19 01:15:48 -04:00
kind : ParticleSpawnerAttractionType ;
strength : Vec2 ;
origin : Vec3 ;
direction : Vec3 ;
origin_attached : ObjectRef ;
direction_attached : ObjectRef ;
die_on_contact : boolean ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface ParticleSpawnerDefinition {
2024-04-19 01:15:48 -04:00
maxpos : Vec3 ;
minpos : Vec3 ;
pos : number | ParticleSpawnerRangeDefinition ;
vel : Vec3RangeBias ;
acc : Vec3RangeBias ;
jitter : Vec3RangeBias ;
drag : Vec3RangeBias ;
bounce : Vec3RangeBias ;
exptime : Vec2 ;
attract : ParticleSpawnerAttractionDefinition ;
radius : Vec3RangeBias ;
pos_tween : ParticleSpawnerTweenDefinition ;
texture : string | ParticleSpawnerTextureDefinition ;
texpool : ParticleSpawnerTexturePoolDefinition ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface AreaStoreArea {
2024-04-19 01:15:48 -04:00
min : Vec3 ;
max : Vec3 ;
data : string ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface AreaStoreCacheDefinition {
2024-04-19 01:15:48 -04:00
enabled : boolean ;
block_radius : number ;
limit : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface Vec2 {
2024-04-19 01:15:48 -04:00
x : number ;
y : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface Vec3 extends Vec2 {
2024-04-19 01:15:48 -04:00
__eq ( other : Vec3 ) : boolean ;
__unm ( ) : Vec3 ;
__add ( other : Vec3 ) : Vec3 ;
__sub ( other : Vec3 ) : Vec3 ;
__mul ( other : Vec3 ) : Vec3 ;
__div ( other : Vec3 ) : Vec3 ;
2023-11-13 03:10:31 -05:00
2024-04-19 01:15:48 -04:00
z : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface Vec3RangeBias {
2024-04-19 01:15:48 -04:00
min : Vec3 ;
max : Vec3 ;
bias : Vec3 ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface RGBA {
2024-04-19 01:15:48 -04:00
r : number ;
g : number ;
b : number ;
a : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface DigParamsReturn {
2024-04-19 01:15:48 -04:00
diggable : boolean ;
time : number ;
wear : number ;
groups : string [ ] ;
tool_capabilities : ToolCapabilities ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface HitParamsReturn {
2024-04-19 01:15:48 -04:00
hp : number ;
wear : number ;
groups : string [ ] ;
tool_capabilities : ToolCapabilities ;
time_from_last_punch : number ;
2023-11-13 03:10:31 -05:00
}
2024-04-15 03:04:44 -04:00
interface NodeTimerObject {
2024-04-19 01:15:48 -04:00
set ( timeOut : number , elapsed : number ) : void ;
start ( timeOut : number ) : void ;
stop ( ) : void ;
get_timeout ( ) : number ;
get_elapsed ( ) : number ;
is_started ( ) : boolean ;
2023-11-13 03:10:31 -05:00
}
2024-04-19 01:15:48 -04:00
function dump ( object : any , name? : string , dumped? : any [ ] ) : string ;
2023-11-13 04:01:47 -05:00
2024-04-19 01:15:48 -04:00
function dump2 ( object : any , dumped? : any [ ] ) : string ;
2023-11-13 04:01:47 -05:00
2024-04-15 03:04:44 -04:00
interface Translator {
2024-04-19 01:15:48 -04:00
__call ( . . . string : string [ ] ) : string ;
2023-11-13 04:01:47 -05:00
}
2023-11-12 21:14:35 -05:00
2023-11-13 02:22:59 -05:00
2023-11-13 18:50:00 -05:00
// You can just bolt onto namespaces apparently!
2024-04-15 03:04:44 -04:00
namespace math {
2024-04-19 01:15:48 -04:00
function hypot ( x : number , y : number ) : number ;
function sign ( x : number , tolerance : number ) : number ;
function factorial ( x : number ) : number ;
function round ( x : number ) : number ;
2024-04-17 05:51:06 -04:00
// Clamp is a bolt on created in
2024-04-19 01:15:48 -04:00
function clamp ( min : number , max : number , input : number ) : number ;
2023-11-13 18:50:00 -05:00
}
2023-11-13 02:22:59 -05:00
2024-04-15 03:04:44 -04:00
namespace string {
2024-04-19 01:15:48 -04:00
function split ( str : string , separator : string , includeEmpty : box , maxSplits : number , sepIsPattern : boolean ) : string ;
function trim ( str : string ) : string ;
2023-11-13 18:50:00 -05:00
}
2024-04-15 03:04:44 -04:00
namespace table {
2024-04-19 01:15:48 -04:00
function copy ( table : LuaTable ) : LuaTable ;
function indexof ( list : LuaTable , val : any ) : number ;
function insert_all ( table : LuaTable , otherTable : LuaTable ) : LuaTable ;
function key_value_swap ( t : LuaTable ) : LuaTable ;
function shuffle ( table : LuaTable , from : number , to : number , randomFunc : ( ) = > number ) : LuaTable ;
2023-11-13 18:50:00 -05:00
}
}
2023-11-13 02:22:59 -05:00
2024-04-17 05:35:54 -04:00
// Very annoying enums.
2024-04-17 05:57:35 -04:00
// Why do they point to themselves? I dunno, it works though.
2024-04-17 06:23:07 -04:00
//! If you don't have your mod depend on the utility library, this will just blow up when you try to use it. :D
2024-04-17 05:35:54 -04:00
declare interface EntityVisual {
2024-04-17 05:57:35 -04:00
cube : EntityVisual ,
sprite : EntityVisual ,
upright_sprite : EntityVisual ,
mesh : EntityVisual ,
wielditem : EntityVisual ,
2024-04-19 01:15:48 -04:00
item : EntityVisual ;
2024-04-17 05:35:54 -04:00
}
declare interface SchematicRotation {
2024-04-17 05:57:35 -04:00
zero : SchematicRotation ,
ninety : SchematicRotation ,
oneEighty : SchematicRotation ,
twoSeventy : SchematicRotation ,
2024-04-19 01:15:48 -04:00
random : SchematicRotation ;
2024-04-17 05:35:54 -04:00
}
declare interface SchematicPlacementFlag {
2024-04-17 05:57:35 -04:00
place_center_x : SchematicPlacementFlag ,
place_center_y : SchematicPlacementFlag ,
2024-04-19 01:15:48 -04:00
place_center_z : SchematicPlacementFlag ;
2024-04-17 05:35:54 -04:00
}
declare interface SchematicFormat {
2024-04-17 05:57:35 -04:00
mts : SchematicFormat ,
2024-04-19 01:15:48 -04:00
lua : SchematicFormat ;
2024-04-17 05:35:54 -04:00
}
declare interface SchematicSerializationOption {
2024-04-17 05:57:35 -04:00
lua_use_comments : SchematicSerializationOption ,
2024-04-19 01:15:48 -04:00
lua_num_indent_spaces : SchematicSerializationOption ;
2024-04-17 05:35:54 -04:00
}
declare interface SchematicReadOptionYSliceOption {
2024-04-17 05:57:35 -04:00
none : SchematicReadOptionYSliceOption ,
low : SchematicReadOptionYSliceOption ,
2024-04-19 01:15:48 -04:00
all : SchematicReadOptionYSliceOption ;
2024-04-17 05:35:54 -04:00
}
declare interface HTTPRequestMethod {
2024-04-17 05:57:35 -04:00
GET : HTTPRequestMethod ,
POST : HTTPRequestMethod ,
PUT : HTTPRequestMethod ,
2024-04-19 01:15:48 -04:00
DELETE : HTTPRequestMethod ;
2024-04-17 05:35:54 -04:00
}
declare interface OreType {
2024-04-17 05:57:35 -04:00
scatter : OreType ,
sheet : OreType ,
puff : OreType ,
blob : OreType ,
vein : OreType ,
2024-04-19 01:15:48 -04:00
stratum : OreType ;
2024-04-17 05:35:54 -04:00
}
declare interface OreFlags {
2024-04-17 05:57:35 -04:00
puff_cliffs : OreFlags ,
2024-04-19 01:15:48 -04:00
puff_additive_composition : OreFlags ;
2024-04-17 05:35:54 -04:00
}
declare interface NoiseFlags {
2024-04-17 05:57:35 -04:00
defaults : NoiseFlags ,
eased : NoiseFlags ,
2024-04-19 01:15:48 -04:00
absvalue : NoiseFlags ;
2024-04-17 05:35:54 -04:00
}
declare interface DecorationType {
2024-04-17 05:57:35 -04:00
simple : DecorationType ,
2024-04-19 01:15:48 -04:00
schematic : DecorationType ;
2024-04-17 05:35:54 -04:00
}
declare interface DecorationFlags {
2024-04-17 05:57:35 -04:00
liquid_surface : DecorationFlags ,
force_placement : DecorationFlags ,
all_floors : DecorationFlags ,
all_ceilings : DecorationFlags ,
place_center_x : DecorationFlags ,
place_center_y : DecorationFlags ,
2024-04-19 01:15:48 -04:00
place_center_z : DecorationFlags ;
2024-04-17 05:35:54 -04:00
}
declare interface ParamType1 {
2024-04-17 05:57:35 -04:00
light : ParamType1 ,
2024-04-19 01:15:48 -04:00
none : ParamType1 ;
2024-04-17 05:35:54 -04:00
}
declare interface ParamType2 {
2024-04-17 05:57:35 -04:00
flowingliquid : ParamType2 ,
wallmounted : ParamType2 ,
facedir : ParamType2 ,
fourdir : ParamType2 ,
leveled : ParamType2 ,
degrotate : ParamType2 ,
meshoptions : ParamType2 ,
color : ParamType2 ,
colorfacedir : ParamType2 ,
color4dir : ParamType2 ,
colorwallmounted : ParamType2 ,
glasslikeliquidlevel : ParamType2 ,
2024-04-19 01:15:48 -04:00
colordegrotate : ParamType2 ;
2024-04-17 05:35:54 -04:00
}
declare interface Drawtype {
2024-04-17 05:57:35 -04:00
normal : Drawtype ,
airlike : Drawtype ,
liquid : Drawtype ,
flowingliquid : Drawtype ,
glasslike : Drawtype ,
glasslike_framed : Drawtype ,
glasslike_framed_optional : Drawtype ,
allfaces : Drawtype ,
allfaces_optional : Drawtype ,
torchlike : Drawtype ,
signlike : Drawtype ,
plantlike : Drawtype ,
firelike : Drawtype ,
fencelike : Drawtype ,
raillike : Drawtype ,
nodebox : Drawtype ,
mesh : Drawtype ,
2024-04-19 01:15:48 -04:00
plantlike_rooted : Drawtype ;
2024-04-17 05:35:54 -04:00
}
declare interface Nodeboxtype {
2024-04-17 05:57:35 -04:00
regular : Nodeboxtype ,
fixed : Nodeboxtype ,
wallmounted : Nodeboxtype ,
2024-04-19 01:15:48 -04:00
connected : Nodeboxtype ;
2024-04-17 05:35:54 -04:00
}
declare interface LogLevel {
2024-04-17 05:57:35 -04:00
none : LogLevel ,
error : LogLevel ,
warning : LogLevel ,
action : LogLevel ,
info : LogLevel ,
2024-04-19 01:15:48 -04:00
verbose : LogLevel ;
2024-04-17 05:35:54 -04:00
}
declare interface TextureAlpha {
2024-04-17 05:57:35 -04:00
opaque : TextureAlpha ,
clip : TextureAlpha ,
2024-04-19 01:15:48 -04:00
blend : TextureAlpha ;
2024-04-17 05:35:54 -04:00
}
declare interface LiquidType {
2024-04-17 05:57:35 -04:00
none : LiquidType ,
source : LiquidType ,
2024-04-19 01:15:48 -04:00
flowing : LiquidType ;
2024-04-17 05:35:54 -04:00
}
declare interface NodeBoxConnections {
2024-04-17 05:57:35 -04:00
top : NodeBoxConnections ,
bottom : NodeBoxConnections ,
front : NodeBoxConnections ,
left : NodeBoxConnections ,
back : NodeBoxConnections ,
2024-04-19 01:15:48 -04:00
right : NodeBoxConnections ;
2024-04-17 05:35:54 -04:00
}
declare interface CraftRecipeType {
2024-04-17 05:57:35 -04:00
shapeless : CraftRecipeType ,
toolrepair : CraftRecipeType ,
cooking : CraftRecipeType ,
2024-04-19 01:15:48 -04:00
fuel : CraftRecipeType ;
2024-04-17 05:35:54 -04:00
}
declare interface CraftCheckType {
2024-04-17 05:57:35 -04:00
normal : CraftCheckType ,
cooking : CraftCheckType ,
2024-04-19 01:15:48 -04:00
fuel : CraftCheckType ;
2024-04-17 05:35:54 -04:00
}
declare interface HPChangeReasonType {
2024-04-17 05:57:35 -04:00
set_hp : HPChangeReasonType ,
punch : HPChangeReasonType ,
fall : HPChangeReasonType ,
node_damage : HPChangeReasonType ,
drown : HPChangeReasonType ,
2024-04-19 01:15:48 -04:00
respawn : HPChangeReasonType ;
2024-04-17 05:35:54 -04:00
}
declare interface CheatType {
2024-04-17 05:57:35 -04:00
moved_too_fast : CheatType ,
interacted_too_far : CheatType ,
interacted_with_self : CheatType ,
interacted_while_dead : CheatType ,
finished_unknown_dig : CheatType ,
dug_unbreakable : CheatType ,
2024-04-19 01:15:48 -04:00
dug_too_fast : CheatType ;
2024-04-17 05:35:54 -04:00
}
declare interface ClearObjectsOptions {
2024-04-17 05:57:35 -04:00
full : ClearObjectsOptions ,
2024-04-19 01:15:48 -04:00
quick : ClearObjectsOptions ;
2024-04-17 05:35:54 -04:00
}
declare interface GenNotifyFlags {
2024-04-17 05:57:35 -04:00
dungeon : GenNotifyFlags ,
temple : GenNotifyFlags ,
cave_begin : GenNotifyFlags ,
cave_end : GenNotifyFlags ,
large_cave_begin : GenNotifyFlags ,
large_cave_end : GenNotifyFlags ,
2024-04-19 01:15:48 -04:00
decoration : GenNotifyFlags ;
2024-04-17 05:35:54 -04:00
}
declare interface SearchAlgorithm {
2024-04-17 05:57:35 -04:00
aStarNoprefetch : SearchAlgorithm ,
aStar : SearchAlgorithm ,
2024-04-19 01:15:48 -04:00
dijkstra : SearchAlgorithm ;
2024-04-17 05:35:54 -04:00
}
declare interface SkyParametersType {
2024-04-17 05:57:35 -04:00
regular : SkyParametersType ,
skybox : SkyParametersType ,
2024-04-19 01:15:48 -04:00
plain : SkyParametersType ;
2024-04-17 05:35:54 -04:00
}
declare interface SkyParametersFogTintType {
2024-04-17 05:57:35 -04:00
custom : SkyParametersFogTintType ,
2024-04-19 01:15:48 -04:00
default : SkyParametersFogTintType ;
2024-04-17 05:35:54 -04:00
}
declare interface MinimapType {
2024-04-17 05:57:35 -04:00
off : MinimapType ,
surface : MinimapType ,
radar : MinimapType ,
2024-04-19 01:15:48 -04:00
texture : MinimapType ;
2024-04-17 05:35:54 -04:00
}
declare interface HudElementType {
2024-04-17 05:57:35 -04:00
image : HudElementType ,
text : HudElementType ,
statbar : HudElementType ,
inventory : HudElementType ,
waypoint : HudElementType ,
image_waypoint : HudElementType ,
compass : HudElementType ,
2024-04-19 01:15:48 -04:00
minimap : HudElementType ;
2024-04-17 05:35:54 -04:00
}
declare interface HudReplaceBuiltinOption {
2024-04-17 05:57:35 -04:00
breath : HudReplaceBuiltinOption ,
2024-04-19 01:15:48 -04:00
health : HudReplaceBuiltinOption ;
2024-04-17 05:35:54 -04:00
}
declare interface ParseRelativeNumberArgument {
2024-04-17 05:57:35 -04:00
number : ParseRelativeNumberArgument ,
relativeToPlus : ParseRelativeNumberArgument ,
2024-04-19 01:15:48 -04:00
relativeTo : ParseRelativeNumberArgument ;
2024-04-17 05:35:54 -04:00
}
declare interface CompressionMethod {
2024-04-17 05:57:35 -04:00
deflate : CompressionMethod ,
2024-04-19 01:15:48 -04:00
zstd : CompressionMethod ;
2024-04-17 05:35:54 -04:00
}
declare interface RotateAndPlaceOrientationFlag {
2024-04-17 05:57:35 -04:00
invert_wall : RotateAndPlaceOrientationFlag ,
force_wall : RotateAndPlaceOrientationFlag ,
force_ceiling : RotateAndPlaceOrientationFlag ,
force_floor : RotateAndPlaceOrientationFlag ,
2024-04-19 01:15:48 -04:00
force_facedir : RotateAndPlaceOrientationFlag ;
2024-04-17 05:35:54 -04:00
}
declare interface BlockStatusCondition {
2024-04-17 05:57:35 -04:00
unknown : BlockStatusCondition ,
emerging : BlockStatusCondition ,
loaded : BlockStatusCondition ,
2024-04-19 01:15:48 -04:00
active : BlockStatusCondition ;
2024-04-17 05:35:54 -04:00
}
declare interface TileAnimationType {
2024-04-17 05:57:35 -04:00
vertical_frames : TileAnimationType ,
2024-04-19 01:15:48 -04:00
sheet_2d : TileAnimationType ;
2024-04-17 05:35:54 -04:00
}
declare interface ParticleSpawnerTweenStyle {
2024-04-17 05:57:35 -04:00
fwd : ParticleSpawnerTweenStyle ,
rev : ParticleSpawnerTweenStyle ,
pulse : ParticleSpawnerTweenStyle ,
2024-04-19 01:15:48 -04:00
flicker : ParticleSpawnerTweenStyle ;
2024-04-17 05:35:54 -04:00
}
declare interface ParticleSpawnerTextureBlend {
2024-04-17 05:57:35 -04:00
alpha : ParticleSpawnerTextureBlend ,
add : ParticleSpawnerTextureBlend ,
screen : ParticleSpawnerTextureBlend ,
2024-04-19 01:15:48 -04:00
sub : ParticleSpawnerTextureBlend ;
2024-04-17 05:35:54 -04:00
}
declare interface ParticleSpawnerAttractionType {
2024-04-17 05:57:35 -04:00
none : ParticleSpawnerAttractionType ,
point : ParticleSpawnerAttractionType ,
line : ParticleSpawnerAttractionType ,
2024-04-19 01:15:48 -04:00
plane : ParticleSpawnerAttractionType ;
2024-04-17 05:35:54 -04:00
}
declare interface AreaStoreType {
2024-04-19 01:15:48 -04:00
libSpatial : AreaStoreType ;
2024-04-17 05:35:54 -04:00
}
declare interface TexturePoolComponentFade {
2024-04-17 05:57:35 -04:00
in : TexturePoolComponentFade ,
2024-04-19 01:15:48 -04:00
out : TexturePoolComponentFade ;
2024-04-17 05:35:54 -04:00
}
2023-11-13 03:10:31 -05:00
declare global {
2024-04-19 01:15:48 -04:00
const minetest : minetest ;
const EntityVisual : EntityVisual ;
const SchematicRotation : SchematicRotation ;
const SchematicPlacementFlag : SchematicPlacementFlag ;
const SchematicFormat : SchematicFormat ;
const SchematicSerializationOption : SchematicSerializationOption ;
const SchematicReadOptionYSliceOption : SchematicReadOptionYSliceOption ;
const HTTPRequestMethod : HTTPRequestMethod ;
const OreType : OreType ;
const OreFlags : OreFlags ;
const NoiseFlags : NoiseFlags ;
const DecorationType : DecorationType ;
const DecorationFlags : DecorationFlags ;
const ParamType1 : ParamType1 ;
const ParamType2 : ParamType2 ;
const Drawtype : Drawtype ;
const Nodeboxtype : Nodeboxtype ;
const LogLevel : LogLevel ;
const TextureAlpha : TextureAlpha ;
const LiquidType : LiquidType ;
const NodeBoxConnections : NodeBoxConnections ;
const CraftRecipeType : CraftRecipeType ;
const CraftCheckType : CraftCheckType ;
const HPChangeReasonType : HPChangeReasonType ;
const CheatType : CheatType ;
const ClearObjectsOptions : ClearObjectsOptions ;
const GenNotifyFlags : GenNotifyFlags ;
const SearchAlgorithm : SearchAlgorithm ;
const SkyParametersType : SkyParametersType ;
const SkyParametersFogTintType : SkyParametersFogTintType ;
const MinimapType : MinimapType ;
const HudElementType : HudElementType ;
const HudReplaceBuiltinOption : HudReplaceBuiltinOption ;
const ParseRelativeNumberArgument : ParseRelativeNumberArgument ;
const CompressionMethod : CompressionMethod ;
const RotateAndPlaceOrientationFlag : RotateAndPlaceOrientationFlag ;
const BlockStatusCondition : BlockStatusCondition ;
const TileAnimationType : TileAnimationType ;
const ParticleSpawnerTweenStyle : ParticleSpawnerTweenStyle ;
const ParticleSpawnerTextureBlend : ParticleSpawnerTextureBlend ;
const ParticleSpawnerAttractionType : ParticleSpawnerAttractionType ;
const AreaStoreType : AreaStoreType ;
const TexturePoolComponentFade : TexturePoolComponentFade ;
2023-11-13 02:48:39 -05:00
}