Exemple #1
0
 //Thread: Main
 public void OnCreated(ITerrain terrain)
 {
     ChirpLog.Debug("ITerrain Created");
 }
 // Thread: Main
 public override void OnCreated(ILoading loading)
 {
     ChirpLog.Debug("ILoading Created");
 }
Exemple #3
0
 //Thread: Main
 public override void OnCreated(IChirper chirper)
 {
     ChirpLog.Debug("IChirper Created");
 }
 //Thread: Main
 public override void OnCreated(ISerializableData serializedData)
 {
     ChirpLog.Debug("ISerialization Created");
 }
Exemple #5
0
        public void draw_lights(int mode)
        {
            ChirpLog.Debug("Start draw_lights");
            Color      kleur = Color.white;
            Vector3    position = Vector3.zero;
            Quaternion orientation = Quaternion.identity;
            int        i, j, d, m, ko;
            var        cam_info = Camera.main;
            Light      lightComp;
            int        n       = 0;
            float      working = 0.0f;
            Vector3    speed;

            for (i = 0; i < vehicles.Length; i++)
            {
                if ((vehicles[i].m_flags & Vehicle.Flags.Spawned) != 0 && n < max_cars && (ushort)i == vehicles[i].GetFirstVehicle((ushort)i))
                {
                    vehicles[i].GetSmoothPosition((ushort)i, out position, out orientation);
                    if (inrange(position))
                    {
                        Vector3 forward = orientation * Vector3.forward;
                        Vector3 up      = orientation * Vector3.up;

                        float len = vehicles[i].CalculateTotalLength((ushort)i);
                        if (len > 10)
                        {
                            len = 10;
                        }
                        lichten[n].transform.position = position + 1f * up + len * forward * 0.5f;
                        lichten[n].transform.LookAt(position + len * forward * 1.0f);

                        lichten[n].SetActive(true);
                        lightComp           = lichten[n].GetComponent <Light>();
                        lightComp.type      = LightType.Spot;
                        lightComp.spotAngle = 50f;
                        lightComp.intensity = 8;
                        kleur.r             = 1f;
                        kleur.g             = 0.96f;
                        kleur.b             = 0.9f;
                        kleur.a             = 1f;
                        lightComp.color     = kleur;
                        n++;
                        lightComp.range = 10f;
                    }
                }

                if ((vehicles[i].m_flags & Vehicle.Flags.Spawned) != 0 && n < max_cars && (ushort)i == vehicles[i].GetLastVehicle((ushort)i) && cam_info.transform.position.y < 300)
                {
                    speed = vehicles[i].GetLastFrameVelocity();
                    vehicles[i].GetSmoothPosition((ushort)i, out position, out orientation);
                    if (inrange(position) && speed.magnitude < 6)
                    {
                        Vector3 forward = orientation * Vector3.forward;
                        Vector3 up      = orientation * Vector3.up;

                        float len = vehicles[i].CalculateTotalLength((ushort)i);
                        if (len > 10)
                        {
                            len = 10;
                        }
                        lichten[n].transform.position = position + 1f * up - len * forward * 0.5f;
                        lichten[n].transform.LookAt(position - len * forward * 1.0f);
                        //lichten[n].transform.Rotate(right*20);
                        //lichten[n].transform.Rotate(forward*180);
                        lichten[n].SetActive(true);
                        lightComp           = lichten[n].GetComponent <Light>();
                        lightComp.type      = LightType.Spot;
                        lightComp.spotAngle = 60f;

                        //ChirpLog.Debug((speed.x+speed.y+speed.z) +" break?");

                        lightComp.intensity = 6 - speed.magnitude;
                        kleur           = Color.red;
                        lightComp.color = kleur;
                        lightComp.range = 10f;
                        n++;
                    }
                }



                if (n == max_cars)
                {
                    i = 100000;
                }
            }

            ChirpLog.Debug(n + " Lights after cars");
            //ChirpLog.Flush();
            //DebugOutputPanel.AddMessage (ColossalFramework.Plugins.PluginManager.MessageType.Message, n + " Lights after cars");
            Vector3 poss = Vector3.zero;
            Vector3 pose = Vector3.zero;
            Vector3 positions = Vector3.zero;
            Vector3 positione = Vector3.zero;
            Vector3 middlePos1 = Vector3.zero;
            Vector3 middlePos2 = Vector3.zero;
            float   afstand, real_pitch;
            float   lamps;

            //ChirpLog.Flush();
            kleur.r = 1f;
            kleur.g = 0.96f;
            kleur.b = 0.9f;
            kleur.a = 1f;

            //ChirpLog.Debug(n + " cars");
            for (d = 0; d < count_build_prop; d++)
            {
                i = build_props[d];
                j = build_props[d + max_building_props];
                if (buildings[i].Info != null)
                {
                    var propsjes = buildings[i].Info.m_props;
                    if (propsjes[j].m_prop != null)
                    {
                        position   = propsjes[j].m_position;
                        position.z = -position.z;
                        position   = buildings[i].CalculatePosition(position);
                        if (inrange(position))
                        {
                            lichten[n].transform.position = position + new Vector3(0f, 3f, 0f);
                            lichten[n].transform.LookAt(position);
                            lichten[n].SetActive(true);
                            lightComp           = lichten[n].GetComponent <Light>();
                            lightComp.type      = LightType.Spot;
                            lightComp.intensity = 5;
                            lightComp.spotAngle = 170f;
                            lightComp.color     = kleur;
                            lightComp.range     = 10f;
                            n++;
                        }
                    }
                }
                if (n == max_cars)
                {
                    d = 100000;
                }
            }


            //ChirpLog.Debug(n + " Lights after props, lane props: " + count_lane_prop);
            //ChirpLog.Flush();
            //DebugOutputPanel.AddMessage (ColossalFramework.Plugins.PluginManager.MessageType.Message, n + " Lights after props, lane props: " + count_lane_prop);
            //road lights
            kleur.r = 1f;
            kleur.g = 0.96f;
            kleur.b = 0.7f;
            kleur.a = 1f;
            for (d = 0; d < count_lane_prop; d++)
            {
                //ChirpLog.Debug(d + " regel");
                m = lane_props[d];
                i = lane_props[d + max_lane_props];
                j = lane_props[d + max_lane_props * 2];
                if (segments[m].Info.m_lanes[i].m_laneProps.m_props[j].m_prop != null)
                {
                    position = netMan.m_nodes.m_buffer[segments[m].m_startNode].m_position;
                    segments[m].GetClosestPositionAndDirection(position, out positions, out poss);
                    //poss =  segments[m].m_startDirection;

                    position = netMan.m_nodes.m_buffer[segments[m].m_endNode].m_position;
                    segments[m].GetClosestPositionAndDirection(position, out positione, out pose);
                    //pose =  segments[m].m_endDirection;
                    NetSegment.CalculateMiddlePoints(positions, poss, positione, pose, true, true, out middlePos1, out middlePos2, out afstand);
                    if (inrange(position))
                    {
                        if (segments[m].Info.m_lanes[i].m_laneProps.m_props[j].m_minLength < afstand)
                        {
                            //
                            afstand = afstand - segments[m].Info.m_lanes[i].m_laneProps.m_props[j].m_segmentOffset;
                            lamps   = (int)((afstand) / (segments[m].Info.m_lanes[i].m_laneProps.m_props[j].m_repeatDistance) + 0.53f);
                            //DebugOutputPanel.AddMessage (ColossalFramework.Plugins.PluginManager.MessageType.Message, " Lamps: " + segments[m].Info.m_lanes[i].m_stopOffset);

                            real_pitch = (afstand + 0.5f * segments[m].Info.m_lanes[i].m_laneProps.m_props[j].m_repeatDistance) / lamps;


                            if ((segments[m].m_flags & NetSegment.Flags.End) == NetSegment.Flags.End)
                            {
                                working = real_pitch * 0.5f;
                                //afstand = afstand-real_pitch*0.5f;
                                real_pitch = (afstand + 0.5f * segments[m].Info.m_lanes[i].m_laneProps.m_props[j].m_repeatDistance - 10f) / lamps;
                                //lamps = 3;
                            }
                            else
                            {
                                working    = 0;
                                real_pitch = (afstand + 0.5f * segments[m].Info.m_lanes[i].m_laneProps.m_props[j].m_repeatDistance - 20f) / lamps;
                                //lamps = 1;
                            }

                            for (ko = 0; ko < lamps; ko++)
                            {
                                //if(working >  segments[m].Info.m_lanes[i].m_laneProps.m_props[j].m_segmentOffset){
                                //- segments[m].Info.m_lanes[i].m_lawneProps.m_props[j].m_position
                                if (lamps == 1)
                                {
                                    //ChirpLog.Debug("Flags: " + segments[m].m_flags);
                                    //ChirpLog.Debug("m_startDirection: " + segments[m].m_startDirection);
                                    //ChirpLog.Debug("m_endDirection: " + segments[m].m_endDirection);
                                    //ChirpLog.Debug("poss: " + poss);
                                    //ChirpLog.Debug("pose: " + pose);
                                    //ChirpLog.Debug("m_verticalOffset: " + segments[m].Info.m_lanes[i].m_verticalOffset);
                                    if ((segments[m].m_flags & NetSegment.Flags.End) == NetSegment.Flags.End)
                                    {
                                        position = positions + ((afstand + 10f) / 2f) * segments[m].m_startDirection + segments[m].Info.m_lanes[i].m_laneProps.m_props[j].m_position;
                                    }
                                    else
                                    {
                                        position = positions + ((afstand) / 2f) * poss + ko * Vector3.forward + segments[m].Info.m_lanes[i].m_laneProps.m_props[j].m_position;
                                    }
                                    lichten[n].transform.position = position + new Vector3(0f, 7f, 0f);
                                    lichten[n].transform.LookAt(position);
                                    lichten[n].SetActive(true);
                                    lightComp           = lichten[n].GetComponent <Light>();
                                    lightComp.type      = LightType.Spot;
                                    lightComp.intensity = 150;
                                    lightComp.spotAngle = 150f;
                                    lightComp.color     = kleur;
                                    lightComp.range     = 15f;
                                    n++;
                                }
                                //working = working - segments[m].Info.m_lanes[i].m_laneProps.m_props[j].m_repeatDistance;


                                if (lamps > 1)
                                {
                                    //center at = (afstand)/2f
                                    if ((segments[m].m_flags & NetSegment.Flags.End) == NetSegment.Flags.End)
                                    {
                                        position = positions + (afstand / 2f - real_pitch / 2f + real_pitch * ko + 5f) * poss;
                                    }
                                    else
                                    {
                                        position = positions + (afstand / 2f - real_pitch / 2f + real_pitch * ko) * poss;
                                    }
                                    lichten[n].transform.position = position + new Vector3(0f, 7f, 0f);
                                    lichten[n].transform.LookAt(position);
                                    lichten[n].SetActive(true);
                                    lightComp           = lichten[n].GetComponent <Light>();
                                    lightComp.type      = LightType.Spot;
                                    lightComp.intensity = 6;
                                    lightComp.spotAngle = 150f;
                                    lightComp.color     = kleur;
                                    lightComp.range     = 15f;
                                    n++;
                                    //working = working + real_pitch;
                                }
                            }
                        }
                    }
                }
                //}

                if (n > max_cars)
                {
                    d = 100000;
                }
            }
            ChirpLog.Debug(n + " Lights !");
            //ChirpLog.Flush();
            for (i = n; n < 256; n++)
            {
                lichten[n].SetActive(false);
            }
            ChirpLog.Debug("Done");
            //ChirpLog.Flush();
        }
Exemple #6
0
        public void OnUpdate(float realTimeDelta, float simulationTimeDelta)
        {
            try
            {
                ChirpLog.Debug("Start with all");
                //DebugOutputPanel.AddMessage (ColossalFramework.Plugins.PluginManager.MessageType.Message, " fps: " + 1f/realTimeDelta);
                //check init
                if (!_mod_loaded)
                {
                    _mod = new MyIUserMod();
                    if (_mod.Dim_all() > 0)
                    {
                        //ChirpLog.Debug("StartGame");
                        //ChirpLog.Flush();
                        _mod.start_game();
                        _mod_loaded = true;
                        //DebugOutputPanel.AddMessage (ColossalFramework.Plugins.PluginManager.MessageType.Message, " Light level: " + _mod.get_info_main_light());
                    }
                }
                else
                {
                    ChirpLog.Debug("Delta");
                    avg_fps = avg_fps * 0.97f + 1f / realTimeDelta * 0.03f;
                    if (_mod.max_cars < 200)
                    {
                        if (avg_fps > 35)
                        {
                            _mod.max_cars = _mod.max_cars + 1;
                            //DebugOutputPanel.AddMessage (ColossalFramework.Plugins.PluginManager.MessageType.Message, "Light max:" + _mod.max_cars);
                        }
                    }
                    if (_mod.max_cars > 32)
                    {
                        if (avg_fps < 30)
                        {
                            _mod.max_cars = _mod.max_cars - 1;
                            //DebugOutputPanel.AddMessage (ColossalFramework.Plugins.PluginManager.MessageType.Message, "Light max:" + _mod.max_cars + " reduced");
                        }
                    }
                    ChirpLog.Debug("A");
                    if (_mod.updated_segment_last < _mod.segments.Length && _mod.count_build_prop < _mod.max_lane_props)
                    {
                        _mod.road_props_list(_mod.updated_segment_last, _mod.updated_segment_last + 500);
                        _mod.updated_segment_last = _mod.updated_segment_last + 500;
                        //_mod.updated_segment_last = 0;
                        //_mod.count_build_prop = 0;
                    }
                    ChirpLog.Debug("B");
                    //DebugOutputPanel.AddMessage (ColossalFramework.Plugins.PluginManager.MessageType.Message, " Light level: " + _mod.get_info_main_light());
                    if (frame_counter > 10)
                    {
                        if (_mod.get_info_main_light() < 40)
                        {
                            night = true;
                        }
                        else
                        {
                            night = false;
                        }
                        frame_counter = 0;
                    }
                    frame_counter++;
                    if (night)
                    {
                        //slow road updater
                        ChirpLog.Debug("C");

                        _mod.Update();
                    }
                    else
                    {
                        _mod.day();
                    }

                    ChirpLog.Debug("Done with all");
                    //ChirpLog.Flush();
                }
            }catch
            {
            }
        }
 // Thread: Main
 public void OnCreated(IMilestones milestones)
 {
     ChirpLog.Debug("IMilestones Created");
 }
Exemple #8
0
 public void OnCreated(IChirper chirper)
 {
     ChirpLog.Info("Chirp Logger Example Online");
     ChirpLog.Debug(DumpAllGameObjects());
 }
 //Thread: Main
 public override void OnCreated(IThreading threading)
 {
     ChirpLog.Debug("IThreading Created");
 }
Exemple #10
0
 // Thread: Main
 public override void OnCreated(IEconomy economy)
 {
     ChirpLog.Debug("IEconomy Created");
 }
Exemple #11
0
 //Thread: Main
 public void OnCreated(IAreas areas)
 {
     ChirpLog.Debug("IAreas Created");
 }
 //Thread: Main
 public override void OnCreated(ILevelUp levelUp)
 {
     ChirpLog.Debug("ILevelUp Created");
 }
 //Thread: Main
 public void OnCreated(IDemand demand)
 {
     ChirpLog.Debug("IDemand Created");
 }