public void OnTriggerEnter(Collider other)
    {
        if (waterBody == null)
        {
            Debug.LogError("waterbody null", this);
        }
        WaterSensor component = other.gameObject.GetComponent <WaterSensor>();

        if (component != null)
        {
            component.OnEnterBody(waterBody);
            sensors.Add(component);
        }
        else
        {
            if (!respawnNetBody || NetGame.isClient)
            {
                return;
            }
            NetBody component2 = other.gameObject.GetComponent <NetBody>();
            if (component2 != null && component2.respawn)
            {
                MeshFilter component3 = other.gameObject.GetComponent <MeshFilter>();
                if (component3 != null)
                {
                    RespawnAdd(component2);
                }
            }
        }
    }
 private void Start()
 {
     ragdoll     = human.ragdoll;
     waterSensor = base.gameObject.AddComponent <WaterSensor>();
     Shell.RegisterCommand("smooth", OnCameraSmooth, "smooth <smoothing>\r\nSet camera smoothing amount (0-none, 0.5-default, 1-max)");
     Shell.RegisterCommand("fov", OnFOV, "fov <fov_adjust>\r\nSet FOV adjust (-10 - narrow, 0 - default, 30 - wide)");
     Shell.RegisterCommand("hdr", OnHDR, "hdr\r\nToggle high dynamic range");
 }
    public void OnTriggerExit(Collider other)
    {
        WaterSensor component = other.gameObject.GetComponent <WaterSensor>();

        if (component != null)
        {
            component.OnLeaveBody(waterBody);
            sensors.Remove(component);
        }
    }
示例#4
0
 private void Start()
 {
     body = GetComponent <Rigidbody>();
     ChangeSharkState(m_State);
     if (sensor == null)
     {
         sensor = GetComponentInChildren <WaterSensor>();
     }
     parts       = GetComponentsInChildren <FloatingMesh1>();
     startingDir = m_Tail[m_Tail.Length - 1].transform.forward;
 }
示例#5
0
    private void Start()
    {
        if (showDebug)
        {
            Debug.Log(base.name + " Started ");
        }
        index = counter++;
        body  = GetComponent <Rigidbody>();
        if (body == null)
        {
            throw new InvalidOperationException("Floater needs a Rigidbody");
        }
        if (hull == null)
        {
            hull = GetComponentInChildren <Collider>();
        }
        if (hull == null)
        {
            throw new InvalidOperationException("MeshCollider");
        }
        sensor = hull.GetComponent <WaterSensor>();
        if (sensor == null)
        {
            sensor = hull.gameObject.AddComponent <WaterSensor>();
        }
        if (mesh == null && hull is MeshCollider)
        {
            mesh = (hull as MeshCollider).sharedMesh;
        }
        triangles    = mesh.triangles;
        meshVertices = mesh.vertices;
        List <Vector3> list = new List <Vector3>();

        for (int i = 0; i < triangles.Length; i++)
        {
            Vector3 item = meshVertices[triangles[i]];
            int     num  = list.IndexOf(item);
            if (num < 0)
            {
                num = list.Count;
                list.Add(item);
            }
            triangles[i] = num;
        }
        meshVertices = list.ToArray();
        for (int j = 0; j < meshVertices.Length; j++)
        {
            meshVertices[j] = base.transform.InverseTransformPoint(hull.transform.TransformPoint(meshVertices[j]));
        }
        vertices = new FloatingVertex[meshVertices.Length];
    }
 public void OnDisable()
 {
     for (int i = 0; i < sensors.Count; i++)
     {
         sensors[i].OnLeaveBody(waterBody);
     }
     sensors.Clear();
     if (NetGame.isClient)
     {
         cameraController  = null;
         cameraWaterSensor = null;
         colliders         = null;
     }
 }
 private void OnEnable()
 {
     if (waterBody == null)
     {
         waterBody = GetComponentInParent <WaterBody>();
     }
     if (NetGame.isClient)
     {
         cameraController  = Object.FindObjectOfType <CameraController3>();
         cameraWaterSensor = cameraController.gameObject.GetComponent <WaterSensor>();
         oldCameraPosition = cameraController.transform.position;
         colliders         = GetComponents <Collider>();
     }
 }
示例#8
0
        public MainController(ICoffeeMakerApi cofeeMakerApi, IBoilerApi boilerApi)
        {
            var boiler = new BoilerController(boilerApi);

            var makeCoffeeButton = new MakeCoffeeButton(cofeeMakerApi);
            var waterSensor      = new WaterSensor(cofeeMakerApi);

            _pump             = new Pump(cofeeMakerApi);
            _cupSizeSelector  = new CupSizeSelector(cofeeMakerApi);
            _volumetricSensor = new VolumetricSensor(cofeeMakerApi);
            _readyLamp        = new ReadyLamp(cofeeMakerApi);

            _boilerIsReady   = boiler.BoilerIsReady;
            _waterTankIsFull = waterSensor.IsWaterTankFull();

            _volumetricSensor.Done              += StopPourCoffee;
            makeCoffeeButton.ButtonPressed      += StartPourCoffee;
            waterSensor.WaterTaankStatusChanged += OnWaterSensorWaterTaankStatusChanged;
            boiler.BoilerStatusChanged          += OnBoilerStatusChanged;

            CheckReadyLamp();
        }
示例#9
0
    public static void Main(string[] args)
    {
        Writer      writer = new Writer();
        WaterSensor sensor = new WaterSensor();

        sensor.NewReading(false);
        sensor.Apply(40, writer);

        sensor.FailedReading();
        sensor.Apply(10, writer);

        sensor.FailedReading();
        sensor.Apply(10, writer);

        sensor.FailedReading();
        sensor.Apply(10, writer);

        sensor.NewReading(true);
        sensor.Apply(10, writer);

        sensor.NewReading(false);
        sensor.Apply(50, writer);
    }
        public void WaterSensor_FromDynamic_ShouldReturnExpectedResult(InstalledAppInstance installedApp)
        {
            var expectedResult = new WaterSensor()
            {
                Id           = Guid.NewGuid().ToString(),
                Label        = "MyDevice",
                CurrentState = WaterState.Dry
            };

            var deviceJson = $@"{{
                ""deviceId"": ""{expectedResult.Id}"",
                ""name"": ""NAME"",
                ""label"": ""{expectedResult.Label}"",
                ""locationId"": ""{installedApp.InstalledLocation.Id}""
            }}";

            var statusJson = $@"{{
                ""deviceId"": ""{expectedResult.Id}"",
                ""name"": ""NAME"",
                ""label"": ""{expectedResult.Label}"",
                ""locationId"": ""{installedApp.InstalledLocation.Id}"",
                ""components"" : {{
                    ""main"": {{
                        ""waterSensor"": {{
                            ""water"": {{
                                ""value"": ""dry""
                            }}
                        }}
                    }}
                }}
            }}";

            dynamic device = JObject.Parse(deviceJson);
            dynamic status = JObject.Parse(statusJson);

            var result = WaterSensor.WaterSensorFromDynamic(device,
                                                            status);

            Assert.Equal(expectedResult, result);

            expectedResult.CurrentState = WaterState.Wet;
            statusJson = $@"{{
                ""deviceId"": ""{expectedResult.Id}"",
                ""name"": ""NAME"",
                ""label"": ""{expectedResult.Label}"",
                ""locationId"": ""{installedApp.InstalledLocation.Id}"",
                ""components"" : {{
                    ""main"": {{
                        ""waterSensor"": {{
                            ""water"": {{
                                ""value"": ""wet""
                            }}
                        }}
                    }}
                }}
            }}";

            status = JObject.Parse(statusJson);

            result = WaterSensor.WaterSensorFromDynamic(device,
                                                        status);

            Assert.Equal(expectedResult, result);

            expectedResult.CurrentState = WaterState.Unknown;
            statusJson = $@"{{
                ""deviceId"": ""{expectedResult.Id}"",
                ""name"": ""NAME"",
                ""label"": ""{expectedResult.Label}"",
                ""locationId"": ""{installedApp.InstalledLocation.Id}"",
                ""components"" : {{
                    ""main"": {{
                        ""waterSensor"": {{
                            ""water"": {{
                                ""value"": ""unknown""
                            }}
                        }}
                    }}
                }}
            }}";

            status = JObject.Parse(statusJson);

            result = WaterSensor.WaterSensorFromDynamic(device,
                                                        status);

            Assert.Equal(expectedResult, result);

            _ = expectedResult.GetHashCode();
            _ = expectedResult.ToJson();
        }
示例#11
0
 private void InitGPIO()
 {
     _waterSensor = new WaterSensor();
 }