Example #1
0
    //void OnGUI()
    //{
    //    GUI.TextField(new Rect(GameCamera.WorldToScreenPoint(this.transform.position).x, GameCamera.WorldToScreenPoint(this.transform.position).y + 40, 140, 60), "wire voltage:" + voltage + "\nvoltage sum:" + voltage_sum_buf + "\namperge:" + amperage);
    //}

    private void OnTriggerStay(Collider other_object)
    {
        if (other_object.GetComponent <input_point>())
        {
            input_connect        = other_object.GetComponent <input_point>();
            input_voltage_buf[i] = input_connect.parts_voltage;
            if (input_connect.amperage >= 0)
            {
                input_amparege += input_connect.amperage;
                amp_j++;
            }
            else
            {
                output_amperage -= input_connect.amperage;
                amp_i++;
            }
            i++;
            if (input_connect.flag == false)
            {
                in_flag    = true;
                in_voltage = input_connect.voltage;
            }
        }
        if (other_object.GetComponent <output_point>())
        {
            output_connect        = other_object.GetComponent <output_point>();
            output_voltage_buf[j] = output_connect.parts_voltage;
            if (output_connect.amperage > 0)
            {
                output_amperage += output_connect.amperage;
                amp_i++;
            }
            else
            {
                input_amparege -= output_connect.amperage;
                amp_j++;
            }
            j++;
            if (output_connect.flag == false)
            {
                out_flag    = true;
                out_voltage = output_connect.voltage;
            }
        }

        //if (other_object.GetComponent<wire>())
        //{
        //    input_voltage_buf[i] = other_object.GetComponent<wire>().voltage;
        //    if (input_connect.amperage >= 0)
        //    {
        //        amperage_def = other_object.GetComponent<wire>().amperage_def;
        //    }
        //    i++;
        //}
    }
 // Update is called once per frame
 void Update()
 {
     output_pointval = GetComponentInChildren <output_point>();
     input_pointval  = GetComponentInChildren <input_point>();
     amperage_def    = output_pointval.amperage_def;
     //       print(" amperage_def" + amperage_def);
     if (battery_exist_flag == false)
     {
         if (output_pointval.wire_attached_flag && input_pointval.wire_attached_flag)
         {
             if (Mathf.Abs(amperage_def) < 0.04f)
             {
                 amperage = amperage + amperage_def / 2.0f;
             }
             else
             {
                 amperage = amperage + 0.02f * Math.Sign(amperage_def);
             }
         }
         else if (output_pointval.wire_attached_flag)
         {
             amperage = 0;
         }
         else if (input_pointval.wire_attached_flag)
         {
             amperage = 0;
         }
         input_voltage  = 0;
         output_voltage = input_voltage + voltage;
     }
     else
     {
         if (output_pointval.wire_attached_flag && input_pointval.wire_attached_flag)
         {
             if (Math.Abs(amperage_def) < 0.009f)
             {
                 amperage = amperage + amperage_def / 2.0f;
             }
             else
             {
                 amperage = amperage + 0.0045f * Math.Sign(amperage_def);
             }
             input_voltage  = (output_pointval.wire_voltage + input_pointval.wire_voltage - voltage) / 2.0f;
             output_voltage = input_voltage + voltage;
             //output_voltage = output_pointval.wire_voltage;
             //input_voltage = output_voltage - voltage;
         }
         else if (output_pointval.wire_attached_flag)
         {
             output_voltage = output_pointval.wire_voltage;
             input_voltage  = output_voltage - voltage;
             amperage       = 0;
         }
         else if (input_pointval.wire_attached_flag)
         {
             input_voltage  = input_pointval.wire_voltage;
             output_voltage = input_voltage + voltage;
             amperage       = 0;
         }
     }
 }
Example #3
0
    //void OnGUI()
    //{
    //    GUI.TextField(new Rect(GameCamera.WorldToScreenPoint(this.transform.position).x, GameCamera.WorldToScreenPoint(this.transform.position).y + 40, 140, 60), "weight:" + weight + "\namperage_def:" + amperage_def + "\nvoltage:" + voltage);
    //}

    private void OnTriggerStay(Collider other_object)
    {
        if (!eliminate)
        {
            if (other_object.GetComponent <input_point>())
            {
                input_connect        = other_object.GetComponent <input_point>();
                input_voltage_buf[i] = input_connect.parts_voltage;
                //          print("input:"+input_connect.amperage+"name"+input_connect.gameObject.transform.parent.name);
                if (input_connect.amperage >= 0)
                {
                    input_amparege += input_connect.amperage;
                    amp_j++;
                }
                else
                {
                    output_amperage -= input_connect.amperage;
                    amp_i++;
                }
                i++;
                if (!input_connect.flag)
                {
                    //                print("get");
                    in_flag    = true;
                    in_voltage = input_connect.voltage;
                }
            }
            if (other_object.GetComponent <output_point>())
            {
                output_connect        = other_object.GetComponent <output_point>();
                output_voltage_buf[j] = output_connect.parts_voltage;
                //        print("output:" + output_connect.amperage + "name" + output_connect.gameObject.name);
                if (output_connect.amperage > 0)
                {
                    output_amperage += output_connect.amperage;
                    amp_i++;
                }
                else
                {
                    input_amparege -= output_connect.amperage;
                    amp_j++;
                }
                j++;
                if (!output_connect.flag)
                {
                    out_flag    = true;
                    out_voltage = output_connect.voltage;
                }
            }

            if (other_object.GetComponent <wire>())
            {
                if (!other_object.GetComponent <wire>().solved)
                {
                    for (k = 0; k < other_object.GetComponent <wire>().i; k++)
                    {
                        input_voltage_buf[i + k] = other_object.GetComponent <wire>().input_voltage_buf[k];
                    }
                    i = i + k;
                    for (k = 0; k < other_object.GetComponent <wire>().j; k++)
                    {
                        output_voltage_buf[i + k] = other_object.GetComponent <wire>().output_voltage_buf[k];
                    }
                    j = j + k;
                    output_amperage += other_object.GetComponent <wire>().output_amperage;
                    amp_i           += other_object.GetComponent <wire>().amp_i;
                    input_amparege  += other_object.GetComponent <wire>().input_amparege;
                    amp_j           += other_object.GetComponent <wire>().amp_j;
                    if (other_object.GetComponent <wire>().in_flag)
                    {
                        in_flag    = true;
                        in_voltage = other_object.GetComponent <wire>().in_voltage;
                    }
                    if (other_object.GetComponent <wire>().out_flag)
                    {
                        out_flag    = true;
                        out_voltage = other_object.GetComponent <wire>().out_voltage;
                    }
                }
                else
                {
                    //print("already solved");
                    for (k = 0; k < other_object.GetComponent <wire>().i; k++)
                    {
                        input_voltage_buf[k] = other_object.GetComponent <wire>().input_voltage_buf[k];
                    }
                    i = k;
                    for (k = 0; k < other_object.GetComponent <wire>().j; k++)
                    {
                        output_voltage_buf[k] = other_object.GetComponent <wire>().output_voltage_buf[k];
                    }
                    j = k;
                    output_amperage = other_object.GetComponent <wire>().output_amperage;
                    amp_i           = other_object.GetComponent <wire>().amp_i;
                    input_amparege  = other_object.GetComponent <wire>().input_amparege;
                    amp_j           = other_object.GetComponent <wire>().amp_j;
                    if (other_object.GetComponent <wire>().in_flag)
                    {
                        in_flag    = true;
                        in_voltage = other_object.GetComponent <wire>().in_voltage;
                    }
                    if (other_object.GetComponent <wire>().out_flag)
                    {
                        out_flag    = true;
                        out_voltage = other_object.GetComponent <wire>().out_voltage;
                    }
                }
                solved = true;
            }
        }
    }