forked from Mirrors/openclonk
Add user action evaluator: Difference between two positions
parent
95e27e6a22
commit
b1096786d8
|
@ -122,9 +122,13 @@ func Definition(def)
|
|||
X = new Evaluator.Integer { Name="X", EditorHelp="$OffXHelp$" },
|
||||
Y = new Evaluator.Integer { Name="Y", EditorHelp="$OffYHelp$" },
|
||||
} } );
|
||||
AddEvaluator("Offset", nil, "$AddOffsets$", "$AddOffsetsHelp$", "add_offsets", [def, def.EvalOffsetsAdd], { }, { Type="proplist", Display="{{Offset1}}+{{Offset2}}", EditorProps = {
|
||||
Offset1 = new Evaluator.Offset1 { EditorHelp="$AddOffsetOffsetHelp$" },
|
||||
Offset2 = new Evaluator.Offset2 { EditorHelp="$AddOffsetOffsetHelp$" }
|
||||
AddEvaluator("Offset", nil, "$AddOffsets$", "$AddOffsetsHelp$", "add_offsets", [def, def.EvalOffsetAdd], { }, { Type="proplist", Display="{{Offset1}}+{{Offset2}}", EditorProps = {
|
||||
Offset1 = new Evaluator.Offset { EditorHelp="$AddOffsetOffsetHelp$" },
|
||||
Offset2 = new Evaluator.Offset { EditorHelp="$AddOffsetOffsetHelp$" }
|
||||
} } );
|
||||
AddEvaluator("Offset", nil, "$DiffPositions$", "$DiffPositionsHelp$", "diff_positions", [def, def.EvalOffsetDiff], { }, { Type="proplist", Display="{{PositionB}}-{{PositionA}}", EditorProps = {
|
||||
PositionA = new Evaluator.Position { Name="$PositionA$", EditorHelp="$PositionAHelp$" },
|
||||
PositionB = new Evaluator.Position { Name="$PositionB$", EditorHelp="$PositionBHelp$" }
|
||||
} } );
|
||||
// User action editor props
|
||||
Prop = Evaluator.Action;
|
||||
|
@ -494,13 +498,20 @@ private func EvalPositionObject(proplist props, proplist context)
|
|||
return [0,0]; // undefined object: Position is 0/0 default
|
||||
}
|
||||
|
||||
private func EvalOffsetsAdd(proplist props, proplist context)
|
||||
private func EvalOffsetAdd(proplist props, proplist context)
|
||||
{
|
||||
var o1 = EvaluateOffset(props.Offset1, context);
|
||||
var o2 = EvaluateOffset(props.Offset2, context);
|
||||
return [o1[0]+o2[0], o1[1]+o2[1]];
|
||||
}
|
||||
|
||||
private func EvalOffsetDiff(proplist props, proplist context)
|
||||
{
|
||||
var pA = EvaluatePosition(props.PositionA, context);
|
||||
var pB = EvaluatePosition(props.PositionB, context);
|
||||
return [pB[0]-pA[0], pB[1]-pA[1]];
|
||||
}
|
||||
|
||||
|
||||
/* Context instance */
|
||||
|
||||
|
|
|
@ -118,3 +118,9 @@ RandomMaxHelp=Groesstmoegliche Zahl
|
|||
ObjectPosition=Objektposition
|
||||
ObjectPositionHelp=Aktuelle Position eines Objektes
|
||||
ObjectPositionObjectHelp=Das Objekt, dessen Position zurueckgegeben wird.
|
||||
DiffPositions=Differenz zwischen Positionen
|
||||
DiffPositionsHelp=Berechnet die Verschiebung von Positionen A nach Position B (Offset = B - A)
|
||||
PositionA=Position A
|
||||
PositionAHelp=Startposition
|
||||
PositionB=Position B
|
||||
PositionBHelp=Endposition
|
||||
|
|
|
@ -118,3 +118,9 @@ RandomMaxHelp=Largest possible number
|
|||
ObjectPosition=Object position
|
||||
ObjectPositionHelp=Current position of an object.
|
||||
ObjectPositionObjectHelp=The object of which the position is used.
|
||||
DiffPositions=Difference between positions
|
||||
DiffPositionsHelp=Calculates the offset from position A to position B (Offset = B - A)
|
||||
PositionA=Position A
|
||||
PositionAHelp=Start position
|
||||
PositionB=Position B
|
||||
PositionBHelp=End position
|
||||
|
|
Loading…
Reference in New Issue