Example #1
0
            // public float3 f3_moveAbout ;

            // Blocks.MovePatternComonent
            public void Execute()   // for IJob
            // public void Execute ( int i )  // for IJobParallelFor
            {
                // f3_moveAbout += new float3 ( random.NextFloat ( -0.01f, 0.01f ) ,0,0 ) ;

                // iterate through patterns group, to move its composites
                for (int i = 0; i < movePatternData.Length; i++)
                {
                    PatternComponent patternGroup = movePatternData.a_compositePatternComponent [i];
                    //int i_ComponentsPatternIndex = compositePatternComponent.i_patternIndex ;

                    patternGroup.f_baseScale = 3;  // test temp
                    movePatternData.a_compositePatternComponent [i] = patternGroup;

                    MovePattern movePattern = movePatternData.a_movePatterns [i];

                    //int i_entityBufferCount = movePatternData.a_compositeEntities [i].Length ;

                    //movePattern.f3_position = f3_moveAbout + new float3 (1,0,0) * i * patternGroup.f_baseScale + new float3 (5,0,0) ; // * 0.001f;
                    movePattern.f3_position            = f3_moveAbout + patternGroup.f3_localPosition * patternGroup.f_baseScale + new float3(5, 0, 0); // * 0.001f;
                    movePatternData.a_movePatterns [i] = movePattern;                                                                                   // update

                    float f_distance = math.lengthSquared(movePattern.f3_position);


                    Entity paternEntity = movePatternData.a_entities [i];

                    // move composite
                    Position position = new Position()
                    {
                        Value = movePattern.f3_position
                    };
                    //position.Value = blockCompositeBufferElement.f3_position + movePattern.f3_position ;
                    // commandBuffer.SetComponent ( paternEntity, position ) ;

                    // commandBuffer.AddComponent ( paternEntity, new Blocks.Pattern.RequestPatternSetupTag () ) ;

                    int i_entityBufferCount = movePatternData.a_compositeEntities [i].Length;

                    if (i_entityBufferCount > 0)
                    {
                        // iterate through pattern's group composites
                        for (int i_bufferIndex = 0; i_bufferIndex < i_entityBufferCount; i_bufferIndex++)
                        {
                            Common.BufferElements.EntityBuffer entityBuffer = movePatternData.a_compositeEntities [i][i_bufferIndex];

                            Entity compositeEntity = entityBuffer.entity;

                            // get composite data
                            Blocks.CompositeComponent compositeComponent = a_compositeComponents [compositeEntity];
                            Blocks.Pattern.CompositeInPatternPrefabComponent blockCompositeBufferElement = Pattern.AddPatternPrefabSystem._GetCompositeFromPatternPrefab(compositeComponent.i_inPrefabIndex);

                            // move composite
                            // Position position = new Position () ;
                            position.Value = blockCompositeBufferElement.f3_position * patternGroup.f_baseScale + movePattern.f3_position;
                            commandBuffer.SetComponent(compositeEntity, position);

                            Scale scale = new Scale()
                            {
                                Value = blockCompositeBufferElement.f3_scale * patternGroup.f_baseScale
                            };
                            commandBuffer.SetComponent(compositeEntity, scale);

                            if (f_distance > 10)
                            {
                            }
                            else
                            {
                                // Entity paternEntity = movePatternData.a_entities [i] ;
                                // commandBuffer.AddComponent ( paternEntity, new Blocks.Pattern.RequestPatternReleaseTag () ) ;

                                //Test02.AddBlockSystem._AddBlockRequestViaCustomBufferWithEntity ( commandBuffer, paternEntity, movePattern.f3_position, new float3 (1,1,1), float3.zero, new Entity (), float4.zero ) ;
                            }
                        } // for
                    }
                    else
                    {
                        Entity compositeEntity = patternGroup.blockEntity;

                        // get composite data
                        Blocks.CompositeComponent compositeComponent = a_compositeComponents [compositeEntity];
                        Blocks.Pattern.CompositeInPatternPrefabComponent blockCompositeBufferElement = Pattern.AddPatternPrefabSystem._GetCompositeFromPatternPrefab(compositeComponent.i_inPrefabIndex);

                        // move composite
                        // Position position = new Position () ;
                        position.Value = blockCompositeBufferElement.f3_position * patternGroup.f_baseScale + movePattern.f3_position;
                        commandBuffer.SetComponent(compositeEntity, position);

                        //Scale scale = new Scale () { Value = blockCompositeBufferElement.f3_scale * patternGroup.f_baseScale * 3 } ;
                        //commandBuffer.SetComponent ( compositeEntity, scale ) ;
                    }
                } // for
            }
Example #2
0
            // public float3 f3_moveAbout ;

            // Blocks.MovePatternComonent
            public void Execute()   // for IJob
            // public void Execute ( int i )  // for IJobParallelFor
            {
                // Iterate through patterns groups, to move its composites
                for (int i = 0; i < movePatternData.Length; i++)
                {
                    PatternComponent patternGroup = movePatternData.a_compositePatternComponent [i];
                    // int i_componentsPatternIndex = patternGroup.i_patternIndex ;

                    patternGroup.f_baseScale = 1f;  // test temp

                    MovePattern movePattern = movePatternData.a_movePatterns [i];

                    int i_entityBufferCount = movePatternData.a_compositeEntities [i].Length;

                    // position offset test
                    //movePattern.f3_position = f3_moveAbout + patternGroup.f_localPosition * patternGroup.f_baseScale * 3; // * 0.001f;
                    // movePattern.f3_position = f3_moveAbout + patternGroup.f_localPosition * patternGroup.f_baseScale + new float3 (5,0,0) ; // * 0.001f;
                    movePattern.f3_position = f3_moveAbout + patternGroup.f3_localPosition * 3 + new float3(5, 0, 0); // * 0.001f;

                    movePatternData.a_movePatterns [i] = movePattern;                                                 // update

                    float f_distance = math.lengthSquared(movePattern.f3_position);

                    // if ( f_distance < 8 )
                    //  {

                    // iterate through pattern's group composites
                    for (int i_bufferIndex = 0; i_bufferIndex < i_entityBufferCount; i_bufferIndex++)
                    {
                        Common.BufferElements.EntityBuffer entityBuffer = movePatternData.a_compositeEntities [i][i_bufferIndex];

                        Entity compositeEntity = entityBuffer.entity;

                        if (compositeEntity.Index != 0)
                        {
                            // get composite data
                            Blocks.CompositeComponent compositeComponent = a_compositeComponents [compositeEntity];
                            Blocks.Pattern.CompositeInPatternPrefabComponent blockCompositeBufferElement = Pattern.AddPatternPrefabSystem._GetCompositeFromPatternPrefab(compositeComponent.i_inPrefabIndex);

                            // move composite
                            Position position = new Position();
                            position.Value = blockCompositeBufferElement.f3_position * patternGroup.f_baseScale + movePattern.f3_position;
                            //position.Value = blockCompositeBufferElement.f3_position * 3 + movePattern.f3_position ;
                            // movePattern.f3_position = f3_moveAbout + patternGroup.f_localPosition * patternGroup.f_baseScale + new float3 (5,0,0) ; // * 0.001f;
                            commandBuffer.SetComponent(compositeEntity, position);

                            Scale scale = new Scale()
                            {
                                Value = blockCompositeBufferElement.f3_scale * patternGroup.f_baseScale
                            };
                            commandBuffer.SetComponent(compositeEntity, scale);
                        }
                    } // for

                    // }
                    //  else
                    //  {

                    /*
                     * Entity paternEntity = movePatternData.a_entities [i] ;
                     * commandBuffer.AddComponent ( paternEntity, new Blocks.Pattern.RequestPatternReleaseTag () ) ;
                     *
                     * // Test02.AddBlockSystem._AddBlockRequestViaCustomBufferWithEntity ( commandBuffer, paternEntity, movePattern.f3_position, new float3 (1,1,1), float3.zero, new Entity (), float4.zero ) ;
                     * commandBuffer.AddComponent ( paternEntity, new Common.Components.Lod05Tag () ) ; // test only
                     * commandBuffer.AddComponent ( paternEntity, new Blocks.Pattern.RequestPatternSetupTag () ) ;
                     */

                    //patternGroup.f_baseScale = 3 ;
                    //movePatternData.a_compositePatternComponent [i] = patternGroup ;
                    //  }
                } // for
            }