Move TileScale to MapGrid

This commit is contained in:
Gustas
2023-04-25 19:30:48 +03:00
committed by Pavel Penev
parent 8f511a3bb6
commit 44f1af7059
7 changed files with 14 additions and 14 deletions

View File

@@ -114,7 +114,7 @@ namespace OpenRA.Graphics
// transparent for isometric tiles
var tl = worldRenderer.TerrainLighting;
var pos = map.CenterOfCell(uv.ToCPos(map));
var step = map.Grid.Type == MapGridType.RectangularIsometric ? 724 : 512;
var step = map.Grid.TileScale / 2;
var weights = new[]
{
tl.TintAt(pos + new WVec(-step, -step, 0)),

View File

@@ -49,7 +49,7 @@ namespace OpenRA.Graphics
{
World = world;
TileSize = World.Map.Grid.TileSize;
TileScale = World.Map.Grid.Type == MapGridType.RectangularIsometric ? 1448 : 1024;
TileScale = World.Map.Grid.TileScale;
Viewport = new Viewport(this, world.Map);
createPaletteReference = CreatePaletteReference;

View File

@@ -128,10 +128,14 @@ namespace OpenRA
internal readonly CVec[][] TilesByDistance;
public int TileScale { get; }
public MapGrid(MiniYaml yaml)
{
FieldLoader.Load(this, yaml);
TileScale = Type == MapGridType.RectangularIsometric ? 1448 : 1024;
// The default subcell index defaults to the middle entry
var defaultSubCellIndex = (byte)DefaultSubCell;
if (defaultSubCellIndex == byte.MaxValue)

View File

@@ -137,9 +137,7 @@ namespace OpenRA.Mods.Common.Graphics
{
var map = wr.World.Map;
var groundPos = model.Pos - new WVec(0, 0, map.DistanceAboveTerrain(model.Pos).Length);
var tileScale = map.Grid.Type == MapGridType.RectangularIsometric ? 1448f : 1024f;
var groundZ = map.Grid.TileSize.Height * (groundPos.Z - model.Pos.Z) / tileScale;
var groundZ = (float)map.Grid.TileSize.Height * (groundPos.Z - model.Pos.Z) / map.Grid.TileScale;
var pxOrigin = wr.Screen3DPosition(model.Pos);
// HACK: We don't have enough texture channels to pass the depth data to the shader

View File

@@ -32,8 +32,6 @@ namespace OpenRA.Mods.Common.Lint
{
// As the map has not been created we need to get MapGrid info directly from manifest.
var grid = modData.Manifest.Get<MapGrid>();
var tileScale = grid.Type == MapGridType.RectangularIsometric ? 1448 : 1024;
foreach (var actorInfo in rules.Actors)
{
// Catch TypeDictionary errors.
@@ -43,10 +41,10 @@ namespace OpenRA.Mods.Common.Lint
if (interactable == null)
continue;
if (HasInvalidBounds(interactable.Bounds, grid.TileSize, tileScale))
if (HasInvalidBounds(interactable.Bounds, grid.TileSize, grid.TileScale))
emitError($"{nameof(interactable.Bounds)} of actor {actorInfo.Key} are empty or negative.");
if (HasInvalidBounds(interactable.DecorationBounds, grid.TileSize, tileScale))
if (HasInvalidBounds(interactable.DecorationBounds, grid.TileSize, grid.TileScale))
emitError($"{nameof(interactable.DecorationBounds)} of actor {actorInfo.Key} are empty or negative.");
}
catch (InvalidOperationException e)

View File

@@ -68,11 +68,11 @@ namespace OpenRA.Mods.Common.Traits
map = world.Map;
globalTint = new float3(info.RedTint, info.GreenTint, info.BlueTint);
var cellSize = map.Grid.Type == MapGridType.RectangularIsometric ? 1448 : 1024;
var tileScale = map.Grid.TileScale;
partitionedLightSources = new SpatiallyPartitioned<LightSource>(
(map.MapSize.X + 1) * cellSize,
(map.MapSize.Y + 1) * cellSize,
info.BinSize * cellSize);
(map.MapSize.X + 1) * tileScale,
(map.MapSize.Y + 1) * tileScale,
info.BinSize * tileScale);
}
Rectangle Bounds(LightSource source)

View File

@@ -28,7 +28,7 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules
{
var grid = modData.Manifest.Get<MapGrid>();
var tileSize = grid.TileSize;
var tileScale = grid.Type == MapGridType.RectangularIsometric ? 1448 : 1024;
var tileScale = grid.TileScale;
foreach (var trait in traits)
{