// 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 }
// 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 }