public override string GetBody(EditorScope scope) { var op = (VMDropOntoOperand)Operand; var result = new StringBuilder(); result.Append("From slot["); if (op.SrcSlotMode == 1) { result.Append(scope.GetVarName(VMVariableScope.Parameters, (short)op.SrcSlotNum)); } else { result.Append(op.SrcSlotNum); } result.Append("] to slot["); if (op.DestSlotMode == 1) { result.Append(scope.GetVarName(VMVariableScope.Parameters, (short)op.DestSlotNum)); } else { result.Append(op.DestSlotNum); } result.Append("]"); return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMSetMotiveChangeOperand)Operand; var result = new StringBuilder(); if (op.ClearAll) { result.Append("Clear all"); } else { result.Append(scope.GetVarScopeDataName(VMVariableScope.MyMotives, (short)op.Motive)); result.Append(" += "); result.Append(scope.GetVarName(op.DeltaOwner, op.DeltaData)); if (!op.Once) { result.Append(" (per hr)"); } result.Append("\r\n Stop at "); result.Append(scope.GetVarName(op.MaxOwner, op.MaxData)); } return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMRandomNumberOperand)Operand; var result = new StringBuilder(); result.Append(scope.GetVarName(op.DestinationScope, (short)op.DestinationData)); result.Append(" := between 0 and "); result.Append(scope.GetVarName(op.RangeScope, (short)op.RangeData)); return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMRandomNumberOperand)Operand; var result = new StringBuilder(); result.Append(scope.GetVarName(op.DestinationScope, (short)op.DestinationData)); result.Append(" := between 0 and "); result.Append(scope.GetVarName(op.RangeScope, (short)op.RangeData)); return result.ToString(); }
public override string GetBody(EditorScope scope) { var op = (VMGetDistanceToOperand)Operand; var result = new StringBuilder(); result.Append("From object with ID: "); result.Append(scope.GetVarName(op.ObjectScope, (short)op.OScopeData)); result.Append("\r\nto the Stack Object\r\nStore in: "); result.Append(scope.GetVarName(VMVariableScope.Temps, (short)op.TempNum)); return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMRelationshipOperand)Operand; var result = new StringBuilder(); var old = (Operand is VMOldRelationshipOperand); if (op.SetMode == 0) { result.Append(scope.GetVarName(op.VarScope, op.VarData)); result.Append(" := "); } result.Append(" Relationship Var #"); result.Append(op.RelVar); result.Append("\r\n of "); result.Append(EditorScope.Behaviour.Get <STR>((ushort)(old?170:235)).GetString((int)op.Mode)); if (op.Mode > 1) { result.Append(" (" + scope.GetVarScopeDataName(SimAntics.Engine.Scopes.VMVariableScope.Local, op.Local) + ")"); } if (op.SetMode > 0) { result.Append("\r\n "); result.Append((op.SetMode == 1) ? ":= " : "+= "); result.Append(scope.GetVarName(op.VarScope, op.VarData)); } var flagStr = new StringBuilder(); string prepend = ""; if (op.FailIfTooSmall) { flagStr.Append(prepend + "Fail if too small"); prepend = ","; } if (op.UseNeighbor) { flagStr.Append(prepend + "Use Neighbor"); prepend = ","; } if (op.FSONeverPersist) { flagStr.Append(prepend + "Never Persist (FSO)"); prepend = ","; } if (flagStr.Length != 0) { result.Append("\r\n("); result.Append(flagStr); result.Append(")"); } return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMGetDirectionToOperand)Operand; var result = new StringBuilder(); result.Append("From object with ID: "); result.Append(scope.GetVarName(op.ObjectScope, (short)op.OScopeData)); result.Append("\r\nto the Stack Object\r\nStore in: "); result.Append(scope.GetVarName(op.ResultOwner, (short)op.ResultData)); return result.ToString(); }
public override string GetBody(EditorScope scope) { var op = (VMGetDistanceToOperand)Operand; var result = new StringBuilder(); result.Append("From object with ID: "); result.Append(scope.GetVarName(op.ObjectScope, (short)op.OScopeData)); result.Append("\r\nto the Stack Object\r\nStore in: "); result.Append(scope.GetVarName(VMVariableScope.Temps, (short)op.TempNum)); return result.ToString(); }
public override string GetBody(EditorScope scope) { var op = (VMGetDirectionToOperand)Operand; var result = new StringBuilder(); result.Append("From object with ID: "); result.Append(scope.GetVarName(op.ObjectScope, (short)op.OScopeData)); result.Append("\r\nto the Stack Object\r\nStore in: "); result.Append(scope.GetVarName(op.ResultOwner, (short)op.ResultData)); return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMExpressionOperand)Operand; var result = new StringBuilder(); result.Append(scope.GetVarName(op.LhsOwner, (short)op.LhsData)); result.Append(" "); result.Append(OperatorStr[op.Operator]); result.Append(" "); result.Append(scope.GetVarName(op.RhsOwner, (short)op.RhsData)); return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMDropOntoOperand)Operand; var result = new StringBuilder(); result.Append("From slot["); if (op.SrcSlotMode == 1) result.Append(scope.GetVarName(VMVariableScope.Parameters, (short)op.SrcSlotNum)); else result.Append(op.SrcSlotNum); result.Append("] to slot["); if (op.DestSlotMode == 1) result.Append(scope.GetVarName(VMVariableScope.Parameters, (short)op.DestSlotNum)); else result.Append(op.DestSlotNum); result.Append("]"); return result.ToString(); }
public override string GetBody(EditorScope scope) { var op = (VMFindLocationForOperand)Operand; var result = new StringBuilder(); result.Append(EditorScope.Behaviour.Get<STR>(239).GetString((int)op.Mode)); var flagStr = new StringBuilder(); string prepend = ""; if (op.UseLocalAsRef) { flagStr.Append("Obj in "); flagStr.Append(scope.GetVarName(VMVariableScope.Local, op.Local)); flagStr.Append(" as reference"); prepend = ",\r\n"; } if (op.AllowIntersection) { flagStr.Append(prepend + "Allow Intersection"); prepend = ",\r\n"; } if (op.UserEditableTilesOnly) { flagStr.Append(prepend + "User Editable tiles only"); prepend = ",\r\n"; } if (flagStr.Length != 0) { result.Append("\r\n("); result.Append(flagStr); result.Append(")"); } return result.ToString(); }
public override string GetBody(EditorScope scope) { var op = (VMSetToNextOperand)Operand; var result = new StringBuilder(); var nextObject = EditorScope.Behaviour.Get<STR>(164).GetString((int)op.SearchType); result.Append(nextObject); if (op.SearchType == VMSetToNextSearchType.ObjectOfType) { var obj = Content.Content.Get().WorldObjects.Get(op.GUID); result.Append((obj == null) ? ("0x" + Convert.ToString(op.GUID.ToString("x8"))) : obj.OBJ.ChunkLabel); } else if (op.SearchType == VMSetToNextSearchType.ObjectAdjacentToObjectInLocal) { result.Append(" "); result.Append(op.Local.ToString()); } var flagStr = new StringBuilder(); if (op.TargetData != 0 || op.TargetOwner != VMVariableScope.StackObjectID) { flagStr.Append("Result in "+ scope.GetVarName(op.TargetOwner, (short)op.TargetData)); } if (flagStr.Length != 0) { result.Append("\r\n("); result.Append(flagStr); result.Append(")"); } return result.ToString(); }
public override string GetBody(EditorScope scope) { var op = (VMFindLocationForOperand)Operand; var result = new StringBuilder(); result.Append(EditorScope.Behaviour.Get <STR>(239).GetString((int)op.Mode)); var flagStr = new StringBuilder(); string prepend = ""; if (op.UseLocalAsRef) { flagStr.Append("Obj in "); flagStr.Append(scope.GetVarName(VMVariableScope.Local, op.Local)); flagStr.Append(" as reference"); prepend = ",\r\n"; } if (op.PreferNonEmpty) { flagStr.Append(prepend + "Prefer non-empty"); prepend = ",\r\n"; } if (op.UserEditableTilesOnly) { flagStr.Append(prepend + "User Editable tiles only"); prepend = ",\r\n"; } if (flagStr.Length != 0) { result.Append("\r\n("); result.Append(flagStr); result.Append(")"); } return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMSnapOperand)Operand; var result = new StringBuilder(); switch (op.Mode) { case VMSnapSlotScope.Global: var gslots = scope.GetResource <STR>(257, ScopeSource.Global); result.Append(gslots?.GetString(op.Index) ?? "Global slot " + op.Index); break; case VMSnapSlotScope.Literal: var slotNs = scope.GetResource <STR>(257, ScopeSource.Private); result.Append((slotNs != null && slotNs.GetString(op.Index) != null) ? slotNs.GetString(op.Index) : "Private slot " + op.Index); break; case VMSnapSlotScope.StackVariable: result.Append("Private slot indexed by " + scope.GetVarName(VMVariableScope.Parameters, (short)op.Index)); break; case VMSnapSlotScope.BeContained: result.Append("Be contained in Stack Object"); break; case VMSnapSlotScope.InFront: result.Append("In front of Stack Object"); break; } //if (op.NoFailureTrees) result.Append("\r\n(No Failure Trees)"); return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMGotoRoutingSlotOperand)Operand; var result = new StringBuilder(); switch (op.Type) { case VMSlotScope.Global: var gslots = scope.GetResource <STR>(257, ScopeSource.Global); result.Append(gslots?.GetString(op.Data) ?? ("Global slot " + op.Data)); break; case VMSlotScope.Literal: var slotNs = scope.GetResource <STR>(257, ScopeSource.Private); result.Append((slotNs != null && slotNs.GetString(op.Data) != null) ? slotNs.GetString(op.Data) : "Private slot " + op.Data); break; case VMSlotScope.StackVariable: result.Append("Private slot indexed by " + scope.GetVarName(VMVariableScope.Parameters, (short)op.Data)); break; } if (op.NoFailureTrees) { result.Append("\r\n(No Failure Trees)"); } return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMSetToNextOperand)Operand; var result = new StringBuilder(); var nextObject = EditorScope.Behaviour.Get <STR>(164).GetString((int)op.SearchType); result.Append(nextObject); if (op.SearchType == VMSetToNextSearchType.ObjectOfType) { var obj = Content.Content.Get().WorldObjects.Get(op.GUID); result.Append((obj == null) ? ("0x" + Convert.ToString(op.GUID.ToString("x8"))) : obj.OBJ.ChunkLabel); } else if (op.SearchType == VMSetToNextSearchType.ObjectAdjacentToObjectInLocal) { result.Append(" "); result.Append(op.Local.ToString()); } var flagStr = new StringBuilder(); if (op.TargetData != 0 || op.TargetOwner != VMVariableScope.StackObjectID) { flagStr.Append("Result in " + scope.GetVarName(op.TargetOwner, (short)op.TargetData)); } if (flagStr.Length != 0) { result.Append("\r\n("); result.Append(flagStr); result.Append(")"); } return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMBreakPointOperand)Operand; var result = new StringBuilder(); result.Append("when "); result.Append(scope.GetVarName(op.Scope, (short)op.Data)); result.Append(" != 0"); return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMBreakPointOperand)Operand; var result = new StringBuilder(); result.Append("when "); result.Append(scope.GetVarName(op.Scope, (short)op.Data)); result.Append(" != 0"); return result.ToString(); }
public override string GetBody(EditorScope scope) { var op = (VMSetMotiveChangeOperand)Operand; var result = new StringBuilder(); if (op.ClearAll) result.Append("Clear all"); else { result.Append(scope.GetVarScopeDataName(VMVariableScope.MyMotives, (short)op.Motive)); result.Append(" += "); result.Append(scope.GetVarName(op.DeltaOwner, op.DeltaData)); if (!op.Once) result.Append(" (per hr)"); result.Append("\r\n Stop at "); result.Append(scope.GetVarName(op.MaxOwner, op.MaxData)); } return result.ToString(); }
public override string GetBody(EditorScope scope) { var op = (VMSubRoutineOperand)Operand; var result = new StringBuilder(); var paramNames = new string[4]; for (var i = 0; i < 4; i++) { paramNames[i] = "arg" + i; } var bhav = scope.GetBHAV(PrimID); if (bhav != null) { //There might be param names var labels = scope.GetLabels(bhav.ChunkID); if (labels?.ParamNames != null) { for (var i = 0; i < 4; i++) { if (i < labels.ParamNames.Length) { paramNames[i] = labels.ParamNames[i]; } } } } //Add parameter names and values for (var i = 0; i < bhav.Args; i++) { if (i > 0) { result.Append(", "); } result.Append(paramNames[i] + "="); short argValue = op.Arguments[i]; string argValueString = argValue + ""; if (argValue == -1) { argValueString = scope.GetVarName(VMVariableScope.Temps, (short)i); } result.Append(argValueString); } return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMRelationshipOperand)Operand; var result = new StringBuilder(); var old = (Operand is VMOldRelationshipOperand); if (op.SetMode == 0) { result.Append(scope.GetVarName(op.VarScope, op.VarData)); result.Append(" := "); } result.Append(" Relationship Var #"); result.Append(op.RelVar); result.Append("\r\n of "); result.Append(EditorScope.Behaviour.Get<STR>((ushort)(old?170:235)).GetString((int)op.Mode)); if (op.Mode>1) result.Append(" ("+scope.GetVarScopeDataName(SimAntics.Engine.Scopes.VMVariableScope.Local, op.Local)+")"); if (op.SetMode > 0) { result.Append("\r\n "); result.Append((op.SetMode == 1) ? ":= " : "+= "); result.Append(scope.GetVarName(op.VarScope, op.VarData)); } var flagStr = new StringBuilder(); string prepend = ""; if (op.FailIfTooSmall) { flagStr.Append(prepend + "Fail if too small"); prepend = ","; } if (op.UseNeighbor) { flagStr.Append(prepend + "Use Neighbor"); prepend = ","; } if (flagStr.Length != 0) { result.Append("\r\n("); result.Append(flagStr); result.Append(")"); } return result.ToString(); }
public override string GetBody(EditorScope scope) { var op = (VMTestObjectTypeOperand)Operand; var result = new StringBuilder(); result.Append("Object with ID: "); result.Append(scope.GetVarName(op.IdOwner, (short)op.IdData)); result.Append("\r\n has (master) type "); var obj = Content.GameContent.Get.WorldObjects.Get(op.GUID); result.Append((obj == null) ? ("0x" + Convert.ToString(op.GUID.ToString("x8"))) : obj.OBJ.ChunkLabel); return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMTestObjectTypeOperand)Operand; var result = new StringBuilder(); result.Append("Object with ID: "); result.Append(scope.GetVarName(op.IdOwner, (short)op.IdData)); result.Append("\r\n has (master) type "); var obj = Content.Content.Get().WorldObjects.Get(op.GUID); result.Append((obj == null) ? ("0x" + Convert.ToString(op.GUID.ToString("x8"))) : obj.OBJ.ChunkLabel); return result.ToString(); }
public override string GetBody(EditorScope scope) { var op = (VMInventoryOperationsOperand)Operand; var result = new StringBuilder(); var obj = Content.Content.Get().WorldObjects.Get(op.GUID); result.Append("Mode: " + op.Mode.ToString() + "\r\n"); result.Append("Target Data: " + scope.GetVarName(op.FSOScope, op.FSOData) + "\r\n"); if (op.GUID != 0) { result.Append("Object: "); result.Append((obj == null) ? ("0x" + Convert.ToString(op.GUID.ToString("x8"))) : obj.OBJ.ChunkLabel); } return(result.ToString()); }
public override string GetBody(EditorScope scope) { var op = (VMGotoRoutingSlotOperand)Operand; var result = new StringBuilder(); switch (op.Type) { case VMSlotScope.Global: var gslots = scope.GetResource<STR>(257, ScopeSource.Global); result.Append(gslots.GetString(op.Data)); break; case VMSlotScope.Literal: var slotNs = scope.GetResource<STR>(257, ScopeSource.Private); result.Append((slotNs != null && slotNs.GetString(op.Data) != null) ? slotNs.GetString(op.Data) : "Private slot " + op.Data); break; case VMSlotScope.StackVariable: result.Append("Private slot indexed by " + scope.GetVarName(VMVariableScope.Parameters, (short)op.Data)); break; } if (op.NoFailureTrees) result.Append("\r\n(No Failure Trees)"); return result.ToString(); }
public override string GetBody(EditorScope scope) { var op = (VMExpressionOperand)Operand; var result = new StringBuilder(); result.Append(scope.GetVarName(op.LhsOwner, (short)op.LhsData)); result.Append(" "); result.Append(OperatorStr[op.Operator]); result.Append(" "); result.Append(scope.GetVarName(op.RhsOwner, (short)op.RhsData)); return result.ToString(); }
public void OperandUpdated() { int value = Convert.ToInt32(OpUtils.GetOperandProperty(Operand, SourceProperty)); ScopeLabel.Text = Scope.GetVarName((VMVariableScope)value, Convert.ToInt16(OpUtils.GetOperandProperty(Operand, DataProperty))); }
public override string GetBody(EditorScope scope) { var op = (VMSnapOperand)Operand; var result = new StringBuilder(); switch (op.Mode) { case VMSnapSlotScope.Global: var gslots = scope.GetResource<STR>(257, ScopeSource.Global); result.Append(gslots.GetString(op.Index)); break; case VMSnapSlotScope.Literal: var slotNs = scope.GetResource<STR>(257, ScopeSource.Private); result.Append((slotNs != null && slotNs.GetString(op.Index) != null) ? slotNs.GetString(op.Index) : "Private slot " + op.Index); break; case VMSnapSlotScope.StackVariable: result.Append("Private slot indexed by " + scope.GetVarName(VMVariableScope.Parameters, (short)op.Index)); break; case VMSnapSlotScope.BeContained: result.Append("Be contained in Stack Object"); break; case VMSnapSlotScope.InFront: result.Append("In front of Stack Object"); break; } //if (op.NoFailureTrees) result.Append("\r\n(No Failure Trees)"); return result.ToString(); }