本文整理汇总了C#中clsResult类的典型用法代码示例。如果您正苦于以下问题:C# clsResult类的具体用法?C# clsResult怎么用?C# clsResult使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
clsResult类属于命名空间,在下文中一共展示了clsResult类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: Save
// compress is ignored.
public clsResult Save(string path, bool overwrite, bool compress = false)
{
var returnResult = new clsResult(string.Format("Saving minimap to \"{0}\".", path), false);
logger.Info ("Saving minimap to \"{0}\"", path);
var minimapBitmap = new Bitmap(map.Terrain.TileSize.X, map.Terrain.TileSize.Y);
var texture = new clsMinimapTexture(new XYInt(map.Terrain.TileSize.X, map.Terrain.TileSize.Y));
map.MinimapTextureFill(texture);
for ( var y = 0; y <= map.Terrain.TileSize.Y - 1; y++ )
{
for ( var x = 0; x <= map.Terrain.TileSize.X - 1; x++ )
{
minimapBitmap.SetPixel(x, y,
ColorTranslator.FromOle(
ColorUtil.OSRGB((int)(MathUtil.Clamp_sng(Convert.ToSingle(texture.get_Pixels(x, y).Red * 255.0F), 0.0F, 255.0F)),
(int)(MathUtil.Clamp_sng(Convert.ToSingle(texture.get_Pixels(x, y).Green * 255.0F), 0.0F, 255.0F)),
(int)(MathUtil.Clamp_sng(Convert.ToSingle(texture.get_Pixels(x, y).Blue * 255.0F), 0.0F, 255.0F)))));
}
}
var subResult = BitmapUtil.SaveBitmap(path, overwrite, minimapBitmap);
if (!subResult.Success) {
returnResult.ProblemAdd (subResult.Problem);
}
return returnResult;
}
开发者ID:pcdummy,项目名称:SharpFlame,代码行数:30,代码来源:Minimap.cs
示例2: btnCompileCampaign_Click
public void btnCompileCampaign_Click(Object sender, EventArgs e)
{
var ReturnResult = new clsResult("Compile campaign", false);
logger.Info("Compile campaign");
var A = 0;
SaveToMap();
A = ValidateMap_WaterTris();
if ( A > 0 )
{
ReturnResult.WarningAdd(A + " water tiles have an incorrect triangle direction. There might be in-game graphical glitches on those tiles.");
}
ReturnResult.Add(ValidateMap());
ReturnResult.Add(ValidateMap_UnitPositions());
var MapName = "";
var TypeNum = 0;
MapName = txtName.Text;
if ( MapName.Length < 1 )
{
ReturnResult.ProblemAdd("Enter a name for the campaign files.");
}
TypeNum = cboCampType.SelectedIndex;
if ( TypeNum < 0 | TypeNum > 2 )
{
ReturnResult.ProblemAdd("Select a campaign type.");
}
if ( ReturnResult.HasProblems )
{
App.ShowWarnings(ReturnResult);
return;
}
var CompileCampDialog = new FolderBrowserDialog();
if ( CompileCampDialog.ShowDialog(this) != DialogResult.OK )
{
return;
}
var WriteWZArgs = new sWrite_WZ_Args();
WriteWZArgs.MapName = MapName;
WriteWZArgs.Path = CompileCampDialog.SelectedPath;
WriteWZArgs.Overwrite = false;
SetScrollLimits(ref WriteWZArgs.ScrollMin, ref WriteWZArgs.ScrollMax);
WriteWZArgs.Campaign = new sWrite_WZ_Args.clsCampaign();
WriteWZArgs.Campaign.GAMType = (uint)TypeNum;
WriteWZArgs.CompileType = sWrite_WZ_Args.enumCompileType.Campaign;
var wzFormat = new Wz(Map);
ReturnResult.Add(wzFormat.Save(WriteWZArgs));
App.ShowWarnings(ReturnResult);
if ( !ReturnResult.HasWarnings )
{
Close();
}
}
开发者ID:pcdummy,项目名称:SharpFlame,代码行数:57,代码来源:frmCompile.cs
示例3: Load
public clsResult Load(BinaryReader file)
{
var returnResult = new clsResult ("Loading .ttp", false);
logger.Info ("Loading .ttp");
var strTemp = "";
UInt32 uintTemp = 0;
UInt16 ushortTemp = 0;
var A = 0;
if (map.Tileset == null) {
returnResult.ProblemAdd ("Set a tileset first.");
return returnResult;
}
try
{
strTemp = IOUtil.ReadOldTextOfLength(file, 4);
if ( strTemp != "ttyp" )
{
returnResult.ProblemAdd("Incorrect identifier.");
return returnResult;
}
uintTemp = file.ReadUInt32();
if ( uintTemp != 8U )
{
returnResult.ProblemAdd("Unknown version.");
return returnResult;
}
uintTemp = file.ReadUInt32();
for ( A = 0; A <= ((int)(Math.Min(uintTemp, (uint)map.Tileset.TileCount))) - 1; A++ )
{
ushortTemp = file.ReadUInt16();
if ( ushortTemp > 11 )
{
returnResult.ProblemAdd("Unknown tile type number.");
return returnResult;
}
map.Tile_TypeNum[A] = (byte)ushortTemp;
}
}
catch ( Exception ex )
{
Debugger.Break ();
returnResult.ProblemAdd (ex.Message);
logger.ErrorException("Got an exception", ex);
return returnResult;
}
return returnResult;
}
开发者ID:pcdummy,项目名称:SharpFlame,代码行数:52,代码来源:TTP.cs
示例4: frmWarnings
public frmWarnings(clsResult result, string windowTitle)
{
InitializeComponent();
Icon = App.ProgramIcon;
Text = windowTitle;
tvwWarnings.StateImageList = modWarnings.WarningImages;
result.MakeNodes(tvwWarnings.Nodes);
tvwWarnings.ExpandAll();
tvwWarnings.NodeMouseDoubleClick += NodeDoubleClicked;
}
开发者ID:pcdummy,项目名称:SharpFlame,代码行数:14,代码来源:frmWarnings.cs
示例5: ReadFile
public clsResult ReadFile(StreamReader File)
{
clsResult ReturnResult = new clsResult("");
int InvalidLineCount = 0;
int CurrentEntryNum = -1;
string LineText = null;
int A = 0;
do
{
LineText = File.ReadLine();
if ( LineText == null )
{
break;
}
LineText = LineText.Trim();
A = LineText.IndexOf('#');
if ( A >= 0 )
{
LineText = Strings.Left(LineText, A).Trim();
}
if ( LineText.Length >= 1 )
{
A = LineText.IndexOf('=');
if ( A >= 0 )
{
CreateProperty(LineText.Substring(0, A).ToLower().Trim(), LineText.Substring(A + 1, LineText.Length - A - 1).Trim());
}
else
{
InvalidLineCount++;
}
}
else if ( LineText.Length > 0 )
{
InvalidLineCount++;
}
} while ( true );
Properties.RemoveBuffer();
if ( InvalidLineCount > 0 )
{
ReturnResult.WarningAdd("There were " + Convert.ToString(InvalidLineCount) + " invalid lines that were ignored.");
}
return ReturnResult;
}
开发者ID:Zabanya,项目名称:SharpFlame,代码行数:49,代码来源:Section.cs
示例6: BitmapIsGLCompatible
public static clsResult BitmapIsGLCompatible(Bitmap BitmapToCheck)
{
clsResult ReturnResult = new clsResult("Compatability check");
if ( !App.SizeIsPowerOf2(BitmapToCheck.Width) )
{
ReturnResult.WarningAdd("Image width is not a power of 2.");
}
if ( !App.SizeIsPowerOf2(BitmapToCheck.Height) )
{
ReturnResult.WarningAdd("Image height is not a power of 2.");
}
if ( BitmapToCheck.Width != BitmapToCheck.Height )
{
ReturnResult.WarningAdd("Image is not square.");
}
return ReturnResult;
}
开发者ID:Zabanya,项目名称:SharpFlame,代码行数:19,代码来源:BitmapUtil.cs
示例7: Load_FME
public clsResult Load_FME(string Path)
{
clsResult ReturnResult =
new clsResult("Loading FME from " + Convert.ToString(ControlChars.Quote) + Path + Convert.ToString(ControlChars.Quote));
BinaryReader File = default(BinaryReader);
try
{
File = new BinaryReader(new FileStream(Path, FileMode.Open));
}
catch ( Exception ex )
{
ReturnResult.ProblemAdd(ex.Message);
return ReturnResult;
}
ReturnResult.Take(Read_FME(File));
File.Close();
return ReturnResult;
}
开发者ID:Zabanya,项目名称:SharpFlame,代码行数:21,代码来源:clsMapOtherIO.cs
示例8: Save
// compress is ignored.
public clsResult Save(string path, bool overwrite, bool compress = false)
{
var returnResult = new clsResult(string.Format("Saving heightmap to \"{0}\".", path), false);
logger.Info ("Saving heightmap to \"{0}\"", path);
var heightmapBitmap = new Bitmap(map.Terrain.TileSize.X + 1, map.Terrain.TileSize.Y + 1);
for ( var Y = 0; Y <= map.Terrain.TileSize.Y; Y++ )
{
for ( var X = 0; X <= map.Terrain.TileSize.X; X++ )
{
heightmapBitmap.SetPixel(X, Y,
ColorTranslator.FromOle(ColorUtil.OSRGB(Convert.ToInt32(map.Terrain.Vertices[X, Y].Height), map.Terrain.Vertices[X, Y].Height,
map.Terrain.Vertices[X, Y].Height)));
}
}
var subResult = BitmapUtil.SaveBitmap(path, overwrite, heightmapBitmap);
if (!subResult.Success) {
returnResult.ProblemAdd (subResult.Problem);
}
return returnResult;
}
开发者ID:pcdummy,项目名称:SharpFlame,代码行数:24,代码来源:Heightmap.cs
示例9: WriteMemoryToZipEntryAndFlush
public static clsResult WriteMemoryToZipEntryAndFlush(MemoryStream Memory, ZipOutputStream Stream)
{
clsResult ReturnResult = new clsResult("Writing to zip stream");
try
{
Memory.WriteTo(Stream);
Memory.Flush();
Stream.Flush();
Stream.CloseEntry();
}
catch ( Exception ex )
{
ReturnResult.ProblemAdd(ex.Message);
return ReturnResult;
}
return ReturnResult;
}
开发者ID:Zabanya,项目名称:SharpFlame,代码行数:19,代码来源:IOUtil.cs
示例10: LoadDirectory
public clsResult LoadDirectory(string path)
{
var returnResult = new clsResult("Loading tileset from '{0}'".Format2(path), false);
logger.Info("Loading tileset from '{0}'".Format2(path));
Bitmap bitmap = null;
var SplitPath = new sSplitPath(path);
var slashPath = PathUtil.EndWithPathSeperator(path);
var result = new sResult();
if ( SplitPath.FileTitle != "" )
{
Name = SplitPath.FileTitle;
}
else if ( SplitPath.PartCount >= 2 )
{
Name = SplitPath.Parts[SplitPath.PartCount - 2];
}
var ttpFileName = Path.ChangeExtension(Name, ".ttp");
result = LoadTileType(Path.Combine(slashPath, ttpFileName));
if ( !result.Success )
{
returnResult.ProblemAdd("Loading tile types: " + result.Problem);
return returnResult;
}
var redTotal = 0;
var greenTotal = 0;
var blueTotal = 0;
var tileNum = 0;
var strTile = "";
var bmpTextureArgs = new BitmapGLTexture();
var AverageColour = new float[4];
var x = 0;
var y = 0;
var Pixel = new Color();
var graphicPath = "";
//tile count has been set by the ttp file
for ( tileNum = 0; tileNum <= TileCount - 1; tileNum++ )
{
strTile = "tile-" + App.MinDigits(tileNum, 2) + ".png";
//-------- 128 --------
var tileDir = Path.Combine(Name + "-128", strTile);
graphicPath = Path.Combine(slashPath, tileDir);
result = BitmapUtil.LoadBitmap(graphicPath, ref bitmap);
if ( !result.Success )
{
//ignore and exit, since not all tile types have a corresponding tile graphic
return returnResult;
}
if ( bitmap.Width != 128 | bitmap.Height != 128 )
{
returnResult.WarningAdd("Tile graphic " + graphicPath + " from tileset " + Name + " is not 128x128.");
return returnResult;
}
bmpTextureArgs.Texture = bitmap;
bmpTextureArgs.MipMapLevel = 0;
bmpTextureArgs.MagFilter = TextureMagFilter.Nearest;
bmpTextureArgs.MinFilter = TextureMinFilter.Nearest;
bmpTextureArgs.TextureNum = 0;
bmpTextureArgs.Perform();
Tiles[tileNum].TextureViewGlTextureNum = bmpTextureArgs.TextureNum;
bmpTextureArgs.MagFilter = TextureMagFilter.Nearest;
if ( SettingsManager.Settings.Mipmaps )
{
bmpTextureArgs.MinFilter = TextureMinFilter.LinearMipmapLinear;
}
else
{
bmpTextureArgs.MinFilter = TextureMinFilter.Nearest;
}
bmpTextureArgs.TextureNum = 0;
bmpTextureArgs.Perform();
Tiles[tileNum].MapViewGlTextureNum = bmpTextureArgs.TextureNum;
if ( SettingsManager.Settings.Mipmaps )
{
if ( SettingsManager.Settings.MipmapsHardware )
{
GL.Enable(EnableCap.Texture2D);
GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);
GL.Disable(EnableCap.Texture2D);
}
else
{
var MipmapResult = default(clsResult);
MipmapResult = GenerateMipMaps(slashPath, strTile, bmpTextureArgs, tileNum);
//.........这里部分代码省略.........
开发者ID:pcdummy,项目名称:SharpFlame,代码行数:101,代码来源:clsTileset.cs
示例11: Load
public clsResult Load(string path)
{
var returnResult =
new clsResult("Loading LND from \"{0}\"".Format2(path), false);
logger.Info("Loading LND from \"{0}\"".Format2(path));
try
{
var strTemp = "";
var strTemp2 = "";
var X = 0;
var Y = 0;
var A = 0;
var B = 0;
var Tile_Num = 0;
// SimpleList<string> LineData = default(SimpleList<string>);
var Line_Num = 0;
LNDTile[] LNDTile = null;
var LNDObjects = new SimpleList<LNDObject>();
var UnitAdd = new clsUnitAdd();
UnitAdd.Map = map;
var Reader = default(BinaryReader);
try
{
Reader = new BinaryReader(new FileStream(path, FileMode.Open), App.UTF8Encoding);
}
catch ( Exception ex )
{
returnResult.ProblemAdd(ex.Message);
return returnResult;
}
var LineData = IOUtil.BytesToLinesRemoveComments(Reader);
Reader.Close();
Array.Resize(ref LNDTile, LineData.Count);
var strTemp3 = "";
var GotTiles = default(bool);
var GotObjects = default(bool);
var GotGates = default(bool);
var GotTileTypes = default(bool);
var LNDTileType = new byte[0];
var ObjectText = new string[11];
var GateText = new string[4];
var TileTypeText = new string[256];
var LNDTileTypeCount = 0;
var LNDGates = new SimpleList<clsGateway>();
var Gateway = default(clsGateway);
var C = 0;
var D = 0;
var GotText = default(bool);
var FlipX = default(bool);
var FlipZ = default(bool);
byte Rotation = 0;
var NewTileSize = new XYInt();
double dblTemp = 0;
Line_Num = 0;
while ( Line_Num < LineData.Count )
{
strTemp = LineData[Line_Num];
A = strTemp.IndexOf("TileWidth ") + 1;
if ( A == 0 )
{
}
A = strTemp.IndexOf("TileHeight ") + 1;
if ( A == 0 )
{
}
A = strTemp.IndexOf("MapWidth ") + 1;
if ( A == 0 )
{
}
else
{
IOUtil.InvariantParse(strTemp.Substring(strTemp.Length - (strTemp.Length - (A + 8)), strTemp.Length - (A + 8)), ref NewTileSize.X);
goto LineDone;
}
A = strTemp.IndexOf("MapHeight ") + 1;
if ( A == 0 )
{
}
else
{
IOUtil.InvariantParse(strTemp.Substring(strTemp.Length - (strTemp.Length - (A + 9)), strTemp.Length - (A + 9)), ref NewTileSize.Y);
goto LineDone;
}
A = strTemp.IndexOf("Textures {") + 1;
if ( A == 0 )
{
}
else
{
Line_Num++;
//.........这里部分代码省略.........
开发者ID:pcdummy,项目名称:SharpFlame,代码行数:101,代码来源:LND.cs
示例12: lstResult_AddResult
private void lstResult_AddResult(clsResult Result)
{
//todo
//Dim A As Integer
//For A = 0 To Result.Problems.Count - 1
// lstResult.Items.Add("Problem: " & Result.Problems.Item(A))
//Next
//For A = 0 To Result.Warnings.Count - 1
// lstResult.Items.Add("Warning: " & Result.Warnings.Item(A))
//Next
lstResult.SelectedIndex = lstResult.Items.Count - 1;
}
开发者ID:Zabanya,项目名称:SharpFlame,代码行数:14,代码来源:frmGenerator.cs
示例13: FinishTextures
private clsResult FinishTextures()
{
clsResult ReturnResult = new clsResult("");
if ( cbxMasterTexture.Checked )
{
switch ( cboTileset.SelectedIndex )
{
case 0:
Generator.GenerateTileset = DefaultGenerator.Generator_TilesetArizona;
DefaultGenerator.TerrainStyle_Arizona.Watermap = Generator.GetWaterMap();
DefaultGenerator.TerrainStyle_Arizona.LevelCount = Generator.LevelCount;
Generator.Map.GenerateMasterTerrain(DefaultGenerator.TerrainStyle_Arizona);
DefaultGenerator.TerrainStyle_Arizona.Watermap = null;
break;
case 1:
Generator.GenerateTileset = DefaultGenerator.Generator_TilesetUrban;
DefaultGenerator.TerrainStyle_Urban.Watermap = Generator.GetWaterMap();
DefaultGenerator.TerrainStyle_Urban.LevelCount = Generator.LevelCount;
Generator.Map.GenerateMasterTerrain(DefaultGenerator.TerrainStyle_Urban);
DefaultGenerator.TerrainStyle_Urban.Watermap = null;
break;
case 2:
Generator.GenerateTileset = DefaultGenerator.Generator_TilesetRockies;
DefaultGenerator.TerrainStyle_Rockies.Watermap = Generator.GetWaterMap();
DefaultGenerator.TerrainStyle_Rockies.LevelCount = Generator.LevelCount;
Generator.Map.GenerateMasterTerrain(DefaultGenerator.TerrainStyle_Rockies);
DefaultGenerator.TerrainStyle_Rockies.Watermap = null;
break;
default:
ReturnResult.ProblemAdd("Error: bad tileset selection.");
btnGenerateLayout.Enabled = true;
return ReturnResult;
}
Generator.Map.TileType_Reset();
Generator.Map.SetPainterToDefaults();
}
else
{
switch ( cboTileset.SelectedIndex )
{
case 0:
Generator.Map.Tileset = App.Tileset_Arizona;
Generator.GenerateTileset = DefaultGenerator.Generator_TilesetArizona;
break;
case 1:
Generator.Map.Tileset = App.Tileset_Urban;
Generator.GenerateTileset = DefaultGenerator.Generator_TilesetUrban;
break;
case 2:
Generator.Map.Tileset = App.Tileset_Rockies;
Generator.GenerateTileset = DefaultGenerator.Generator_TilesetRockies;
break;
default:
ReturnResult.ProblemAdd("Error: bad tileset selection.");
btnGenerateLayout.Enabled = true;
return ReturnResult;
}
Generator.Map.TileType_Reset();
Generator.Map.SetPainterToDefaults();
double CliffAngle = Math.Atan(255.0D * Generator.Map.HeightMultiplier / (2.0D * (Generator.LevelCount - 1.0D) * App.TerrainGridSpacing)) -
MathUtil.RadOf1Deg;
clsBrush tmpBrush = new clsBrush((Math.Max(Generator.Map.Terrain.TileSize.X, Generator.Map.Terrain.TileSize.Y)) * 1.1D, clsBrush.enumShape.Square);
clsMap.clsApplyCliff ApplyCliff = new clsMap.clsApplyCliff();
ApplyCliff.Map = Generator.Map;
ApplyCliff.Angle = CliffAngle;
ApplyCliff.SetTris = true;
clsBrush.sPosNum Alignments = new clsBrush.sPosNum();
Alignments.Normal = new sXY_int((int)(Conversion.Int(Generator.Map.Terrain.TileSize.X / 2.0D)),
(int)(Conversion.Int(Generator.Map.Terrain.TileSize.Y / 2.0D)));
Alignments.Alignment = Alignments.Normal;
tmpBrush.PerformActionMapTiles(ApplyCliff, Alignments);
bool[] RevertSlope = null;
bool[] RevertHeight = null;
clsBooleanMap WaterMap = new clsBooleanMap();
clsBooleanMap bmTemp = new clsBooleanMap();
int A = 0;
WaterMap = Generator.GetWaterMap();
RevertSlope = new bool[Generator.GenerateTileset.OldTextureLayers.LayerCount];
RevertHeight = new bool[Generator.GenerateTileset.OldTextureLayers.LayerCount];
for ( A = 0; A <= Generator.GenerateTileset.OldTextureLayers.LayerCount - 1; A++ )
{
App.sLayerList.clsLayer with_2 = Generator.GenerateTileset.OldTextureLayers.Layers[A];
with_2.Terrainmap = Generator.Map.GenerateTerrainMap(with_2.Scale, with_2.Density);
if ( with_2.SlopeMax < 0.0F )
{
with_2.SlopeMax = (float)(CliffAngle - MathUtil.RadOf1Deg);
if ( with_2.HeightMax < 0.0F )
{
with_2.HeightMax = 255.0F;
bmTemp.Within(with_2.Terrainmap, WaterMap);
with_2.Terrainmap.ValueData = bmTemp.ValueData;
bmTemp.ValueData = new clsBooleanMap.clsValueData();
RevertHeight[A] = true;
}
RevertSlope[A] = true;
}
}
Generator.Map.MapTexturer(Generator.GenerateTileset.OldTextureLayers);
for ( A = 0; A <= Generator.GenerateTileset.OldTextureLayers.LayerCount - 1; A++ )
//.........这里部分代码省略.........
开发者ID:Zabanya,项目名称:SharpFlame,代码行数:101,代码来源:frmGenerator.cs
示例14: FinishHeights
private clsResult FinishHeights()
{
clsResult ReturnResult = new clsResult("");
ReturnResult.Take(Generator.GenerateLayoutTerrain());
if ( ReturnResult.HasProblems )
{
return ReturnResult;
}
Generator.Map.RandomizeHeights(Generator.LevelCount);
Generator.Map.InterfaceOptions = new clsMap.clsInterfaceOptions();
Generator.Map.InterfaceOptions.CompileMultiPlayers = IOUtil.InvariantToString(Generator.GetTotalPlayerCount);
_Owner.NewMainMap(Generator.Map);
return ReturnResult;
}
开发者ID:Zabanya,项目名称:SharpFlame,代码行数:19,代码来源:frmGenerator.cs
示例15: btnGenerateLayout_Click
//.........这里部分代码省略.........
new Position.XY_dbl(Math.Min(Generator.TileSize.X / Generator.SymmetryBlockCountXY.X, Generator.TileSize.X - 12.0D),
Math.Min(Generator.TileSize.Y / Generator.SymmetryBlockCountXY.Y, Generator.TileSize.Y - 12.0D));
Generator.PlayerBasePos[0] = new sXY_int(ValidateTextbox(txt1x, BaseMin, BaseMax.X, App.TerrainGridSpacing),
ValidateTextbox(txt1y, BaseMin, BaseMax.X, App.TerrainGridSpacing));
if ( Generator.TopLeftPlayerCount >= 2 )
{
Generator.PlayerBasePos[1] = new sXY_int(ValidateTextbox(txt2x, BaseMin, BaseMax.X, App.TerrainGridSpacing),
ValidateTextbox(txt2y, BaseMin, BaseMax.Y, App.TerrainGridSpacing));
if ( Generator.TopLeftPlayerCount >= 3 )
{
Generator.PlayerBasePos[2] = new sXY_int(ValidateTextbox(txt3x, BaseMin, BaseMax.X, App.TerrainGridSpacing),
ValidateTextbox(txt3y, BaseMin, BaseMax.Y, App.TerrainGridSpacing));
if ( Generator.TopLeftPlayerCount >= 4 )
{
Generator.PlayerBasePos[3] = new sXY_int(ValidateTextbox(txt4x, BaseMin, BaseMax.X, App.TerrainGridSpacing),
ValidateTextbox(txt4y, BaseMin, BaseMax.Y, App.TerrainGridSpacing));
if ( Generator.TopLeftPlayerCount >= 5 )
{
Generator.PlayerBasePos[4] = new sXY_int(ValidateTextbox(txt5x, BaseMin, BaseMax.X, App.TerrainGridSpacing),
ValidateTextbox(txt5y, BaseMin, BaseMax.Y, App.TerrainGridSpacing));
if ( Generator.TopLeftPlayerCount >= 6 )
{
Generator.PlayerBasePos[5] = new sXY_int(ValidateTextbox(txt6x, BaseMin, BaseMax.X, App.TerrainGridSpacing),
ValidateTextbox(txt6y, BaseMin, BaseMax.Y, App.TerrainGridSpacing));
if ( Generator.TopLeftPlayerCount >= 7 )
{
Generator.PlayerBasePos[6] = new sXY_int(ValidateTextbox(txt7x, BaseMin, BaseMax.X, App.TerrainGridSpacing),
ValidateTextbox(txt7y, BaseMin, BaseMax.Y, App.TerrainGridSpacing));
if ( Generator.TopLeftPlayerCount >= 8 )
{
Generator.PlayerBasePos[7] = new sXY_int(ValidateTextbox(txt8x, BaseMin, BaseMax.X, App.TerrainGridSpacing),
ValidateTextbox(txt8y, BaseMin, BaseMax.Y, App.TerrainGridSpacing));
if ( Generator.TopLeftPlayerCount >= 9 )
{
Generator.PlayerBasePos[8] = new sXY_int(
ValidateTextbox(txt9x, BaseMin, BaseMax.X, App.TerrainGridSpacing),
ValidateTextbox(txt9y, BaseMin, BaseMax.Y, App.TerrainGridSpacing));
if ( Generator.TopLeftPlayerCount >= 10 )
{
Generator.PlayerBasePos[9] =
new sXY_int(ValidateTextbox(txt10x, BaseMin, BaseMax.X, App.TerrainGridSpacing),
ValidateTextbox(txt10y, BaseMin, BaseMax.Y, App.TerrainGridSpacing));
}
}
}
}
}
}
}
}
}
Generator.LevelCount = ValidateTextbox(txtLevels, 3.0D, 5.0D, 1.0D);
Generator.BaseLevel = ValidateTextbox(txtBaseLevel, -1.0D, Generator.LevelCount - 1, 1.0D);
Generator.JitterScale = 1;
Generator.MaxLevelTransition = 2;
Generator.PassagesChance = ValidateTextbox(txtLevelFrequency, 0.0D, 100.0D, 1.0D);
Generator.VariationChance = ValidateTextbox(txtVariation, 0.0D, 100.0D, 1.0D);
Generator.FlatsChance = ValidateTextbox(txtFlatness, 0.0D, 100.0D, 1.0D);
Generator.BaseFlatArea = ValidateTextbox(txtBaseArea, 1.0D, 16.0D, 1.0D);
Generator.NodeScale = 4.0F;
Generator.WaterSpawnQuantity = ValidateTextbox(txtWaterQuantity, 0.0D, 9999.0D, 1.0D);
Generator.TotalWaterQuantity = ValidateTextbox(txtConnectedWater, 0.0D, 9999.0D, 1.0D);
Application.DoEvents();
LoopCount = 0;
clsResult Result = default(clsResult);
do
{
Result = new clsResult("");
Result = Generator.GenerateLayout();
if ( !Result.HasProblems )
{
clsResult HeightsResult = FinishHeights();
Result.Add(HeightsResult);
if ( !HeightsResult.HasProblems )
{
lstResult_AddResult(Result);
lstResult_AddText("Done.");
btnGenerateLayout.Enabled = true;
break;
}
}
LoopCount++;
lstResult_AddText("Attempt " + Convert.ToString(LoopCount) + " failed.");
Application.DoEvents();
if ( StopTrying )
{
Generator.Map = null;
lstResult_AddResult(Result);
lstResult_AddText("Stopped.");
btnGenerateLayout.Enabled = true;
return;
}
lstResult_AddResult(Result);
lstResult_AddText("Retrying...");
Application.DoEvents();
Generator.ClearLayout();
} while ( true );
lstResult_AddResult(Result);
}
开发者ID:Zabanya,项目名称:SharpFlame,代码行数:101,代码来源:frmGenerator.cs
示例16: ReadPIE
public clsResult ReadPIE(StreamReader File, clsObjectData Owner)
{
clsResult ReturnResult = new clsResult("Reading PIE");
int A = 0;
int B = 0;
string strTemp = "";
string[] SplitText = null;
int LevelCount = 0;
int NewQuadCount = 0;
int NewTriCount = 0;
int C = 0;
string TextureName = "";
sPIELevel[] Levels = null;
int LevelNum = 0;
bool GotText = default(bool);
string strTemp2;
int D = 0;
int PIEVersion = 0;
int Count = 0;
Levels = new sPIELevel[0];
LevelNum = -1;
do
{
strTemp = File.ReadLine();
if ( strTemp == null )
{
goto FileFinished;
}
Reeval:
if ( strTemp.Substring(0, 3) == "PIE" )
{
PIEVersion = int.Parse(strTemp.Substring(strTemp.Length - (strTemp.Length - 4), strTemp.Length - 4));
if ( PIEVersion != 2 & PIEVersion != 3 )
{
ReturnResult.ProblemAdd("Version is unknown.");
return ReturnResult;
}
}
else if ( strTemp.Substring(0, 4) == "TYPE" )
{
}
else if ( strTemp.Substring(0, 7) == "TEXTURE" )
{
TextureName = strTemp.Substring(strTemp.Length - (strTemp.Length - 10), strTemp.Length - 10);
A = Strings.InStrRev(TextureName, " ", -1, (CompareMethod)0);
if ( A > 0 )
{
A = Strings.InStrRev(TextureName, " ", A - 1, (CompareMethod)0);
}
else
{
ReturnResult.ProblemAdd("Bad texture name.");
return ReturnResult;
}
if ( A > 0 )
{
TextureName = TextureName.Substring(0, A - 1);
}
else
{
ReturnResult.ProblemAdd("Bad texture name.");
return ReturnResult;
}
}
else if ( strTemp.Substring(0, 6) == "LEVELS" )
{
LevelCount = int.Parse(strTemp.Substring(strTemp.Length - (strTemp.Length - 7), strTemp.Length - 7));
Levels = new sPIELevel[LevelCount];
}
else if ( strTemp.Substring(0, 6) == "LEVEL " )
{
LevelNum = (int.Parse(strTemp.Substring(strTemp.Length - (strTemp.Length - 6), strTemp.Length - 6))) - 1;
if ( LevelNum >= LevelCount )
{
ReturnResult.ProblemAdd("Level number >= number of levels.");
return ReturnResult;
}
}
else if ( strTemp.Substring(0, 6) == "POINTS" )
{
Levels[LevelNum].PointCount = int.Parse(strTemp.Substring(strTemp.Length - (strTemp.Length - 7), strTemp.Length - 7));
Levels[LevelNum].Point = new sXYZ_sng[Levels[LevelNum].PointCount];
A = 0;
do
{
strTemp = File.ReadLine();
if ( strTemp == null )
{
goto FileFinished;
}
strTemp2 = Strings.Left(strTemp, 1);
if ( char.Parse(strTemp2) == '\t' || strTemp2 == " " )
{
SplitText = new string[3];
C = 0;
SplitText[0] = "";
GotText = false;
//.........这里部分代码省略.........
开发者ID:Zabanya,项目名称:SharpFlame,代码行数:101,代码来源:clsModel.cs
示例17: GenerateLayoutTerrain
public clsResult GenerateLayoutTerrain()
{
clsResult ReturnResult = new clsResult("Terrain heights");
clsNodeTag NodeTag = default(clsNodeTag);
PathfinderNode tmpNodeA = default(PathfinderNode);
PathfinderNode tmpNodeB = default(PathfinderNode);
int A = 0;
int B = 0;
int C = 0;
int D = 0;
int X = 0;
int Y = 0;
sXY_int XY_int = new sXY_int();
double Dist = 0;
double BestDist = 0;
bool Flag = default(bool);
Map = new clsMap(TileSize);
GenerateTerrainTiles = new GenerateTerrainTile[Map.Terrain.TileSize.X, Map.Terrain.TileSize.Y];
GenerateTerrainVertices = new GenerateTerrainVertex[Map.Terrain.TileSize.X + 1, Map.Terrain.TileSize.Y + 1];
//set terrain heights
VertexPathMap = new PathfinderNetwork();
for ( Y = 0; Y <= Map.Terrain.TileSize.Y; Y++ )
{
for ( X = 0; X <= Map.Terrain.TileSize.X; X++ )
{
GenerateTerrainVertices[X, Y] = new GenerateTerrainVertex();
GenerateTerrainVertices[X, Y].Node = new PathfinderNode(VertexPathMap);
NodeTag = new clsNodeTag();
NodeTag.Pos = new sXY_int(X * 128, Y * 128);
GenerateTerrainVertices[X, Y].Node.Tag = NodeTag;
}
}
for ( Y = 0; Y <= Map.Terrain.TileSize.Y; Y++ )
{
for ( X = 0; X <= Map.Terrain.TileSize.X; X++ )
{
tmpNodeA = GenerateTerrainVertices[X, Y].Node;
if ( X > 0 )
{
tmpNodeB = GenerateTerrainVertices[X - 1, Y].Node;
GenerateTerrainVertices[X, Y].LeftLink = tmpNodeA.GetOrCreateConnection(tmpNodeB, GetNodePosDist(tmpNodeA, tmpNodeB));
}
if ( Y > 0 )
{
if ( X > 0 )
{
tmpNodeB = GenerateTerrainVertices[X - 1, Y - 1].Node;
GenerateTerrainVertices[X, Y].TopLeftLink = tmpNodeA.GetOrCreateConnection(tmpNodeB, GetNodePosDist(tmpNodeA, tmpNodeB));
}
tmpNodeB = GenerateTerrainVertices[X, Y - 1].Node;
GenerateTerrainVertices[X, Y].TopLink = tmpNodeA.GetOrCreateConnection(tmpNodeB, GetNodePosDist(tmpNodeA, tmpNodeB));
if ( X < Map.Terrain.TileSize.X )
{
tmpNodeB = GenerateTerrainVertices[X + 1, Y - 1].Node;
GenerateTerrainVertices[X, Y].TopRightLink = tmpNodeA.GetOrCreateConnection(tmpNodeB, GetNodePosDist(tmpNodeA, tmpNodeB));
}
}
if ( X < Map.Terrain.TileSize.X )
{
tmpNodeB = GenerateTerrainVertices[X + 1, Y].Node;
GenerateTerrainVertices[X, Y].RightLink = tmpNodeA.GetOrCreateConnection(tmpNodeB, GetNodePosDist(tmpNodeA, tmpNodeB));
}
if ( Y < Map.Terrain.TileSize.Y )
{
if ( X > 0 )
{
tmpNodeB = GenerateTerrainVertices[X - 1, Y + 1].Node;
GenerateTerrainVertices[X, Y].BottomLeftLink = tmpNodeA.GetOrCreateConnection(tmpNodeB, GetNodePosDist(tmpNodeA, tmpNodeB));
}
tmpNodeB = GenerateTerrainVertices[X, Y + 1].Node;
GenerateTerrainVertices[X, Y].BottomLink = tmpNodeA.GetOrCreateConnection(tmpNodeB, GetNodePosDist(tmpNodeA, tmpNodeB));
if ( X < Map.Terrain.TileSize.X )
{
tmpNodeB = GenerateTerrainVertices[X + 1, Y + 1].Node;
GenerateTerrainVertices[X, Y].BottomRightLink = tmpNodeA.GetOrCreateConnection(tmpNodeB, GetNodePosDist(t
|
请发表评论