Luaメソッド:ブロックの座標系をlineで表示するやつ
#便利なLuaメソッドまとめ #LuaScriptingMod
kudan.icon
たまにブロックのどっちがyか分かんなくなったりするので、line_rendererの練習がてら作りました。
たぶんもっといい感じの書き方があると思います
Luaのvectorとquaternionを使いやすくする使うとか
dofileしてからupdateでbeam_basis(ブロック名)するとそのブロックの座標系が見えます。
複数のブロックに同時には使えないよ クラスもどき使えば何とかなるのかしら
ここで使っているflagはlocalで宣言していないのでグローバル変数になるのと、flagっていう変数はいろんなところで使いそうなので見てすごい怖くなりました。先頭に1行追加しておきます。Teinishi.icon
あざますkudan.icon
https://gyazo.com/207033f4d536b54ed988f6e6608475d2
code:beam_basis.lua
local beam = {}
local flag = false
function basis_beam(a)
if not flag then
beam.length = 8
beam.x = lines.new_line_renderer()
beam.y = lines.new_line_renderer()
beam.z = lines.new_line_renderer()
flag = true
end
local x = vector.add(a.position(),vector.multiply(a.right(),beam.length))
beam.x.set_width(0.1, 0.1)
beam.x.set_color(vector.new(255, 0, 0))
beam.x.set_points(a.position(),x)
local y = vector.add(a.position(),vector.multiply(a.up(),beam.length))
beam.y.set_width(0.1, 0.1)
beam.y.set_color(vector.new(0, 255, 0))
beam.y.set_points(a.position(),y)
local z = vector.add(a.position(),vector.multiply(a.forward(),beam.length))
beam.z.set_width(0.1, 0.1)
beam.z.set_color(vector.new(0, 0, 255))
beam.z.set_points(a.position(),z)
end