Add user action: Set player view

ipv6
Sven Eberhardt 2016-12-27 18:10:16 -04:00
parent f2e8bc5814
commit 8ae8dd9c44
3 changed files with 33 additions and 0 deletions

View File

@ -232,6 +232,14 @@ func Definition(def)
Players = Evaluator.PlayerList,
ID = Evaluator.Definition
} } );
AddEvaluator("Action", "$Player$", "$SetPlrView$", "$SetPlrViewHelp$", "plr_view", [def, def.EvalAct_PlrView], { Players={ Function="triggering_player_list" }, Target={ Function="action_object" } }, { Type="proplist", Display="({{Players}}, {{Target}})", EditorProps = {
Players = Evaluator.PlayerList,
Target = new Evaluator.Object { Name="$Target$", EditorHelp="$PlrViewTargetHelp$" },
Immediate = { Name="$ScrollMode$", EditorHelp="$SetPlrViewScrollModeHelp$", Type="enum", Priority=-10, Options = [
{ Name="$Smooth$" },
{ Value=true, Name="$Immediate$" }
] }
} } );
AddEvaluator("Action", "$Script$", "$ConditionalAction$", "$ConditionalActionHelp$", "if", [def, def.EvalAct_If], { }, { Type="proplist", Display="if({{Condition}}) {{TrueEvaluator}} else {{FalseEvaluator}}", EditorProps = {
Condition = new Evaluator.Boolean { Name="$Condition$", EditorHelp="$IfConditionHelp$", Priority=60 },
TrueEvaluator = new Evaluator.Action { Name="$TrueEvaluator$", EditorHelp="$TrueEvaluatorHelp$", Priority=50 },
@ -1160,6 +1168,15 @@ private func EvalAct_PlrKnowledge(proplist props, proplist context)
for (var plr in players) SetPlrKnowledge(plr, def);
}
private func EvalAct_PlrView(proplist props, proplist context)
{
var players = EvaluateValue("PlayerList", props.Players, context) ?? [];
var target = EvaluateValue("Object", props.Target, context);
var immediate = props.Immediate;
if (!target) return;
for (var plr in players) SetPlrView(plr, target, immediate);
}
private func EvalAct_ObjectCallInt(proplist props, proplist context, func call_fn)
{
var obj = EvaluateValue("Object", props.Object, context);

View File

@ -426,3 +426,11 @@ Invincible=Unverwundbar
Vincible=Verwundbar
ObjectAlive=Objekt lebt
ObjectAliveHelp=Ob es ein Lebewesen ist und lebt.
SetPlrView=Spielersicht setzen
SetPlrViewHelp=Setzt die Sicht von einem oder mehreren Spielern auf ein Zielobjekt.
Target=Zielobjekt
PlrViewTargetHelp=Objekt, dessen Position mit dem Sichtfenster verfolgt wird.
ScrollMode=Scrollmodus
SetPlrViewScrollModeHelp=Ob die Sicht weich zum Ziel springt oder instantan springt.
Smooth=Weich
Immediate=Instantan

View File

@ -426,3 +426,11 @@ Invincible=Invincible
Vincible=Vincible
ObjectAlive=Object alive
ObjectAliveHelp=Whether the object is a clonk or animal and still alive.
SetPlrView=Set player view
SetPlrViewHelp=Sets the view position of one or more players to a target object.
Target=Target object
PlrViewTargetHelp=Player viewports are centered on the position of this object.
ScrollMode=Scroll mode
SetPlrViewScrollModeHelp=Whether the view mmoves to the target smoothly or jumps immediately
Smooth=Smooth
Immediate=Instant