bind high components and modules

This commit is contained in:
2019-11-14 05:51:38 +07:00
parent c1f593c567
commit b662dc3ae6
41 changed files with 1582 additions and 439 deletions

View File

@@ -0,0 +1,8 @@
---@class actor
local actor = {
---@type node
node = {}
}
---@type actor
_G.actor = _G.actor or actor

View File

@@ -0,0 +1,22 @@
---@class behaviour
local behaviour = {
---@type boolean
enabled = true,
---@type boolean
disabled = false,
---@type table
meta = {}
}
---@overload fun(self: behaviour)
---@param self behaviour
function behaviour.enable(self) end
---@overload fun(self: behaviour)
---@param self behaviour
function behaviour.disable(self) end
---@type behaviour
_G.behaviour = _G.behaviour or behaviour

View File

@@ -0,0 +1,31 @@
---@class camera
local camera = {
---@type boolean
enabled = true,
---@type boolean
disabled = false,
---@type integer
depth = 0,
---@type rect
viewport = rect.zero(),
---@type m4f
projection = m4f.identity(),
---@type color
background = color.white()
}
---@overload fun(self: camera)
---@param self camera
function camera.enable(self) end
---@overload fun(self: camera)
---@param self camera
function camera.disable(self) end
---@type camera
_G.camera = _G.camera or camera

View File

@@ -0,0 +1,38 @@
---@class flipbook_player
local flipbook_player = {
---@type number
time = 0,
---@type number
speed = 1,
---@type boolean
looped = false,
---@type boolean
stopped = true,
---@type boolean
playing = false,
---@type str_hash
sequence = str_hash.new(),
---@type flipbook_asset
flipbook = nil
}
---@overload fun(self: flipbook_player, time: number)
---@overload fun(self: flipbook_player, sequence: string)
---@overload fun(self: flipbook_player, sequence: str_hash)
---@param self flipbook_player
function flipbook_player.stop(self, ...) end
---@overload fun(self: flipbook_player, time: number)
---@overload fun(self: flipbook_player, sequence: string)
---@overload fun(self: flipbook_player, sequence: str_hash)
---@param self flipbook_player
function flipbook_player.play(self, ...) end
---@type flipbook_player
_G.flipbook_player = _G.flipbook_player or flipbook_player

View File

@@ -0,0 +1,53 @@
---@class label
local label = {
---@type string
text = "",
---@type font_asset
font = nil,
---@type color32
tint = color32.white(),
---@type label_haligns
halign = label.haligns.center,
---@type label_valigns
valign = label.valigns.baseline,
---@type number
leading = 1,
---@type number
tracking = 0,
---@type number
text_width = 0,
---@type number
glyph_dilate = 0,
---@type number
outline_width = 0,
---@type color32
outline_color = color32.white()
}
---@class label_haligns
label.haligns = {
left = "left",
center = "center",
right = "right"
}
---@class label_valigns
label.valigns = {
top = "top",
center = "center",
bottom = "bottom",
baseline = "baseline"
}
---@type label
_G.label = _G.label or label

View File

@@ -0,0 +1,8 @@
---@class model_renderer
local model_renderer = {
---@type model_asset
model = nil
}
---@type model_renderer
_G.model_renderer = _G.model_renderer or model_renderer

View File

@@ -0,0 +1,8 @@
---@class named
local named = {
---@type string
name = ""
}
---@type named
_G.named = _G.named or named

View File

@@ -0,0 +1,19 @@
---@class renderer
local renderer = {
---@type boolean
enabled = true,
---@type boolean
disabled = false
}
---@overload fun(self: renderer)
---@param self renderer
function renderer.enable(self) end
---@overload fun(self: renderer)
---@param self renderer
function renderer.disable(self) end
---@type renderer
_G.renderer = _G.renderer or renderer

View File

@@ -0,0 +1,22 @@
---@class scene
local scene = {
---@type boolean
enabled = true,
---@type boolean
disabled = false,
---@type integer
depth = 0
}
---@overload fun(self: scene)
---@param self scene
function scene.enable(self) end
---@overload fun(self: scene)
---@param self scene
function scene.disable(self) end
---@type scene
_G.scene = _G.scene or scene

View File

@@ -0,0 +1,226 @@
---@class spine_player
local spine_player = {
---@type spine_asset
spine = nil
}
---@param self spine_player
---@param name string
---@return boolean
function spine_player.skin(self, name) end
---@param self spine_player
---@param slot string
---@param name string
---@return boolean
function spine_player.attachment(self, slot, name) end
---@param self spine_player
---@param name string
---@return boolean
function spine_player.has_skin(self, name) end
---@param self spine_player
---@param name string
---@return boolean
function spine_player.has_animation(self, name) end
---@param self spine_player
---@param cmd spine_player_command
function spine_player.add_command(self, cmd) end
-- -----------------------------------------------------------------------------
--
-- events
--
-- -----------------------------------------------------------------------------
---@alias spine_player_event spine_player_custom_evt | spine_player_end_evt | spine_player_complete_evt
--
-- custom_evt
--
---@class spine_player_custom_evt
spine_player.custom_evt = {
---@type string
name = "",
---@type integer
int_value = 0,
---@type number
float_value = 0,
---@type string
string_value = ""
}
---@param name string
---@return spine_player_custom_evt
function spine_player.custom_evt.new(name) end
--
-- end_evt
--
---@class spine_player_end_evt
spine_player.end_evt = {
---@type string
message = ""
}
---@param message string
---@return spine_player_end_evt
function spine_player.end_evt.new(message) end
--
-- complete_evt
--
---@class spine_player_complete_evt
spine_player.complete_evt = {
---@type string
message = ""
}
---@param message string
---@return spine_player_complete_evt
function spine_player.complete_evt.new(message) end
-- -----------------------------------------------------------------------------
--
-- commands
--
-- -----------------------------------------------------------------------------
---@alias spine_player_command spine_player_clear_track_cmd | spine_player_set_anim_cmd | spine_player_add_anim_cmd | spine_player_set_empty_anim_cmd | spine_player_add_empty_anim_cmd
--
-- clear_track_cmd
--
---@class spine_player_clear_track_cmd
spine_player.clear_track_cmd = {
---@type integer
track = 0
}
---@param track integer
---@return spine_player_clear_track_cmd
function spine_player.clear_track_cmd.new(track) end
--
-- set_anim_cmd
--
---@class spine_player_set_anim_cmd
spine_player.set_anim_cmd = {
---@type integer
track = 0,
---@type string
name = "",
---@type boolean
loop = false,
---@type string
end_message = "",
---@type string
complete_message = ""
}
---@param track integer
---@param name string
---@return spine_player_set_anim_cmd
function spine_player.set_anim_cmd.new(track, name) end
--
-- add_anim_cmd
--
---@class spine_player_add_anim_cmd
spine_player.add_anim_cmd = {
---@type integer
track = 0,
---@type string
name = "",
---@type boolean
loop = false,
---@type number
delay = 0,
---@type string
end_message = "",
---@type string
complete_message = ""
}
---@param track integer
---@param name string
---@return spine_player_add_anim_cmd
function spine_player.add_anim_cmd.new(track, name) end
--
-- set_empty_anim_cmd
--
---@class spine_player_set_empty_anim_cmd
spine_player.set_empty_anim_cmd = {
---@type integer
track = 0,
---@type number
mix_duration = 0,
---@type string
end_message = "",
---@type string
complete_message = ""
}
---@param track integer
---@return spine_player_set_empty_anim_cmd
function spine_player.set_empty_anim_cmd.new(track) end
--
-- add_empty_anim_cmd
--
---@class spine_player_add_empty_anim_cmd
spine_player.add_empty_anim_cmd = {
---@type integer
track = 0,
---@type number
delay = 0,
---@type number
mix_duration = 0,
---@type string
end_message = "",
---@type string
complete_message = ""
}
---@param track integer
---@return spine_player_add_empty_anim_cmd
function spine_player.add_empty_anim_cmd.new(track) end
-- -----------------------------------------------------------------------------
--
-- globals
--
-- -----------------------------------------------------------------------------
---@type spine_player
_G.spine_player = _G.spine_player or spine_player

View File

@@ -0,0 +1,25 @@
---@class sprite_renderer
local sprite_renderer = {
---@type color32
tint = color32.white(),
---@type sprite_renderer_blendings
blending = sprite_renderer.blendings.normal,
---@type boolean
filtering = true,
---@type sprite_asset
sprite = nil
}
---@class sprite_renderer_blendings
sprite_renderer.blendings = {
normal = "normal",
additive = "additive",
multiply = "multiply",
screen = "screen"
}
---@type sprite_renderer
_G.sprite_renderer = _G.sprite_renderer or sprite_renderer

View File

@@ -2,17 +2,21 @@
local debug = {
}
---@param self debug
---@param message string
function debug:trace(message) end
function debug.trace(self, message) end
---@param self debug
---@param message string
function debug:warning(message) end
function debug.warning(self, message) end
---@param self debug
---@param message string
function debug:error(message) end
function debug.error(self, message) end
---@param self debug
---@param message string
function debug:fatal(message) end
function debug.fatal(self, message) end
---@type debug
_G.the_debug = _G.the_debug or debug

View File

@@ -6,10 +6,10 @@ local engine = {
---@type number
delta_time = 0,
---@type number
---@type integer
frame_rate = 0,
---@type number
---@type integer
frame_count = 0,
---@type number

View File

@@ -1,10 +1,10 @@
---@class input
local input = {
---@type mouse
mouse = {},
mouse = nil,
---@type keyboard
keyboard = {}
keyboard = nil
}
---@type input

View File

@@ -22,17 +22,20 @@ local keyboard = {
just_released_keys = {}
}
---@param self keyboard
---@param key string
---@return boolean
function keyboard:is_key_pressed(key) end
function keyboard.is_key_pressed(self, key) end
---@param self keyboard
---@param key string
---@return boolean
function keyboard:is_key_just_pressed(key) end
function keyboard.is_key_just_pressed(self, key) end
---@param self keyboard
---@param key string
---@return boolean
function keyboard:is_key_just_released(key) end
function keyboard.is_key_just_released(self, key) end
---@type keyboard
_G.the_keyboard = _G.the_keyboard or keyboard

View File

@@ -25,17 +25,20 @@ local mouse = {
just_released_buttons = {}
}
---@param self mouse
---@param button string
---@return boolean
function mouse:is_button_pressed(button) end
function mouse.is_button_pressed(self, button) end
---@param self mouse
---@param button string
---@return boolean
function mouse:is_button_just_pressed(button) end
function mouse.is_button_just_pressed(self, button) end
---@param self mouse
---@param button string
---@return boolean
function mouse:is_button_just_released(button) end
function mouse.is_button_just_released(self, button) end
---@type mouse
_G.the_mouse = _G.the_mouse or mouse

View File

@@ -34,13 +34,17 @@ local window = {
should_close = false
}
function window:hide() end
---@param self window
function window.hide(self) end
function window:show() end
---@param self window
function window.show(self) end
function window:restore() end
---@param self window
function window.restore(self) end
function window:minimize() end
---@param self window
function window.minimize(self) end
---@type window
_G.the_window = _G.the_window or window

View File

@@ -0,0 +1,47 @@
---@class gobject
local gobject = {
---@type boolean
alive = true,
---@type boolean
valid = true,
---@type actor
actor = nil,
---@type behaviour
behaviour = nil,
---@type camera
camera = nil,
---@type flipbook_player
flipbook_player = nil,
---@type label
label = nil,
---@type model_renderer
model_renderer = nil,
---@type named
named = nil,
---@type renderer
renderer = nil,
---@type scene
scene = nil,
---@type spine_player
spine_player = nil,
---@type sprite_renderer
sprite_renderer = nil
}
---@param self gobject
function gobject.destroy(self) end
---@type gobject
_G.gobject = _G.gobject or gobject

View File

@@ -0,0 +1,113 @@
---@class node
local node = {
---@type t3f
transform = t3f.identity(),
---@type v3f
translation = v3f.zero(),
---@type q4f
rotation = q4f.identity(),
---@type v3f
scale = v3f.unit(),
---@type m4f
local_matrix = m4f.identity(),
---@type m4f
world_matrix = m4f.identity(),
---@type node
root = nil,
---@type node
parent = nil,
---@type integer
child_count = 0,
---@type integer
child_count_recursive = 0,
---@type node
first_child = nil,
---@type node
last_child = nil,
---@type node
prev_sibling = nil,
---@type node
next_sibling = nil
}
---@param self node
---@return boolean
function node.remove_from_parent(self) end
---@param self node
---@return integer
function node.remove_all_children(self) end
---@param self node
---@param child node
---@return boolean
function node.add_child(self, child) end
---@param self node
---@param child node
---@return boolean
function node.add_child_to_back(self, child) end
---@param self node
---@param child node
---@return boolean
function node.add_child_to_front(self, child) end
---@param self node
---@param before node
---@param child node
---@return boolean
function node.add_child_before(self, before, child) end
---@param self node
---@param after node
---@param child node
---@return boolean
function node.add_child_after(self, after, child) end
---@param self node
---@param sibling node
---@return boolean
function node.add_sibling_before(self, sibling) end
---@param self node
---@param sibling node
---@return boolean
function node.add_sibling_after(self, sibling) end
---@param self node
---@param child node
---@return boolean
function node.remove_child(self, child) end
---@param self node
---@return boolean
function node.send_backward(self) end
---@param self node
---@return boolean
function node.bring_to_back(self) end
---@param self node
---@return boolean
function node.send_forward(self) end
---@param self node
---@return boolean
function node.bring_to_front(self) end
---@type node
_G.node = _G.node or node

View File

@@ -0,0 +1,15 @@
---@class world
local world = {
}
---@overload fun(): gobject
---@overload fun(prefab: prefab): gobject
---@overload fun(parent: node): gobject
---@overload fun(prefab: prefab, parent: node): gobject
---@overload fun(parent: node, transform: t3f): gobject
---@overload fun(prefab: prefab, parent: node, transform: t3f): gobject
---@return gobject
function world:instantiate(...) end
---@type world
_G.the_world = _G.the_world or world