public void Init() { Debugger.AddProcessor(ProcessCmd); // Adds Seperate insert Body Permission var capiInsertBody = new SimCapiBoolean(false); capiInsertBody.expose("Permission.InsertBody", false, false); capiInsertBody.setChangeDelegate(delegate(bool value, ChangedBy by) { // Add Permisison on true. if (value && !capiPerms.getList().Contains("InsertBody")) { capiPerms.getList().Add("InsertBody"); capiPerms.updateValue(); } // Remove Permission on false. else if (!value && capiPerms.getList().Contains("InsertBody")) { capiPerms.getList().Remove("InsertBody"); capiPerms.updateValue(); } }); capiPerms = new SimCapiStringArray(); capiPerms.expose("Permission.List", false, false); }
public void should_do_nothing_when_unexposed_if_not_exposed() { SimCapiBoolean simCapiBoolean = new SimCapiBoolean(true); string exposedName = "exposeName"; simCapiBoolean.unexpose(); Dictionary <string, SimCapiValue> _outGoingMap = TestHelpers.getReferenceField <Dictionary <string, SimCapiValue> >(_transporter, "_outGoingMap"); Assert.AreNotEqual(null, _outGoingMap); Assert.AreEqual(false, _outGoingMap.ContainsKey(exposedName)); }
public void should_error_when_try_to_expose_twice() { SimCapiBoolean simCapiBoolean = new SimCapiBoolean(true); string exposedName = "exposeName"; simCapiBoolean.expose(exposedName, true, true); Assert.Catch( delegate() { simCapiBoolean.expose(exposedName, true, true); }); }
/// <summary> /// Sets initial values. /// </summary> public void Init() { capiPaused = new SimCapiBoolean(Sim.Settings.Paused); capiPaused.expose("Speed.Pause", false, false); capiPaused.setChangeDelegate( delegate(Boolean value, ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Sim.Settings.Paused = value; } } ); capiSpeedTime = new SimCapiNumber((float)Sim.Settings.Speed); capiSpeedTime.expose("Speed.Time", false, false); capiSpeedTime.setChangeDelegate( delegate(float value, ChangedBy changedBy) { // Debug.Log("Speed.Time " + value + " " + changedBy); // Any changes done by the SIM go through the Body system first, which updates the Exposed Data. if (changedBy == ChangedBy.AELP) { Sim.Settings.Speed = value * (int)capiSpeedRatio.getValue(); } } ); capiSpeedRatio = new SimCapiEnum <SpeedRatio>(SpeedRatio.Second); capiSpeedRatio.expose("Speed.Ratio", false, false); capiSpeedRatio.setChangeDelegate( delegate(SpeedRatio value, ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Sim.Settings.Speed = capiSpeedTime.getValue() * (int)value; } } ); }
public void should_call_on_change_delegate() { SimCapiBoolean simCapiBoolean = new SimCapiBoolean(true); string exposedName = "exposeName"; simCapiBoolean.expose(exposedName, true, true); bool changeDelegateCalled = false; bool correctValue = false; simCapiBoolean.setChangeDelegate( delegate(bool value, ChangedBy changedBy) { changeDelegateCalled = true; if (value == false) { correctValue = true; } }); // Create the VALUE_CHANGE message SimCapiValue simCapiValue = new SimCapiValue(exposedName, SimCapiValueType.STRING, false, false, false, new StringData("false")); Dictionary <string, SimCapiValue> valueDictionary = new Dictionary <string, SimCapiValue>(); valueDictionary.Add(exposedName, simCapiValue); string valueChangedJson = SimCapiJsonMaker.create_VALUE_CHANGE(_transporter.getHandshake(), valueDictionary); _transporter.reciveJsonMessage(valueChangedJson); Assert.AreEqual(true, changeDelegateCalled); Assert.AreEqual(true, correctValue); }
public void Init(int id) { Id = id; string baseName = "Body." + id; capiName = new SimCapiString(name); capiName.expose(baseName + ".Name", false, false); capiName.setChangeDelegate( delegate(string value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Name = value; } } ); capiActive = new SimCapiBoolean(active); capiActive.expose(baseName + ".Active", false, false); capiActive.setChangeDelegate( delegate(bool value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Active = value; } } ); capiType = new SimCapiEnum <BodyType>(type); capiType.expose(baseName + ".Type", false, false); capiType.setChangeDelegate( delegate(BodyType value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Type = value; } } ); capiMaterial = new SimCapiEnum <BodyMaterial>(material); capiMaterial.expose(baseName + ".Material", false, false); capiMaterial.setChangeDelegate( delegate(BodyMaterial value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Material = value; } } ); capiMass = new SimCapiNumber((float)mass); capiMass.expose(baseName + ".Mass", false, false); capiMass.setChangeDelegate( delegate(float value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Mass = value; } } ); capiDiameter = new SimCapiNumber((float)diameter); capiDiameter.expose(baseName + ".Diameter", false, false); capiDiameter.setChangeDelegate( delegate(float value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Diameter = value; } } ); capiRotation = new SimCapiNumber((float)rotation); capiRotation.expose(baseName + ".Rotation", false, false); capiRotation.setChangeDelegate( delegate(float value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { Rotation = value; } } ); // Set Capi Vectors. Exposure and Delegation are handled interally. capiPosition = new SimCapiVector(baseName + ".Position", Position); capiVelocity = new SimCapiVector(baseName + ".Velocity", Velocity); //Auto velocity capiAutoVelocity = new SimCapiBoolean(!initialVelocity); capiAutoVelocity.expose(baseName + ".Velocity.Auto", false, false); capiAutoVelocity.setChangeDelegate( delegate(bool value, SimCapi.ChangedBy changedBy) { if (changedBy == ChangedBy.AELP) { InitialVelocity = !value; } } ); }