SETMODEL.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. namespace OpenVIII.Fields.Scripts.Instructions
  2. {
  3. internal sealed class SETMODEL : JsmInstruction
  4. {
  5. #region Fields
  6. private readonly int _modelId;
  7. #endregion Fields
  8. #region Constructors
  9. public SETMODEL(int modelId) => _modelId = modelId;
  10. public SETMODEL(int parameter, IStack<IJsmExpression> stack)
  11. : this(parameter)
  12. {
  13. }
  14. #endregion Constructors
  15. #region Methods
  16. public override void Format(ScriptWriter sw, IScriptFormatterContext formatterContext, IServices services) => sw.Format(formatterContext, services)
  17. .Property(nameof(FieldObject.Model))
  18. .Method(nameof(FieldObjectModel.Change))
  19. .Argument("modelId", _modelId)
  20. .Comment(nameof(SETMODEL));
  21. public override IAwaitable TestExecute(IServices services)
  22. {
  23. var currentObject = ServiceId.Field[services].Engine.CurrentObject;
  24. currentObject.Model.Change(_modelId);
  25. return DummyAwaitable.Instance;
  26. }
  27. public override string ToString() => $"{nameof(SETMODEL)}({nameof(_modelId)}: {_modelId})";
  28. #endregion Methods
  29. }
  30. }