f
This commit is contained in:
parent
1fd19f9fac
commit
4bd02c5459
19 changed files with 125 additions and 110 deletions
|
|
@ -5,7 +5,7 @@ VisualStudioVersion = 17.3.32929.385
|
|||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CityGame", "CityGame\CityGame.csproj", "{5D76B596-FC17-4F47-B5C6-D811DE04F806}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WPFGame", "..\WPFGame\WPFGame\WPFGame.csproj", "{4F2DC7EE-24BA-4383-9AB6-EBA46EB191DF}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrpticonGameHelper", "..\WPFGame\WPFGame\OrpticonGameHelper.csproj", "{4F2DC7EE-24BA-4383-9AB6-EBA46EB191DF}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
|
||||
|
|
@ -1 +0,0 @@
|
|||
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\WPFGame\WPFGame\WPFGame.csproj" />
|
||||
<ProjectReference Include="..\..\WPFGame\WPFGame\OrpticonGameHelper.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
@ -109,7 +109,7 @@
|
|||
<None Update="Resources\Car.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="Resources\CNRGN Builder.ttf">
|
||||
<None Update="Resources\Fonts\CNRGN Builder.ttf">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="Resources\Error.png">
|
||||
|
|
@ -118,7 +118,7 @@
|
|||
<None Update="Resources\Garage.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="Resources\helicopter.mp3">
|
||||
<None Update="Resources\Audio\helicopter.mp3">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="Resources\Helicopter.png">
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using WPFGame;
|
||||
using OrpticonGameHelper;
|
||||
using OrpticonGameHelper.Classes.Elements;
|
||||
|
||||
namespace CityGame.Classes.Entities
|
||||
{
|
||||
|
|
@ -49,7 +50,8 @@ namespace CityGame.Classes.Entities
|
|||
{
|
||||
OCanvas canvas = new OCanvas();
|
||||
Image car = new SourcedImage(PNGFile);
|
||||
car.Effects.Add(new OutlineEffect());
|
||||
car.ZIndex = 99;
|
||||
car.Effects.Add(selectedEffect);
|
||||
|
||||
canvas.Children.Add(car);
|
||||
var light = new LightSource { Radius = 128, Angle = 64, Intensity = 2, Color = Color.White, Type = LightSourceType.Spotlight, Rotation = -90, RotationOrigin = new Point(MainWindow.TileSize / 2, MainWindow.TileSize / 2) };
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using CityGame.Classes.Rendering;
|
||||
using CityGame.Classes.World;
|
||||
using OrpticonGameHelper.Classes.Effects;
|
||||
|
||||
namespace CityGame.Classes.Entities
|
||||
{
|
||||
|
|
@ -18,6 +19,7 @@ namespace CityGame.Classes.Entities
|
|||
public long Time { get; set; }
|
||||
public OCanvas Object { get; set; }
|
||||
public bool SingleSelect { get; set; }
|
||||
protected OutlineEffect selectedEffect = new OutlineEffect();
|
||||
public OCanvas GetImage()
|
||||
{
|
||||
return Object;
|
||||
|
|
@ -41,6 +43,11 @@ namespace CityGame.Classes.Entities
|
|||
}
|
||||
|
||||
public abstract void Tick(long deltaTime);
|
||||
public void BaseTick(long deltaTime)
|
||||
{
|
||||
if (selectedEffect is not null)
|
||||
selectedEffect.Visible = this == MainWindow.Selected;
|
||||
}
|
||||
|
||||
int ISelectable.X()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,5 @@
|
|||
using CityGame.Classes.Rendering;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WPFGame;
|
||||
using OrpticonGameHelper.Classes.Elements;
|
||||
|
||||
namespace CityGame.Classes.Entities
|
||||
{
|
||||
|
|
@ -19,7 +14,7 @@ namespace CityGame.Classes.Entities
|
|||
|
||||
public override OCanvas Render()
|
||||
{
|
||||
return new SourcedImage("ManholeCover.png");
|
||||
return new SourcedImage("ManholeCover.png") { ZIndex = 98, Effects = { selectedEffect } };
|
||||
}
|
||||
|
||||
public override void Tick(long deltaTime)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@ using CityGame.Classes.World;
|
|||
using Microsoft.Xna.Framework;
|
||||
using Microsoft.Xna.Framework.Audio;
|
||||
using System;
|
||||
using WPFGame;
|
||||
using OrpticonGameHelper;
|
||||
using OrpticonGameHelper.Classes.Elements;
|
||||
|
||||
namespace CityGame.Classes.Entities
|
||||
{
|
||||
|
|
@ -32,10 +33,16 @@ namespace CityGame.Classes.Entities
|
|||
Sound.Apply3D(MainWindow.SoundEffectListener, emitter);
|
||||
|
||||
OCanvas canvas = new OCanvas();
|
||||
canvas.ZIndex = 100;
|
||||
Heli1 = new SourcedImage("Helicopter.png");
|
||||
Heli2 = new SourcedImage("HelicopterFlight.png");
|
||||
Blades1 = new SourcedImage("HelicopterBlades.png");
|
||||
Blades2 = new SourcedImage("HelicopterBlades2.png");
|
||||
Blades1 = new SourcedImage("HelicopterBlades.png") { ZIndex = 10 };
|
||||
Blades2 = new SourcedImage("HelicopterBlades2.png") { ZIndex = 10 };
|
||||
|
||||
Heli1.Effects.Add(selectedEffect);
|
||||
Heli2.Effects.Add(selectedEffect);
|
||||
Blades1.Effects.Add(selectedEffect);
|
||||
Blades2.Effects.Add(selectedEffect);
|
||||
|
||||
Heli1.Visible = false;
|
||||
Blades2.Visible = false;
|
||||
|
|
|
|||
16
CityGame/Classes/Menu/GenerationSettings.cs
Normal file
16
CityGame/Classes/Menu/GenerationSettings.cs
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
using OrpticonGameHelper.Classes.Elements.RUI.Attributes;
|
||||
|
||||
namespace CityGame.Classes.Menu
|
||||
{
|
||||
public class GenerationSettings
|
||||
{
|
||||
[RUITextField(TextColor = 0xFFFF0000, Lines = 2)]
|
||||
public string WelcomeText { get; set; } = "Welcome!\nTest";
|
||||
[RUITextField(TextColor = 0xFF00FF00, Lines = 2)]
|
||||
public int Seed { get; set; } = 0;
|
||||
public GenerationSettings()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
17
CityGame/Classes/Menu/MenuWindow.cs
Normal file
17
CityGame/Classes/Menu/MenuWindow.cs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
using OrpticonGameHelper;
|
||||
using OrpticonGameHelper.Classes.Elements;
|
||||
using OrpticonGameHelper.Classes.Elements.RUI;
|
||||
|
||||
namespace CityGame.Classes.Menu
|
||||
{
|
||||
public class MenuWindow : Window
|
||||
{
|
||||
public MenuWindow()
|
||||
{
|
||||
UICanvas = new Canvas();
|
||||
UICanvas.Children.Add(new ReflectedUIWindow(new GenerationSettings(), "CNRGN Builder", 24) { Height = 1080, Width = 300 });
|
||||
|
||||
Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
using WPFGame;
|
||||
using OrpticonGameHelper.Classes.Elements;
|
||||
|
||||
namespace CityGame.Classes.Rendering
|
||||
{
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace CityGame.Classes.Rendering
|
|||
int.TryParse(rotation, out int rot);
|
||||
Rotation = rot;
|
||||
}
|
||||
public static Pattern Calculate(Tile[,] Grid, int x, int y, params TileType[] allowed)
|
||||
public static Pattern Calculate(Tile[,] Grid, int x, int y, bool allowDiagonal = true, params TileType[] allowed)
|
||||
{
|
||||
Func<int, int, bool> IsAdjacent = (X, Y) =>
|
||||
{
|
||||
|
|
@ -33,34 +33,40 @@ namespace CityGame.Classes.Rendering
|
|||
return allowed.Contains(Grid[X, Y].Type);
|
||||
};
|
||||
|
||||
if (IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1)) return new Pattern("8");
|
||||
if (allowDiagonal)
|
||||
{
|
||||
if (IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1)) return new Pattern("8");
|
||||
|
||||
if (IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1)) return new Pattern("7");
|
||||
if (IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1)) return new Pattern("7", "90");
|
||||
if (IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1)) return new Pattern("7", "180");
|
||||
if (IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1)) return new Pattern("7", "270");
|
||||
if (IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1)) return new Pattern("7");
|
||||
if (IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1)) return new Pattern("7", "90");
|
||||
if (IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1)) return new Pattern("7", "180");
|
||||
if (IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1)) return new Pattern("7", "270");
|
||||
|
||||
if (IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x + 1, y) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1)) return new Pattern("5");
|
||||
if (IsAdjacent(x, y - 1) && IsAdjacent(x - 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x, y + 1) && IsAdjacent(x - 1, y + 1)) return new Pattern("5", "180");
|
||||
if (IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y)) return new Pattern("5", "270");
|
||||
if (IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y)) return new Pattern("5", "90");
|
||||
if (IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x + 1, y) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1)) return new Pattern("5");
|
||||
if (IsAdjacent(x, y - 1) && IsAdjacent(x - 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x, y + 1) && IsAdjacent(x - 1, y + 1)) return new Pattern("5", "180");
|
||||
if (IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y)) return new Pattern("5", "270");
|
||||
if (IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y + 1) && IsAdjacent(x - 1, y) && IsAdjacent(x + 1, y)) return new Pattern("5", "90");
|
||||
|
||||
if (IsAdjacent(x - 1, y) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x + 1, y)) return new Pattern("4");
|
||||
if (IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y) && IsAdjacent(x + 1, y + 1) && IsAdjacent(x, y + 1)) return new Pattern("4", "90");
|
||||
if (IsAdjacent(x + 1, y) && IsAdjacent(x - 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1)) return new Pattern("4", "180");
|
||||
if (IsAdjacent(x, y + 1) && IsAdjacent(x - 1, y) && IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1)) return new Pattern("4", "270");
|
||||
if (IsAdjacent(x - 1, y) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x + 1, y)) return new Pattern("4");
|
||||
if (IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y) && IsAdjacent(x + 1, y + 1) && IsAdjacent(x, y + 1)) return new Pattern("4", "90");
|
||||
if (IsAdjacent(x + 1, y) && IsAdjacent(x - 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1)) return new Pattern("4", "180");
|
||||
if (IsAdjacent(x, y + 1) && IsAdjacent(x - 1, y) && IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1)) return new Pattern("4", "270");
|
||||
|
||||
if (IsAdjacent(x + 1, y) && IsAdjacent(x, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x - 1, y - 1)) return new Pattern("4m");
|
||||
if (IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1)) return new Pattern("4m", "90");
|
||||
if (IsAdjacent(x - 1, y) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y) && IsAdjacent(x + 1, y + 1)) return new Pattern("4m", "180");
|
||||
if (IsAdjacent(x, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x, y + 1) && IsAdjacent(x - 1, y + 1)) return new Pattern("4m", "270");
|
||||
if (IsAdjacent(x + 1, y) && IsAdjacent(x, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x - 1, y - 1)) return new Pattern("4m");
|
||||
if (IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y) && IsAdjacent(x, y - 1) && IsAdjacent(x + 1, y - 1)) return new Pattern("4m", "90");
|
||||
if (IsAdjacent(x - 1, y) && IsAdjacent(x, y + 1) && IsAdjacent(x + 1, y) && IsAdjacent(x + 1, y + 1)) return new Pattern("4m", "180");
|
||||
if (IsAdjacent(x, y - 1) && IsAdjacent(x - 1, y) && IsAdjacent(x, y + 1) && IsAdjacent(x - 1, y + 1)) return new Pattern("4m", "270");
|
||||
}
|
||||
|
||||
if (IsAdjacent(x + 1, y) && IsAdjacent(x, y + 1) && IsAdjacent(x - 1, y) && IsAdjacent(x, y - 1)) return new Pattern("4c");
|
||||
|
||||
if (IsAdjacent(x + 1, y) && IsAdjacent(x + 1, y + 1) && IsAdjacent(x, y + 1)) return new Pattern("3");
|
||||
if (IsAdjacent(x - 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1)) return new Pattern("3", "90");
|
||||
if (IsAdjacent(x - 1, y) && IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1)) return new Pattern("3", "180");
|
||||
if (IsAdjacent(x + 1, y) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x, y - 1)) return new Pattern("3", "270");
|
||||
if (allowDiagonal)
|
||||
{
|
||||
if (IsAdjacent(x + 1, y) && IsAdjacent(x + 1, y + 1) && IsAdjacent(x, y + 1)) return new Pattern("3");
|
||||
if (IsAdjacent(x - 1, y) && IsAdjacent(x - 1, y + 1) && IsAdjacent(x, y + 1)) return new Pattern("3", "90");
|
||||
if (IsAdjacent(x - 1, y) && IsAdjacent(x - 1, y - 1) && IsAdjacent(x, y - 1)) return new Pattern("3", "180");
|
||||
if (IsAdjacent(x + 1, y) && IsAdjacent(x + 1, y - 1) && IsAdjacent(x, y - 1)) return new Pattern("3", "270");
|
||||
}
|
||||
|
||||
if (IsAdjacent(x, y - 1) && IsAdjacent(x, y + 1) && IsAdjacent(x - 1, y)) return new Pattern("3c");
|
||||
if (IsAdjacent(x + 1, y) && IsAdjacent(x, y - 1) && IsAdjacent(x - 1, y)) return new Pattern("3c", "90");
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
using CityGame.Classes.World;
|
||||
using WPFGame;
|
||||
using OrpticonGameHelper.Classes.Elements;
|
||||
|
||||
namespace CityGame.Classes.Rendering
|
||||
{
|
||||
|
|
@ -27,64 +27,64 @@ namespace CityGame.Classes.Rendering
|
|||
if (Grid[x, y].BlockID % 30 == 1) theme = "Blue";
|
||||
if (Grid[x, y].BlockID % 30 == 2) theme = "Red";
|
||||
if (Grid[x, y].BlockID % 30 == 3) theme = "Green";
|
||||
Pattern pattern = Pattern.Calculate(Grid, x, y, TileType.Skyscraper, TileType.Garage, TileType.Helipad);
|
||||
if (pattern.PatternCode == "1" && MainWindow.random.Next(0, 3) == 0) return new SourcedImage("ParkingLot" + theme + ".png:" + pattern.Rotation);
|
||||
Pattern pattern = Pattern.Calculate(Grid, x, y, true, TileType.Skyscraper, TileType.Garage, TileType.Helipad);
|
||||
if (pattern.PatternCode == "1" && MainWindow.random.Next(0, 3) == 0) return new SourcedImage("ParkingLot" + theme + ".png:" + pattern.Rotation) { ZIndex = 25 };
|
||||
if (pattern.PatternCode == "3" && MainWindow.random.Next(0, 12) == 0) pattern.PatternCode = "3a";
|
||||
if (pattern.PatternCode == "3" && MainWindow.random.Next(0, 12) == 1) pattern.PatternCode = "3ab";
|
||||
OCanvas canvas = new SourcedImage("Building" + theme + pattern.PatternCode + ".png:" + pattern.Rotation, tooltip);
|
||||
OCanvas canvas = new SourcedImage("Building" + theme + pattern.PatternCode + ".png:" + pattern.Rotation, tooltip) { ZIndex = 25 };
|
||||
|
||||
if (theme == "Blue" && pattern.PatternCode == "8" && MainWindow.random.Next(0, 4) == 0) Grid[x, y].Type = TileType.Helipad;
|
||||
else if (theme == "Blue" && pattern.PatternCode == "5" && MainWindow.random.Next(0, 2) == 0) Grid[x, y].Type = TileType.Garage;
|
||||
else if (theme == "Blue" && pattern.PatternCode == "0") Grid[x, y].Type = TileType.Garage;
|
||||
else if (MainWindow.random.Next(0, 10) == 0 && pattern.PatternCode != "3a") canvas.Children.Add(new SourcedImage("Vent" + (MainWindow.random.Next(0, 3) + 1) + ".png:" + MainWindow.random.Next(0, 4) * 90));
|
||||
else if (MainWindow.random.Next(0, 10) == 0 && pattern.PatternCode != "3a") canvas.Children.Add(new SourcedImage("Vent" + (MainWindow.random.Next(0, 3) + 1) + ".png:" + MainWindow.random.Next(0, 4) * 90) { ZIndex = 50 });
|
||||
|
||||
if (pattern.PatternCode == "5" && Grid[x, y].Type == TileType.Garage) canvas.Children.Add(new SourcedImage("Garage.png:" + pattern.Rotation));
|
||||
if (pattern.PatternCode == "0" && Grid[x, y].Type == TileType.Garage) canvas.Children.Add(new SourcedImage("Garage.png:270"));
|
||||
if (Grid[x,y].Type == TileType.Helipad) canvas.Children.Add(new SourcedImage("Helipad.png"));
|
||||
if (pattern.PatternCode == "5" && Grid[x, y].Type == TileType.Garage) canvas.Children.Add(new SourcedImage("Garage.png:" + pattern.Rotation) { ZIndex = 50 });
|
||||
if (pattern.PatternCode == "0" && Grid[x, y].Type == TileType.Garage) canvas.Children.Add(new SourcedImage("Garage.png:270") { ZIndex = 50 });
|
||||
if (Grid[x,y].Type == TileType.Helipad) canvas.Children.Add(new SourcedImage("Helipad.png") { ZIndex = 50 });
|
||||
|
||||
Grid[x, y].Pattern = pattern;
|
||||
|
||||
return canvas;
|
||||
}
|
||||
if (type == TileType.Lake || type == TileType.River)
|
||||
{
|
||||
Pattern pattern = Pattern.Calculate(Grid, x, y, TileType.Lake, TileType.Bridge, TileType.River, TileType.HighwayBridge);
|
||||
Pattern pattern = Pattern.Calculate(Grid, x, y, true, TileType.Lake, TileType.Bridge, TileType.River, TileType.HighwayBridge);
|
||||
Grid[x, y].Pattern = pattern;
|
||||
return new SourcedImage("Lake" + pattern.PatternCode + ".png:" + pattern.Rotation, tooltip);
|
||||
return new SourcedImage("Lake" + pattern.PatternCode + ".png:" + pattern.Rotation, tooltip) { ZIndex = 1 };
|
||||
}
|
||||
if (type == TileType.Park)
|
||||
{
|
||||
Pattern pattern = Pattern.Calculate(Grid, x, y, TileType.Park, TileType.Path);
|
||||
Pattern pattern = Pattern.Calculate(Grid, x, y, true, TileType.Park, TileType.Path);
|
||||
Grid[x, y].Pattern = pattern;
|
||||
OCanvas canvas = new SourcedImage("Park" + pattern.PatternCode + ".png:" + pattern.Rotation);
|
||||
if (MainWindow.random.Next(0, 4) == 0) canvas.Children.Add(new SourcedImage("Tree.png:" + MainWindow.random.Next(0, 4) * 90, tooltip));
|
||||
canvas.ZIndex = 1;
|
||||
return canvas;
|
||||
}
|
||||
if (type == TileType.Road)
|
||||
{
|
||||
Pattern pattern = Pattern.Calculate(Grid, x, y, TileType.Road, TileType.Path, TileType.Bridge, TileType.Highway, TileType.HighwayBridge);
|
||||
Pattern pattern = Pattern.Calculate(Grid, x, y, false, TileType.Road, TileType.Path, TileType.Bridge, TileType.Highway, TileType.HighwayBridge, TileType.Garage);
|
||||
Grid[x, y].Pattern = pattern;
|
||||
if (pattern.PatternCode == "2c") pattern.Rotation += 270;
|
||||
if (pattern.PatternCode == "1") pattern.Rotation += 180;
|
||||
return new SourcedImage("Road" + pattern.PatternCode + ".png:" + pattern.Rotation, tooltip);
|
||||
return new SourcedImage("Road" + pattern.PatternCode + ".png:" + pattern.Rotation, tooltip) { ZIndex = 2 };
|
||||
}
|
||||
if (type == TileType.Highway)
|
||||
{
|
||||
Pattern pattern = Pattern.Calculate(Grid, x, y, TileType.Road, TileType.Path, TileType.Bridge, TileType.Highway, TileType.HighwayBridge);
|
||||
Pattern pattern = Pattern.Calculate(Grid, x, y, false, TileType.Road, TileType.Path, TileType.Bridge, TileType.Highway, TileType.HighwayBridge, TileType.Garage);
|
||||
Grid[x, y].Pattern = pattern;
|
||||
if (pattern.PatternCode == "2c") pattern.Rotation += 270;
|
||||
if (pattern.PatternCode == "1") pattern.Rotation += 180;
|
||||
return new SourcedImage("Highway" + pattern.PatternCode + ".png:" + pattern.Rotation, tooltip);
|
||||
return new SourcedImage("Highway" + pattern.PatternCode + ".png:" + pattern.Rotation, tooltip) { ZIndex = 2 };
|
||||
}
|
||||
if (type == TileType.Path)
|
||||
{
|
||||
Pattern roadpattern = Pattern.Calculate(Grid, x, y, TileType.Road, TileType.Path, TileType.Bridge, TileType.Highway, TileType.HighwayBridge);
|
||||
Pattern parkpattern = Pattern.Calculate(Grid, x, y, TileType.Path, TileType.Park);
|
||||
Pattern roadpattern = Pattern.Calculate(Grid, x, y, false, TileType.Road, TileType.Path, TileType.Bridge, TileType.Highway, TileType.HighwayBridge, TileType.Garage);
|
||||
Pattern parkpattern = Pattern.Calculate(Grid, x, y, true, TileType.Path, TileType.Park);
|
||||
Grid[x, y].Pattern = roadpattern;
|
||||
if (roadpattern.PatternCode == "2c") roadpattern.Rotation += 270;
|
||||
if (roadpattern.PatternCode == "1") roadpattern.Rotation += 180;
|
||||
Image path = new SourcedImage("Path" + roadpattern.PatternCode + ".png:" + roadpattern.Rotation, tooltip);
|
||||
Image park = new SourcedImage("Park" + parkpattern.PatternCode + ".png:" + parkpattern.Rotation);
|
||||
Image path = new SourcedImage("Path" + roadpattern.PatternCode + ".png:" + roadpattern.Rotation, tooltip) { ZIndex = 50 };
|
||||
Image park = new SourcedImage("Park" + parkpattern.PatternCode + ".png:" + parkpattern.Rotation) { ZIndex = 25 };
|
||||
|
||||
OCanvas result = new OCanvas();
|
||||
result.Children.Add(park);
|
||||
|
|
@ -93,32 +93,34 @@ namespace CityGame.Classes.Rendering
|
|||
}
|
||||
if (type == TileType.Bridge)
|
||||
{
|
||||
Pattern roadpattern = Pattern.Calculate(Grid, x, y, TileType.Road, TileType.Bridge, TileType.Path, TileType.Highway, TileType.HighwayBridge);
|
||||
Pattern parkpattern = Pattern.Calculate(Grid, x, y, TileType.Bridge, TileType.Lake, TileType.River, TileType.HighwayBridge);
|
||||
Pattern roadpattern = Pattern.Calculate(Grid, x, y, false, TileType.Road, TileType.Bridge, TileType.Path, TileType.Highway, TileType.HighwayBridge, TileType.Garage);
|
||||
Pattern parkpattern = Pattern.Calculate(Grid, x, y, true, TileType.Bridge, TileType.Lake, TileType.River, TileType.HighwayBridge);
|
||||
Grid[x, y].Pattern = roadpattern;
|
||||
if (roadpattern.PatternCode == "2c") roadpattern.Rotation += 270;
|
||||
if (roadpattern.PatternCode == "1") roadpattern.Rotation += 180;
|
||||
Image path = new SourcedImage("Bridge" + roadpattern.PatternCode + ".png:" + roadpattern.Rotation, tooltip);
|
||||
Image park = new SourcedImage("Lake" + parkpattern.PatternCode + ".png:" + parkpattern.Rotation);
|
||||
Image path = new SourcedImage("Bridge" + roadpattern.PatternCode + ".png:" + roadpattern.Rotation, tooltip) { ZIndex = 50 };
|
||||
Image park = new SourcedImage("Lake" + parkpattern.PatternCode + ".png:" + parkpattern.Rotation) { ZIndex = 25 };
|
||||
|
||||
OCanvas result = new OCanvas();
|
||||
result.Children.Add(park);
|
||||
result.Children.Add(path);
|
||||
result.ZIndex = 2;
|
||||
return result;
|
||||
}
|
||||
if (type == TileType.HighwayBridge)
|
||||
{
|
||||
Pattern roadpattern = Pattern.Calculate(Grid, x, y, TileType.Road, TileType.Bridge, TileType.Path, TileType.Highway, TileType.HighwayBridge);
|
||||
Pattern parkpattern = Pattern.Calculate(Grid, x, y, TileType.Bridge, TileType.Lake, TileType.River, TileType.HighwayBridge);
|
||||
Pattern roadpattern = Pattern.Calculate(Grid, x, y, false, TileType.Road, TileType.Bridge, TileType.Path, TileType.Highway, TileType.HighwayBridge, TileType.Garage);
|
||||
Pattern parkpattern = Pattern.Calculate(Grid, x, y, true, TileType.Bridge, TileType.Lake, TileType.River, TileType.HighwayBridge);
|
||||
Grid[x, y].Pattern = roadpattern;
|
||||
if (roadpattern.PatternCode == "2c") roadpattern.Rotation += 270;
|
||||
if (roadpattern.PatternCode == "1") roadpattern.Rotation += 180;
|
||||
Image path = new SourcedImage("HighwayBridge" + roadpattern.PatternCode + ".png:" + roadpattern.Rotation, tooltip);
|
||||
Image park = new SourcedImage("Lake" + parkpattern.PatternCode + ".png:" + parkpattern.Rotation);
|
||||
Image path = new SourcedImage("HighwayBridge" + roadpattern.PatternCode + ".png:" + roadpattern.Rotation, tooltip) { ZIndex = 50 };
|
||||
Image park = new SourcedImage("Lake" + parkpattern.PatternCode + ".png:" + parkpattern.Rotation) { ZIndex = 25 };
|
||||
|
||||
OCanvas result = new OCanvas();
|
||||
result.Children.Add(park);
|
||||
result.Children.Add(path);
|
||||
result.ZIndex = 2;
|
||||
return result;
|
||||
}
|
||||
return new SourcedImage("Error.png", tooltip);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
using CityGame.Classes.Rendering;
|
||||
using WPFGame;
|
||||
using OrpticonGameHelper.Classes.Elements;
|
||||
|
||||
namespace CityGame.Classes.World
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ using Microsoft.Xna.Framework.Input;
|
|||
using SimplexNoise;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using WPFGame;
|
||||
using OrpticonGameHelper;
|
||||
using OrpticonGameHelper.Classes.Elements;
|
||||
using static CityGame.Classes.Entities.Car;
|
||||
|
||||
namespace CityGame
|
||||
|
|
@ -502,9 +502,7 @@ namespace CityGame
|
|||
ISelectable select = GetSelectableFromClick(state);
|
||||
if (select is not null)
|
||||
{
|
||||
if (Selected is not null) Selected.GetImage().Opacity = 1;
|
||||
Selected = select;
|
||||
Selected.GetImage().Opacity = 0.5f;
|
||||
}
|
||||
}
|
||||
else if (state.RightButton == ButtonState.Pressed)
|
||||
|
|
@ -523,6 +521,7 @@ namespace CityGame
|
|||
deltaTime = (long)time.ElapsedGameTime.TotalMilliseconds;
|
||||
entity.Time = milliseconds;
|
||||
entity.Tick(deltaTime);
|
||||
entity.BaseTick(deltaTime);
|
||||
|
||||
if (entity.Object is null)
|
||||
{
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<Window x:Class="CityGame.MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:CityGame"
|
||||
mc:Ignorable="d"
|
||||
Title="MainWindow" Height="450" Width="800">
|
||||
</Window>
|
||||
|
|
@ -1,33 +1,8 @@
|
|||
using Microsoft.Xna.Framework;
|
||||
using Microsoft.Xna.Framework.Graphics;
|
||||
using WPFGame;
|
||||
|
||||
namespace CityGame
|
||||
namespace CityGame
|
||||
{
|
||||
public class Program {
|
||||
public static void Main() {
|
||||
var menu = new MenuWindow();
|
||||
}
|
||||
}
|
||||
public class MenuWindow : Window
|
||||
{
|
||||
public MenuWindow()
|
||||
{
|
||||
UICanvas = new Canvas();
|
||||
UICanvas.Children.Add(new ReflectedUIWindow(new GenerationSettings(), "CNRGN Builder", 24) { Height = 1080, Width = 300 });
|
||||
|
||||
Show();
|
||||
}
|
||||
}
|
||||
public class GenerationSettings
|
||||
{
|
||||
[RUITextField(TextColor = 0xFFFF0000, Lines = 2)]
|
||||
public string WelcomeText { get; set; } = "Welcome!\nTest";
|
||||
[RUITextField(TextColor = 0xFF00FF00, Lines = 2)]
|
||||
public int Seed { get; set; } = 0;
|
||||
public GenerationSettings()
|
||||
{
|
||||
|
||||
var menu = new MainWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue