Ticket #2264: TerrainFlattening.diff

File TerrainFlattening.diff, 3.0 KB (added by wraitii, 10 years ago)
  • binaries/data/mods/public/simulation/helpers/Commands.js

     
    876876    var cmpFoundation = Engine.QueryInterface(ent, IID_Foundation);
    877877    cmpFoundation.InitialiseConstruction(player, cmd.template);
    878878
     879
     880    // If it modifies the terrain, apply the changes
     881    var CmpTerrainModifier = Engine.QueryInterface(ent, IID_TerrainModifier);
     882    if (CmpTerrainModifier)
     883        CmpTerrainModifier.ApplyTerrainModification();
     884
    879885    // send Metadata info if any
    880886    if (cmd.metadata)
    881887        Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
  • binaries/data/mods/public/simulation/templates/template_structure.xml

     
    9797    <BarHeight>0.6</BarHeight>
    9898    <HeightOffset>12.0</HeightOffset>
    9999  </StatusBars>
     100  <TerrainModifier/>
    100101  <TerritoryDecay>
    101102    <HealthDecayRate>5</HealthDecayRate>
    102103  </TerritoryDecay>
  • source/simulation2/TypeList.h

     
    149149INTERFACE(Terrain)
    150150COMPONENT(Terrain)
    151151
     152INTERFACE(TerrainModifier)
     153COMPONENT(TerrainModifier)
     154
    152155INTERFACE(TerritoryInfluence)
    153156COMPONENT(TerritoryInfluence)
    154157
  • source/simulation2/components/CCmpTemplateManager.cpp

     
    572572    permittedComponentTypes.insert("AIProxy");
    573573    permittedComponentTypes.insert("RallyPoint");
    574574    permittedComponentTypes.insert("RallyPointRenderer");
     575    permittedComponentTypes.insert("TerrainModifier");
    575576
    576577    CParamNode::LoadXMLString(out, "<Entity/>");
    577578    out.CopyFilteredChildrenOfChild(in, "Entity", permittedComponentTypes);
  • source/simulation2/components/CCmpTerrain.cpp

     
    2525#include "simulation2/MessageTypes.h"
    2626
    2727#include "graphics/Terrain.h"
     28#include "graphics/RenderableObject.h"
     29#include "ps/Game.h"
     30#include "ps/World.h"
    2831#include "renderer/Renderer.h"
    2932#include "renderer/WaterManager.h"
    3033#include "maths/Vector3D.h"
     
    140143
    141144        MakeDirty(0, 0, tiles+1, tiles+1);
    142145    }
    143 
     146   
    144147    virtual void MakeDirty(i32 i0, i32 j0, i32 i1, i32 j1)
    145148    {
    146149        CMessageTerrainChanged msg(i0, j0, i1, j1);