Exemple #1
0
        // Your block initialization
        public void BlockInit()
        {
            // No point to run this script if is a dedicated server because there's no graphics
            if (Anima.DedicatedServer)
            {
                return;
            }

            // Create the main Anima class
            m_anima = new Anima();

            // Initialize Anima
            if (!m_anima.Init(Entity as MyEntity, "Holographic Radar", "Holo"))
            {
                throw new ArgumentException("Anima failed to initialize!");
            }

            // Add parts
            m_part_1 = m_anima.AddPart(null, @"Radar\Radar_Part1");
            m_part_2 = m_anima.AddPart(m_part_1, @"Radar\Radar_Part2");
            m_part_3 = m_anima.AddPart(m_part_2, @"Radar\Radar_Part3");

            // Assign sequences
            coreFunctionality(m_part_1);
            m_part_1.OnComplete = coreFunctionality;

            // Play sequences
            m_part_1.Play(Anima.Playback.LOOP);
            m_part_2.Play(Anima.Playback.LOOP);
            m_part_3.Play(Anima.Playback.LOOP);

            // Update each frame, note this may not work for all object's types!
            Entity.NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME;
        }
Exemple #2
0
        // Our callback to change sequences
        public void coreFunctionality(AnimaPart part)
        {
            bool status = block.IsWorking;

            if (!lastStatus && status)
            {
                // Powering on
                m_part_1.Sequence = Seq_SC_Radar_Part1_powerOn.Adquire();
                m_part_2.Sequence = Seq_SC_Radar_Part2_powerOn.Adquire();
                m_part_3.Sequence = Seq_SC_Radar_Part3_powerOn.Adquire();
                blockMode         = BlockMode.POWER_ON;
            }
            else if (lastStatus && !status)
            {
                // Powering off
                m_part_1.Sequence = Seq_SC_Radar_Part1_powerOff.Adquire();
                m_part_2.Sequence = Seq_SC_Radar_Part2_powerOff.Adquire();
                m_part_3.Sequence = Seq_SC_Radar_Part3_powerOff.Adquire();
                blockMode         = BlockMode.POWER_OFF;
            }
            else if (status)
            {
                // While active
                m_part_1.Sequence = Seq_SC_Radar_Part1_active.Adquire();
                m_part_2.Sequence = Seq_SC_Radar_Part2_active.Adquire();
                m_part_3.Sequence = Seq_SC_Radar_Part3_active.Adquire();
                blockMode         = BlockMode.ACTIVE;
            }
            else
            {
                // While inactive
                m_part_1.Sequence = Seq_SC_Radar_Part1_inactive.Adquire();
                m_part_2.Sequence = Seq_SC_Radar_Part2_inactive.Adquire();
                m_part_3.Sequence = Seq_SC_Radar_Part3_inactive.Adquire();
                blockMode         = BlockMode.INACTIVE;
            }
            lastStatus = status;
        }