JoshDreamland icon

CLion Extract Method Wut

JoshDreamland | PRO | 07/13/15 02:56:22 AM UTC | 0 ⭐ | 410 👁️ | Never ⏰ | []
C++ |

2.81 KB

|

None

|

0 👍

/

0 👎

  SurfaceFormat::ColorGrid renderWorldByPurity(const World &world) {
    return renderWorld(world, [](const Tile& t) {
      if (t.hasTile) {
        const Properties::TileProperty &tprop = t.getTileProperties();
        if (tprop.givesItem == Properties::GivesItem::ALWAYS) {
          return tprop.attributes.biome & (int) Properties::Biome::CRIMSON
                 ? SurfaceFormat::RGBA(255, 0, 0, 255)
                 : tprop.attributes.biome & (int) Properties::Biome::CORRUPTION
                   ? SurfaceFormat::RGBA(128, 0, 255, 255)
                   : tprop.attributes.biome & (int) Properties::Biome::HALLOW
                     ? SurfaceFormat::RGBA(64, 128, 255, 255)
                     : SurfaceFormat::RGBA(32, 200, 64, 255);
        }
      }
      if (t.liquidAmount > 0 && t.liquidType != LiquidType::NONE) {
        return t.liquidType == LiquidType::WATER
               ? SurfaceFormat::RGBA(0, 0, 255, t.liquidAmount * 255 / 8)
               : t.liquidType == LiquidType::HONEY
                   ? SurfaceFormat::RGBA(255, 255, 0, t.liquidAmount * 255 / 8)
                   : SurfaceFormat::RGBA(255, 0, 0, t.liquidAmount * 255 / 8);
      }
      return SurfaceFormat::RGBA(255, 255, 255, 255);
    });
  }
 
// ==============================================================================
// Select lines 15-22, Refactor—→Extract method. Result:
// ==============================================================================
 
  SurfaceFormat::RGBA getLiquidColor(const Tile &t);
 
  SurfaceFormat::ColorGrid renderWorldByPurity(const World &world) {
    return renderWorld(world, [](const Tile& t) {
      if (t.hasTile) {
        const Properties::TileProperty &tprop = t.getTileProperties();
        if (tprop.givesItem == Properties::GivesItem::ALWAYS) {
          return tprop.attributes.biome & (int) Properties::Biome::CRIMSON
                 ? SurfaceFormat::RGBA(255, 0, 0, 255)
                 : tprop.attributes.biome & (int) Properties::Biome::CORRUPTION
                   ? SurfaceFormat::RGBA(128, 0, 255, 255)
                   : tprop.attributes.biome & (int) Properties::Biome::HALLOW
                     ? SurfaceFormat::RGBA(64, 128, 255, 255)
                     : SurfaceFormat::RGBA(32, 200, 64, 255);
        }
      }
      return getLiquidColor(t);
    });
  }
 
  SurfaceFormat::ColorGrid getLiquidColor(const Tile &t) {
    if (t.liquidAmount > 0 && t.liquidType != LiquidType::NONE) {
        return t.liquidType == LiquidType::WATER
               ? this->RGBA(0, 0, 255, t.liquidAmount * 255 / 8)
               : t.liquidType == LiquidType::HONEY
                   ? this->RGBA(255, 255, 0, t.liquidAmount * 255 / 8)
                   : this->RGBA(255, 0, 0, t.liquidAmount * 255 / 8);
      }
    return this->RGBA(255, 255, 255, 255);
  }

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎