Helpful Lua Snippets

From Frozenbyte Wiki
Jump to: navigation, search

This page aims at sharing helpful samples of code you might have written while creating your mods. Any help is welcome.

Please use the same templates for each snippet.

Getting Player object

function getCharacter()
        local instanceManager=common.CommonUtils.getSceneInstanceManager()
	local cm = instanceManager:findInstanceByName("TrineCharacterSelectionManagerInst")
	local character = cm:getCharacterInstanceForPlayer(0)
	return character 

What it does: Get the object representing the player

Parameters: None

Editor version: v2

--LeonardA-L (talk) 12:06, 15 March 2015 (UTC)

Change object position

function shift(object, dx,dy,dz)
	local toShift = object:getTransformComponent()
	local vec = VC3(dx,dy,dz)

	toShift :setPosition(toShift :getPosition()+vec)

What it does: Shifts an objects model


  • Object: the object to shift
  • dx,dy,dz: displacement values (float) for the x,y and z axis

--LeonardA-L (talk) 12:06, 15 March 2015 (UTC)

Display text

Couldn't find an Entity to display text on screen, so I adapted from gui.debug.formattedText. Can easily be tweaked to have your own text as parameter, or update a previously created text.

textWindowToggled = false

-- testing the creation utils...
function createTextWindow()	
	if (textWindowToggled) then
		textWindowToggled = false
		testWindowCenter = nil
		textWindowToggled = true
		local clickableInput ="clickableOverlayInput")
		-- Create a new window
		testWindowCenter = gui.WindowUtils.createWindowAnchoredToTopLeft("CenteredTest", clickableInput, -1, nil, 10, false, nil, true)

		local testText = [[ <b>Awesome!</b> ]]
		-- Create text
		theFormattedText = gui.TextBoxUtils.createNonLocalizedFormattedTextBox("MyTextBox", "gray", testText, true, gui.AlignmentUtils.getRightTopAlignment())

		-- Push to the created window

		return testWindowCenter

What it does: Add a small text field to the top left corner of the page (can be tweaked into centered/right/left/bottom)

Warning: At the moment you can launch it in editor only through the console panel. But it works eventualy when exporting

--LeonardA-L (talk) 16:51, 24 April 2015 (UTC)

Forcing a character change

function setCharacterToThief()
	local cm=common.CommonUtils.getCharacterSelectionManager()
	local cha=trinebase.gameplay.TrineCharacterThief

What it does: Sets the character to thief

Parameters: None

Editor version: v3

--LeonardA-L (talk) 14:52, 25 April 2015 (UTC)