Add user action: Set object position

console-destruction
Sven Eberhardt 2016-08-15 01:19:14 -04:00
parent 20f9dbed43
commit 3a49a9c21d
3 changed files with 20 additions and 0 deletions

View File

@ -135,6 +135,10 @@ func Definition(def)
{ Name="$EjectContentsYes$", Value=true }
] },
} } );
AddEvaluator("Action", "$Object$", "$SetPosition$", "$SetPositionHelp$", "set_position", [def, def.EvalAct_SetPosition], { Object={ Function="triggering_clonk" }, Position={ Function="position_constant_rel" } }, { Type="proplist", Display="({{Object}}->{{Position}})", ShowFullName=true, EditorProps = {
Object = new Evaluator.Object { Name="$Object$", EditorHelp="$SetPositionObjectHelp$" },
Position = new Evaluator.Position { Name="$Position$", EditorHelp="$SetPositionPositionHelp$" }
} } );
AddEvaluator("Action", "Clonk", "$DoEnergy$", "$DoEnergyHelp$", "do_energy", [def, def.EvalAct_ObjectCallInt, Global.DoEnergy], { Object={ Function="triggering_clonk" } }, { Type="proplist", Display="({{Object}}, {{Value}})", ShowFullName=true, EditorProps = {
Object = new Evaluator.Object { Name="$Object$", EditorHelp="$DoEnergyObjectHelp$" },
Value = new Evaluator.Integer { Name="$ValueChange$", EditorHelp="$DoEnergyValueChangeHelp$" }
@ -793,6 +797,14 @@ private func EvalAct_RemoveObject(proplist props, proplist context)
obj->RemoveObject(props.EjectContents);
}
private func EvalAct_SetPosition(proplist props, proplist context)
{
var obj = EvaluateValue("Object", props.Object, context);
if (!obj) return;
var pos = EvaluatePosition(props.Position, context);
obj->SetPosition(pos[0], pos[1]);
}
private func EvalAct_ObjectCallInt(proplist props, proplist context, func call_fn)
{
var obj = EvaluateValue("Object", props.Object, context);

View File

@ -287,3 +287,7 @@ DoEnergyHelp=Erhoeht oder verringert die Energie eines Lebewesens. Faellt die En
DoEnergyObjectHelp=Objekt, dessen Energie geaendert wird.
ValueChange=Aenderung
DoEnergyValueChangeHelp=Wert um dne die Energie geaendert wird.
SetPosition=Objekt verschieben
SetPositionHelp=Setzt ein Objekt an eine neue Position.
SetPositionObjectHelp=Zu verschiebendes Objekt.
SetPositionPositionHelp=Neue Position fuer die Objektmitte des verschobenen Objektes.

View File

@ -287,3 +287,7 @@ DoEnergyHelp=Increases or decreases the energy of a living object (e.g. a clonk)
DoEnergyObjectHelp=Object for which energy is adjusted.
ValueChange=Change
DoEnergyValueChangeHelp=Value that is added to the current energy of the object.
SetPosition=Move object
SetPositionHelp=Puts an object to a new position.
SetPositionObjectHelp=Object to move.
SetPositionPositionHelp=New position for the object.