Update example with new brand one

This commit is contained in:
Insality
2024-10-17 01:24:15 +03:00
parent 2c762716bb
commit 91879509a0
197 changed files with 36779 additions and 7 deletions

View File

@@ -0,0 +1,190 @@
script: ""
textures {
name: "druid"
texture: "/example/assets/druid.atlas"
}
background_color {
x: 0.0
y: 0.0
z: 0.0
w: 0.0
}
nodes {
position {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
scale {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
size {
x: 500.0
y: 500.0
z: 0.0
w: 1.0
}
color {
x: 0.173
y: 0.184
z: 0.204
w: 1.0
}
type: TYPE_BOX
blend_mode: BLEND_MODE_ALPHA
texture: "druid/ui_circle_64"
id: "root"
xanchor: XANCHOR_NONE
yanchor: YANCHOR_NONE
pivot: PIVOT_CENTER
adjust_mode: ADJUST_MODE_FIT
layer: ""
inherit_alpha: true
slice9 {
x: 32.0
y: 32.0
z: 32.0
w: 32.0
}
clipping_mode: CLIPPING_MODE_NONE
clipping_visible: true
clipping_inverted: false
alpha: 1.0
template_node_child: false
size_mode: SIZE_MODE_MANUAL
custom_type: 0
enabled: true
visible: true
material: ""
}
nodes {
position {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
scale {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
size {
x: 500.0
y: 500.0
z: 0.0
w: 1.0
}
color {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
type: TYPE_BOX
blend_mode: BLEND_MODE_ALPHA
texture: "druid/empty"
id: "layout"
xanchor: XANCHOR_NONE
yanchor: YANCHOR_NONE
pivot: PIVOT_CENTER
adjust_mode: ADJUST_MODE_FIT
parent: "root"
layer: ""
inherit_alpha: true
slice9 {
x: 0.0
y: 0.0
z: 0.0
w: 0.0
}
clipping_mode: CLIPPING_MODE_NONE
clipping_visible: true
clipping_inverted: false
alpha: 1.0
template_node_child: false
size_mode: SIZE_MODE_MANUAL
custom_type: 0
enabled: true
visible: false
material: ""
}
nodes {
position {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
scale {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
size {
x: 70.0
y: 40.0
z: 0.0
w: 1.0
}
color {
x: 0.631
y: 0.843
z: 0.961
w: 1.0
}
type: TYPE_BOX
blend_mode: BLEND_MODE_ALPHA
texture: "druid/ui_circle_16"
id: "prefab"
xanchor: XANCHOR_NONE
yanchor: YANCHOR_NONE
pivot: PIVOT_CENTER
adjust_mode: ADJUST_MODE_FIT
parent: "layout"
layer: ""
inherit_alpha: true
slice9 {
x: 8.0
y: 8.0
z: 8.0
w: 8.0
}
clipping_mode: CLIPPING_MODE_NONE
clipping_visible: true
clipping_inverted: false
alpha: 1.0
template_node_child: false
size_mode: SIZE_MODE_MANUAL
custom_type: 0
enabled: true
visible: true
material: ""
}
material: "/builtins/materials/gui.material"
adjust_reference: ADJUST_REFERENCE_PARENT
max_nodes: 512

View File

@@ -0,0 +1,76 @@
local helper = require("druid.helper")
local component = require("druid.component")
local layout = require("druid.extended.layout")
---@class basic_layout: druid.base_component
---@field druid druid_instance
---@field root node
local M = component.create("basic_layout")
local PIVOTS = {
gui.PIVOT_CENTER,
gui.PIVOT_N,
gui.PIVOT_NE,
gui.PIVOT_E,
gui.PIVOT_SE,
gui.PIVOT_S,
gui.PIVOT_SW,
gui.PIVOT_W,
gui.PIVOT_NW,
}
---@param template string
---@param nodes table<hash, node>
function M:init(template, nodes)
self.druid = self:get_druid(template, nodes)
self.root = self:get_node("root")
self.layout = self.druid:new(layout, "layout", "horizontal_wrap")
self.prefab = self:get_node("prefab")
gui.set_enabled(self.prefab, false)
local default_size = gui.get_size(self.prefab)
self.nodes = {}
for _ = 1, 12 do
local node = gui.clone(self.prefab)
-- Set different size for some nodes
if math.random() > 0.5 then
local size = vmath.vector3(default_size.x * 2, default_size.y, 0)
gui.set_size(node, size)
end
-- Set random pivot point for each node
local pivot = PIVOTS[math.random(1, #PIVOTS)]
gui.set_pivot(node, pivot)
gui.set_enabled(node, true)
self.layout:add(node)
table.insert(self.nodes, node)
end
end
function M:set_pivot(pivot)
local offset = helper.get_pivot_offset(pivot)
local size = gui.get_size(self.root)
local pos = vmath.vector3(size.x * offset.x, size.y * offset.y, 0)
gui.set_position(self.layout.node, pos)
gui.set_pivot(self.layout.node, pivot)
self.layout:refresh_layout()
end
function M:on_remove()
self.layout:clear_layout()
for _, node in ipairs(self.nodes) do
gui.delete_node(node)
end
end
return M