1.0
Main
This commit is contained in:
commit
d057fe2c33
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
BIN
.vs/FLCompanionByDvurechensky/FileContentIndex/0deef964-5c97-452b-9641-0e15b6e7e19a.vsidx
Normal file
BIN
.vs/FLCompanionByDvurechensky/FileContentIndex/0deef964-5c97-452b-9641-0e15b6e7e19a.vsidx
Normal file
Binary file not shown.
BIN
.vs/FLCompanionByDvurechensky/FileContentIndex/26af1a88-960d-4017-a134-e6bea23e1e8e.vsidx
Normal file
BIN
.vs/FLCompanionByDvurechensky/FileContentIndex/26af1a88-960d-4017-a134-e6bea23e1e8e.vsidx
Normal file
Binary file not shown.
BIN
.vs/FLCompanionByDvurechensky/FileContentIndex/c3b874c8-2d59-4bef-a94b-d9febba00ff6.vsidx
Normal file
BIN
.vs/FLCompanionByDvurechensky/FileContentIndex/c3b874c8-2d59-4bef-a94b-d9febba00ff6.vsidx
Normal file
Binary file not shown.
0
.vs/FLCompanionByDvurechensky/FileContentIndex/read.lock
Normal file
0
.vs/FLCompanionByDvurechensky/FileContentIndex/read.lock
Normal file
BIN
.vs/FLCompanionByDvurechensky/v17/.suo
Normal file
BIN
.vs/FLCompanionByDvurechensky/v17/.suo
Normal file
Binary file not shown.
BIN
.vs/Freelancer Companion by Dormammu/FileContentIndex/efe5caee-de94-4fb9-adf9-b19df581be3d.vsidx
Normal file
BIN
.vs/Freelancer Companion by Dormammu/FileContentIndex/efe5caee-de94-4fb9-adf9-b19df581be3d.vsidx
Normal file
Binary file not shown.
BIN
.vs/Freelancer Companion by Dormammu/v15/.suo
Normal file
BIN
.vs/Freelancer Companion by Dormammu/v15/.suo
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.vs/Freelancer Companion by Dormammu/v16/.suo
Normal file
BIN
.vs/Freelancer Companion by Dormammu/v16/.suo
Normal file
Binary file not shown.
BIN
.vs/Freelancer Companion by Dormammu/v17/.suo
Normal file
BIN
.vs/Freelancer Companion by Dormammu/v17/.suo
Normal file
Binary file not shown.
BIN
.vs/Freelancer Companion by Dormammu/v17/TestStore/0/000.testlog
Normal file
BIN
.vs/Freelancer Companion by Dormammu/v17/TestStore/0/000.testlog
Normal file
Binary file not shown.
Binary file not shown.
25
FLCompanionByDvurechensky.sln
Normal file
25
FLCompanionByDvurechensky.sln
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.28307.1169
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FLCompanionByDvurechensky", "FLCompanionByDvurechensky\FLCompanionByDvurechensky.csproj", "{71B7AFC2-EB05-4098-9A50-71801EC5B23D}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{71B7AFC2-EB05-4098-9A50-71801EC5B23D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{71B7AFC2-EB05-4098-9A50-71801EC5B23D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{71B7AFC2-EB05-4098-9A50-71801EC5B23D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{71B7AFC2-EB05-4098-9A50-71801EC5B23D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {847219A2-BC59-4603-A9CA-265F49B47271}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
BIN
FLCompanionByDvurechensky.suo
Normal file
BIN
FLCompanionByDvurechensky.suo
Normal file
Binary file not shown.
6
FLCompanionByDvurechensky/App.config
Normal file
6
FLCompanionByDvurechensky/App.config
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
|
||||
</startup>
|
||||
</configuration>
|
23
FLCompanionByDvurechensky/Data/ComboBoxItem.cs
Normal file
23
FLCompanionByDvurechensky/Data/ComboBoxItem.cs
Normal file
@ -0,0 +1,23 @@
|
||||
namespace FLCompanionByDvurechensky.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Кастомизированный объект Combobox
|
||||
/// </summary>
|
||||
public class ComboBoxItem
|
||||
{
|
||||
/// <summary>
|
||||
/// Текстовое поле
|
||||
/// </summary>
|
||||
public string Text { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Идентификатор
|
||||
/// </summary>
|
||||
public string ID { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Text;
|
||||
}
|
||||
}
|
||||
}
|
17
FLCompanionByDvurechensky/Data/Equipment.cs
Normal file
17
FLCompanionByDvurechensky/Data/Equipment.cs
Normal file
@ -0,0 +1,17 @@
|
||||
namespace FLCompanionByDvurechensky.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Оборудование
|
||||
/// </summary>
|
||||
public class Equipment
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор предмета в файлах игры
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// Имя предмета русское
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
46
FLCompanionByDvurechensky/Data/Loadout.cs
Normal file
46
FLCompanionByDvurechensky/Data/Loadout.cs
Normal file
@ -0,0 +1,46 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace FLCompanionByDvurechensky.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Сюрпризик
|
||||
/// </summary>
|
||||
public class Loadout
|
||||
{
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
public Loadout()
|
||||
{
|
||||
Cargo = new List<Cargo>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Имя сюрприза
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// Тип сюрприза
|
||||
/// </summary>
|
||||
public string Archetype { get; set; }
|
||||
/// <summary>
|
||||
/// Груз сюрприза
|
||||
/// </summary>
|
||||
public List<Cargo> Cargo { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Объект данных груза
|
||||
/// </summary>
|
||||
public class Cargo
|
||||
{
|
||||
/// <summary>
|
||||
/// Имя груза
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// Количество груза
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
}
|
||||
}
|
17
FLCompanionByDvurechensky/Data/LootableZone.cs
Normal file
17
FLCompanionByDvurechensky/Data/LootableZone.cs
Normal file
@ -0,0 +1,17 @@
|
||||
namespace FLCompanionByDvurechensky.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Зона добычи груза
|
||||
/// </summary>
|
||||
public class LootableZone
|
||||
{
|
||||
/// <summary>
|
||||
/// Имя зоны астероидов
|
||||
/// </summary>
|
||||
public string ZoneName { get; set; }
|
||||
/// <summary>
|
||||
/// ID груза внутри этой зоны
|
||||
/// </summary>
|
||||
public string LootId { get; set; }
|
||||
}
|
||||
}
|
49
FLCompanionByDvurechensky/Data/ObjectSystem.cs
Normal file
49
FLCompanionByDvurechensky/Data/ObjectSystem.cs
Normal file
@ -0,0 +1,49 @@
|
||||
namespace FLCompanionByDvurechensky.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Класс объектов системы
|
||||
/// </summary>
|
||||
public class ObjectSystem
|
||||
{
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
public string ID { get; set; }
|
||||
/// <summary>
|
||||
/// Местоположение
|
||||
/// </summary>
|
||||
public int[] Pos { get; set; }
|
||||
/// <summary>
|
||||
/// Позиция на карте в App
|
||||
/// </summary>
|
||||
public int[] MapPos { get; set; }
|
||||
/// <summary>
|
||||
/// База ID
|
||||
/// </summary>
|
||||
public string BaseID { get; set; }
|
||||
/// <summary>
|
||||
/// Имя базы
|
||||
/// </summary>
|
||||
public string NameBase { get; set; }
|
||||
/// <summary>
|
||||
/// Инфокарта объекта
|
||||
/// </summary>
|
||||
public string IdsName { get; set; }
|
||||
/// <summary>
|
||||
/// Принадлежность объекта
|
||||
/// </summary>
|
||||
public string Archetype { get; set; }
|
||||
/// <summary>
|
||||
/// Сюрприз ли это
|
||||
/// </summary>
|
||||
public string Loadout { get; set; }
|
||||
/// <summary>
|
||||
/// Куда ведёт портал
|
||||
/// </summary>
|
||||
public string Goto { get; set; }
|
||||
/// <summary>
|
||||
/// Куда ведёт портал ID
|
||||
/// </summary>
|
||||
public string GotoID { get; set; }
|
||||
}
|
||||
}
|
29
FLCompanionByDvurechensky/Data/UniverseBase.cs
Normal file
29
FLCompanionByDvurechensky/Data/UniverseBase.cs
Normal file
@ -0,0 +1,29 @@
|
||||
namespace FLCompanionByDvurechensky.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Объект базы
|
||||
/// </summary>
|
||||
public class UniverseBase
|
||||
{
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// ID системы
|
||||
/// </summary>
|
||||
public string System { get; set; }
|
||||
/// <summary>
|
||||
/// Ссылка на имя Базы
|
||||
/// </summary>
|
||||
public string DLL_Name { get; set; }
|
||||
/// <summary>
|
||||
/// Имя базы
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// Адрес до INI
|
||||
/// </summary>
|
||||
public string INI { get; set; }
|
||||
}
|
||||
}
|
81
FLCompanionByDvurechensky/Data/UniverseSystem.cs
Normal file
81
FLCompanionByDvurechensky/Data/UniverseSystem.cs
Normal file
@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace FLCompanionByDvurechensky.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Объект системы
|
||||
/// </summary>
|
||||
public class UniverseSystem
|
||||
{
|
||||
/// <summary>
|
||||
/// Консруктор
|
||||
/// </summary>
|
||||
public UniverseSystem()
|
||||
{
|
||||
Objects = new List<ObjectSystem>();
|
||||
Zones = new List<ZoneSystem>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// Имя
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// Адрес до INI
|
||||
/// </summary>
|
||||
public string INI { get; set; }
|
||||
/// <summary>
|
||||
/// ОТключено (Позиция системы на карте в MultiUniverse)
|
||||
/// </summary>
|
||||
public int[] Pos { get; set; }
|
||||
/// <summary>
|
||||
/// Посетил ли
|
||||
/// </summary>
|
||||
public int Visit { get; set; }
|
||||
/// <summary>
|
||||
/// Ссылка на имя в DLL
|
||||
/// </summary>
|
||||
public string DLL_Name { get; set; }
|
||||
/// <summary>
|
||||
/// Ссылка на инфоркарту DLL
|
||||
/// </summary>
|
||||
public string DLL_InfoCard { get; set; }
|
||||
/// <summary>
|
||||
/// НЕ работает(позиция на карте теперь в MultiUniverse)
|
||||
/// </summary>
|
||||
public double NavMapScale { get; set; }
|
||||
/// <summary>
|
||||
/// Итоговый радиус системы
|
||||
/// </summary>
|
||||
public int Radius
|
||||
{
|
||||
get
|
||||
{
|
||||
double val;
|
||||
if (NavMapScale != 0)
|
||||
{
|
||||
val = 131041.0 / NavMapScale;
|
||||
}
|
||||
else val = 131041.0;
|
||||
return (int)Math.Round(val, MidpointRounding.AwayFromZero);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// НПС говорят название объекта
|
||||
/// </summary>
|
||||
public string MsgIdPrefix { get; set; }
|
||||
/// <summary>
|
||||
/// Список объектов
|
||||
/// </summary>
|
||||
public List<ObjectSystem> Objects { get; set; }
|
||||
/// <summary>
|
||||
/// Список зон
|
||||
/// </summary>
|
||||
public List<ZoneSystem> Zones { get; set; }
|
||||
}
|
||||
}
|
17
FLCompanionByDvurechensky/Data/ZoneSystem.cs
Normal file
17
FLCompanionByDvurechensky/Data/ZoneSystem.cs
Normal file
@ -0,0 +1,17 @@
|
||||
namespace FLCompanionByDvurechensky.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Класс зоны системы
|
||||
/// </summary>
|
||||
public class ZoneSystem
|
||||
{
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
public string ID { get; set; }
|
||||
/// <summary>
|
||||
/// Местоположение
|
||||
/// </summary>
|
||||
public int[] Pos { get; set; }
|
||||
}
|
||||
}
|
7
FLCompanionByDvurechensky/Extensions/Extension.cs
Normal file
7
FLCompanionByDvurechensky/Extensions/Extension.cs
Normal file
@ -0,0 +1,7 @@
|
||||
namespace Freelancer_Companion_by_Dormammu.Extensions
|
||||
{
|
||||
public static class Extension
|
||||
{
|
||||
|
||||
}
|
||||
}
|
136
FLCompanionByDvurechensky/FLCompanionByDvurechensky.csproj
Normal file
136
FLCompanionByDvurechensky/FLCompanionByDvurechensky.csproj
Normal file
@ -0,0 +1,136 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{71B7AFC2-EB05-4098-9A50-71801EC5B23D}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>FLCompanionByDvurechensky</RootNamespace>
|
||||
<AssemblyName>FLCompanionByDvurechensky</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>ico.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="GraphX.Standard.Common, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GraphX.3.0.0\lib\net461\GraphX.Standard.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GraphX.Standard.Logic, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GraphX.3.0.0\lib\net461\GraphX.Standard.Logic.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GraphX.WPF.Controls, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GraphX.3.0.0\lib\net461\GraphX.WPF.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="QuickGraph, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\QuickGraphCore.1.0.0\lib\net40\QuickGraph.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="UIAutomationProvider" />
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="WindowsFormsIntegration" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Data\ComboBoxItem.cs" />
|
||||
<Compile Include="Data\Equipment.cs" />
|
||||
<Compile Include="Data\Loadout.cs" />
|
||||
<Compile Include="Data\LootableZone.cs" />
|
||||
<Compile Include="Data\ObjectSystem.cs" />
|
||||
<Compile Include="Data\ZoneSystem.cs" />
|
||||
<Compile Include="Models\Dijkstra.cs" />
|
||||
<Compile Include="Models\Graph.cs" />
|
||||
<Compile Include="Models\GraphEdge.cs" />
|
||||
<Compile Include="Models\GraphVertex.cs" />
|
||||
<Compile Include="Models\GraphVertexInfo.cs" />
|
||||
<Compile Include="Data\UniverseBase.cs" />
|
||||
<Compile Include="Data\UniverseSystem.cs" />
|
||||
<Compile Include="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Models\DataEdge.cs" />
|
||||
<Compile Include="Models\DataVertex.cs" />
|
||||
<Compile Include="Models\GraphAreaExample.cs" />
|
||||
<Compile Include="Models\GraphExample.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Services\DrawService.cs" />
|
||||
<Compile Include="Services\LogService.cs" />
|
||||
<Compile Include="Services\SystemService.cs" />
|
||||
<EmbeddedResource Include="Form1.resx">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Include="Templates\template.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="ico.ico" />
|
||||
<Content Include="Resources\tr_red.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
423
FLCompanionByDvurechensky/Form1.Designer.cs
generated
Normal file
423
FLCompanionByDvurechensky/Form1.Designer.cs
generated
Normal file
@ -0,0 +1,423 @@
|
||||
namespace FLCompanionByDvurechensky
|
||||
{
|
||||
partial class FreelancerCompanionDvurechensky
|
||||
{
|
||||
/// <summary>
|
||||
/// Обязательная переменная конструктора.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Освободить все используемые ресурсы.
|
||||
/// </summary>
|
||||
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Код, автоматически созданный конструктором форм Windows
|
||||
|
||||
/// <summary>
|
||||
/// Требуемый метод для поддержки конструктора — не изменяйте
|
||||
/// содержимое этого метода с помощью редактора кода.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FreelancerCompanionDvurechensky));
|
||||
this.Map = new System.Windows.Forms.PictureBox();
|
||||
this.comboBoxSystems = new System.Windows.Forms.ComboBox();
|
||||
this.labelSystemss = new System.Windows.Forms.Label();
|
||||
this.LoggerRichTextBox = new System.Windows.Forms.RichTextBox();
|
||||
this.flowLayoutPanelNames = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.checkBoxBases = new System.Windows.Forms.CheckBox();
|
||||
this.checkBoxContainers = new System.Windows.Forms.CheckBox();
|
||||
this.checkBoxAll = new System.Windows.Forms.CheckBox();
|
||||
this.checkBoxHoll = new System.Windows.Forms.CheckBox();
|
||||
this.textBoxX = new System.Windows.Forms.TextBox();
|
||||
this.textBoxY = new System.Windows.Forms.TextBox();
|
||||
this.textBoxZ = new System.Windows.Forms.TextBox();
|
||||
this.wpfHost = new System.Windows.Forms.Integration.ElementHost();
|
||||
this.but_generate = new System.Windows.Forms.Button();
|
||||
this.but_reload = new System.Windows.Forms.Button();
|
||||
this.buttonSetRoad = new System.Windows.Forms.Button();
|
||||
this.comboBoxRoadFirst = new System.Windows.Forms.ComboBox();
|
||||
this.comboBoxRoadLast = new System.Windows.Forms.ComboBox();
|
||||
this.checkBoxRusNames = new System.Windows.Forms.CheckBox();
|
||||
this.buttonCloseMap = new System.Windows.Forms.Button();
|
||||
this.comboBoxSearch = new System.Windows.Forms.ComboBox();
|
||||
this.labelSearch = new System.Windows.Forms.Label();
|
||||
this.checkBoxSearchState = new System.Windows.Forms.CheckBox();
|
||||
this.buttonSearchEquipment = new System.Windows.Forms.Button();
|
||||
((System.ComponentModel.ISupportInitialize)(this.Map)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// Map
|
||||
//
|
||||
this.Map.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.Map.Location = new System.Drawing.Point(0, -2);
|
||||
this.Map.Name = "Map";
|
||||
this.Map.Size = new System.Drawing.Size(800, 800);
|
||||
this.Map.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.Map.TabIndex = 1;
|
||||
this.Map.TabStop = false;
|
||||
this.Map.Paint += new System.Windows.Forms.PaintEventHandler(this.Map_Paint);
|
||||
//
|
||||
// comboBoxSystems
|
||||
//
|
||||
this.comboBoxSystems.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
|
||||
this.comboBoxSystems.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
|
||||
this.comboBoxSystems.DisplayMember = "Add";
|
||||
this.comboBoxSystems.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.comboBoxSystems.FormattingEnabled = true;
|
||||
this.comboBoxSystems.Location = new System.Drawing.Point(806, 1);
|
||||
this.comboBoxSystems.Name = "comboBoxSystems";
|
||||
this.comboBoxSystems.Size = new System.Drawing.Size(406, 24);
|
||||
this.comboBoxSystems.TabIndex = 2;
|
||||
this.comboBoxSystems.SelectedIndexChanged += new System.EventHandler(this.comboBoxSystems_SelectedIndexChanged);
|
||||
this.comboBoxSystems.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.ComboBoxSystems_KeyPress);
|
||||
//
|
||||
// labelSystemss
|
||||
//
|
||||
this.labelSystemss.AutoSize = true;
|
||||
this.labelSystemss.BackColor = System.Drawing.Color.DarkOrchid;
|
||||
this.labelSystemss.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.labelSystemss.Font = new System.Drawing.Font("MS PGothic", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.labelSystemss.ForeColor = System.Drawing.Color.FloralWhite;
|
||||
this.labelSystemss.Location = new System.Drawing.Point(1228, 4);
|
||||
this.labelSystemss.Name = "labelSystemss";
|
||||
this.labelSystemss.Size = new System.Drawing.Size(44, 21);
|
||||
this.labelSystemss.TabIndex = 3;
|
||||
this.labelSystemss.Text = "999";
|
||||
this.labelSystemss.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// LoggerRichTextBox
|
||||
//
|
||||
this.LoggerRichTextBox.Font = new System.Drawing.Font("Microsoft YaHei", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.LoggerRichTextBox.Location = new System.Drawing.Point(806, 473);
|
||||
this.LoggerRichTextBox.Name = "LoggerRichTextBox";
|
||||
this.LoggerRichTextBox.Size = new System.Drawing.Size(476, 325);
|
||||
this.LoggerRichTextBox.TabIndex = 4;
|
||||
this.LoggerRichTextBox.Text = "";
|
||||
//
|
||||
// flowLayoutPanelNames
|
||||
//
|
||||
this.flowLayoutPanelNames.AutoScroll = true;
|
||||
this.flowLayoutPanelNames.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.flowLayoutPanelNames.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.flowLayoutPanelNames.Location = new System.Drawing.Point(806, 185);
|
||||
this.flowLayoutPanelNames.Name = "flowLayoutPanelNames";
|
||||
this.flowLayoutPanelNames.Size = new System.Drawing.Size(476, 252);
|
||||
this.flowLayoutPanelNames.TabIndex = 5;
|
||||
//
|
||||
// checkBoxBases
|
||||
//
|
||||
this.checkBoxBases.AutoSize = true;
|
||||
this.checkBoxBases.Font = new System.Drawing.Font("Mongolian Baiti", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxBases.Location = new System.Drawing.Point(806, 31);
|
||||
this.checkBoxBases.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.checkBoxBases.Name = "checkBoxBases";
|
||||
this.checkBoxBases.Size = new System.Drawing.Size(128, 24);
|
||||
this.checkBoxBases.TabIndex = 6;
|
||||
this.checkBoxBases.Text = "Показать базы";
|
||||
this.checkBoxBases.UseVisualStyleBackColor = true;
|
||||
this.checkBoxBases.CheckedChanged += new System.EventHandler(this.checkBoxBases_CheckedChanged);
|
||||
//
|
||||
// checkBoxContainers
|
||||
//
|
||||
this.checkBoxContainers.AutoSize = true;
|
||||
this.checkBoxContainers.Font = new System.Drawing.Font("Mongolian Baiti", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxContainers.Location = new System.Drawing.Point(805, 53);
|
||||
this.checkBoxContainers.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.checkBoxContainers.Name = "checkBoxContainers";
|
||||
this.checkBoxContainers.Size = new System.Drawing.Size(175, 24);
|
||||
this.checkBoxContainers.TabIndex = 7;
|
||||
this.checkBoxContainers.Text = "Показать контейнеры";
|
||||
this.checkBoxContainers.UseVisualStyleBackColor = true;
|
||||
this.checkBoxContainers.CheckedChanged += new System.EventHandler(this.checkBoxContainers_CheckedChanged);
|
||||
//
|
||||
// checkBoxAll
|
||||
//
|
||||
this.checkBoxAll.AutoSize = true;
|
||||
this.checkBoxAll.Font = new System.Drawing.Font("Mongolian Baiti", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxAll.Location = new System.Drawing.Point(1033, 27);
|
||||
this.checkBoxAll.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.checkBoxAll.Name = "checkBoxAll";
|
||||
this.checkBoxAll.Size = new System.Drawing.Size(117, 24);
|
||||
this.checkBoxAll.TabIndex = 8;
|
||||
this.checkBoxAll.Text = "Показать всё";
|
||||
this.checkBoxAll.UseVisualStyleBackColor = true;
|
||||
this.checkBoxAll.CheckedChanged += new System.EventHandler(this.checkBoxAll_CheckedChanged);
|
||||
//
|
||||
// checkBoxHoll
|
||||
//
|
||||
this.checkBoxHoll.AutoSize = true;
|
||||
this.checkBoxHoll.Font = new System.Drawing.Font("Mongolian Baiti", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxHoll.Location = new System.Drawing.Point(1032, 53);
|
||||
this.checkBoxHoll.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.checkBoxHoll.Name = "checkBoxHoll";
|
||||
this.checkBoxHoll.Size = new System.Drawing.Size(152, 24);
|
||||
this.checkBoxHoll.TabIndex = 9;
|
||||
this.checkBoxHoll.Text = "Показать порталы";
|
||||
this.checkBoxHoll.UseVisualStyleBackColor = true;
|
||||
this.checkBoxHoll.CheckedChanged += new System.EventHandler(this.checkBoxHoll_CheckedChanged);
|
||||
//
|
||||
// textBoxX
|
||||
//
|
||||
this.textBoxX.Location = new System.Drawing.Point(1214, 28);
|
||||
this.textBoxX.Name = "textBoxX";
|
||||
this.textBoxX.Size = new System.Drawing.Size(68, 20);
|
||||
this.textBoxX.TabIndex = 10;
|
||||
this.textBoxX.Text = "X";
|
||||
this.textBoxX.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
//
|
||||
// textBoxY
|
||||
//
|
||||
this.textBoxY.Location = new System.Drawing.Point(1214, 53);
|
||||
this.textBoxY.Name = "textBoxY";
|
||||
this.textBoxY.Size = new System.Drawing.Size(68, 20);
|
||||
this.textBoxY.TabIndex = 11;
|
||||
this.textBoxY.Text = "Y";
|
||||
this.textBoxY.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
//
|
||||
// textBoxZ
|
||||
//
|
||||
this.textBoxZ.Location = new System.Drawing.Point(1214, 79);
|
||||
this.textBoxZ.Name = "textBoxZ";
|
||||
this.textBoxZ.Size = new System.Drawing.Size(68, 20);
|
||||
this.textBoxZ.TabIndex = 12;
|
||||
this.textBoxZ.Text = "Z";
|
||||
this.textBoxZ.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
//
|
||||
// wpfHost
|
||||
//
|
||||
this.wpfHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.wpfHost.BackColor = System.Drawing.Color.White;
|
||||
this.wpfHost.Location = new System.Drawing.Point(0, -2);
|
||||
this.wpfHost.Name = "wpfHost";
|
||||
this.wpfHost.Size = new System.Drawing.Size(801, 800);
|
||||
this.wpfHost.TabIndex = 14;
|
||||
this.wpfHost.Text = "elementHost1";
|
||||
this.wpfHost.Visible = false;
|
||||
this.wpfHost.Child = null;
|
||||
//
|
||||
// but_generate
|
||||
//
|
||||
this.but_generate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.but_generate.Image = ((System.Drawing.Image)(resources.GetObject("but_generate.Image")));
|
||||
this.but_generate.Location = new System.Drawing.Point(806, 113);
|
||||
this.but_generate.Name = "but_generate";
|
||||
this.but_generate.Size = new System.Drawing.Size(65, 67);
|
||||
this.but_generate.TabIndex = 2;
|
||||
this.but_generate.UseVisualStyleBackColor = true;
|
||||
this.but_generate.Click += new System.EventHandler(this.but_generate_Click);
|
||||
//
|
||||
// but_reload
|
||||
//
|
||||
this.but_reload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.but_reload.Image = ((System.Drawing.Image)(resources.GetObject("but_reload.Image")));
|
||||
this.but_reload.Location = new System.Drawing.Point(877, 115);
|
||||
this.but_reload.Name = "but_reload";
|
||||
this.but_reload.Size = new System.Drawing.Size(65, 65);
|
||||
this.but_reload.TabIndex = 15;
|
||||
this.but_reload.UseVisualStyleBackColor = true;
|
||||
this.but_reload.Click += new System.EventHandler(this.but_reload_Click);
|
||||
//
|
||||
// buttonSetRoad
|
||||
//
|
||||
this.buttonSetRoad.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.buttonSetRoad.Enabled = false;
|
||||
this.buttonSetRoad.Image = ((System.Drawing.Image)(resources.GetObject("buttonSetRoad.Image")));
|
||||
this.buttonSetRoad.Location = new System.Drawing.Point(948, 115);
|
||||
this.buttonSetRoad.Name = "buttonSetRoad";
|
||||
this.buttonSetRoad.Size = new System.Drawing.Size(65, 65);
|
||||
this.buttonSetRoad.TabIndex = 16;
|
||||
this.buttonSetRoad.UseVisualStyleBackColor = true;
|
||||
this.buttonSetRoad.Click += new System.EventHandler(this.ButtonSetRoad_Click);
|
||||
//
|
||||
// comboBoxRoadFirst
|
||||
//
|
||||
this.comboBoxRoadFirst.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
|
||||
this.comboBoxRoadFirst.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
|
||||
this.comboBoxRoadFirst.DisplayMember = "Add";
|
||||
this.comboBoxRoadFirst.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.comboBoxRoadFirst.FormattingEnabled = true;
|
||||
this.comboBoxRoadFirst.Location = new System.Drawing.Point(1019, 115);
|
||||
this.comboBoxRoadFirst.Name = "comboBoxRoadFirst";
|
||||
this.comboBoxRoadFirst.Size = new System.Drawing.Size(263, 24);
|
||||
this.comboBoxRoadFirst.TabIndex = 17;
|
||||
//
|
||||
// comboBoxRoadLast
|
||||
//
|
||||
this.comboBoxRoadLast.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
|
||||
this.comboBoxRoadLast.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
|
||||
this.comboBoxRoadLast.DisplayMember = "Add";
|
||||
this.comboBoxRoadLast.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.comboBoxRoadLast.FormattingEnabled = true;
|
||||
this.comboBoxRoadLast.Location = new System.Drawing.Point(1019, 155);
|
||||
this.comboBoxRoadLast.Name = "comboBoxRoadLast";
|
||||
this.comboBoxRoadLast.Size = new System.Drawing.Size(263, 24);
|
||||
this.comboBoxRoadLast.TabIndex = 18;
|
||||
//
|
||||
// checkBoxRusNames
|
||||
//
|
||||
this.checkBoxRusNames.AutoSize = true;
|
||||
this.checkBoxRusNames.Font = new System.Drawing.Font("Mongolian Baiti", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxRusNames.Location = new System.Drawing.Point(1033, 79);
|
||||
this.checkBoxRusNames.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.checkBoxRusNames.Name = "checkBoxRusNames";
|
||||
this.checkBoxRusNames.Size = new System.Drawing.Size(118, 24);
|
||||
this.checkBoxRusNames.TabIndex = 19;
|
||||
this.checkBoxRusNames.Text = "Русский язык";
|
||||
this.checkBoxRusNames.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// buttonCloseMap
|
||||
//
|
||||
this.buttonCloseMap.BackColor = System.Drawing.Color.DarkGoldenrod;
|
||||
this.buttonCloseMap.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
|
||||
this.buttonCloseMap.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.buttonCloseMap.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.buttonCloseMap.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.buttonCloseMap.ForeColor = System.Drawing.Color.AliceBlue;
|
||||
this.buttonCloseMap.Location = new System.Drawing.Point(806, 83);
|
||||
this.buttonCloseMap.Name = "buttonCloseMap";
|
||||
this.buttonCloseMap.Size = new System.Drawing.Size(25, 23);
|
||||
this.buttonCloseMap.TabIndex = 20;
|
||||
this.buttonCloseMap.Text = "X";
|
||||
this.buttonCloseMap.UseVisualStyleBackColor = false;
|
||||
this.buttonCloseMap.Click += new System.EventHandler(this.buttonCloseMap_Click);
|
||||
//
|
||||
// comboBoxSearch
|
||||
//
|
||||
this.comboBoxSearch.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
|
||||
this.comboBoxSearch.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
|
||||
this.comboBoxSearch.DisplayMember = "Add";
|
||||
this.comboBoxSearch.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.comboBoxSearch.FormattingEnabled = true;
|
||||
this.comboBoxSearch.Location = new System.Drawing.Point(961, 443);
|
||||
this.comboBoxSearch.Name = "comboBoxSearch";
|
||||
this.comboBoxSearch.Size = new System.Drawing.Size(251, 24);
|
||||
this.comboBoxSearch.TabIndex = 21;
|
||||
this.comboBoxSearch.SelectedIndexChanged += new System.EventHandler(this.comboBoxSearch_SelectedIndexChanged);
|
||||
this.comboBoxSearch.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.ComboBoxSearch_KeyPress);
|
||||
//
|
||||
// labelSearch
|
||||
//
|
||||
this.labelSearch.AutoSize = true;
|
||||
this.labelSearch.BackColor = System.Drawing.Color.Cornsilk;
|
||||
this.labelSearch.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.labelSearch.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.labelSearch.Location = new System.Drawing.Point(807, 447);
|
||||
this.labelSearch.Name = "labelSearch";
|
||||
this.labelSearch.Size = new System.Drawing.Size(148, 20);
|
||||
this.labelSearch.TabIndex = 22;
|
||||
this.labelSearch.Text = "Поиск элемента";
|
||||
//
|
||||
// checkBoxSearchState
|
||||
//
|
||||
this.checkBoxSearchState.AutoSize = true;
|
||||
this.checkBoxSearchState.Font = new System.Drawing.Font("Mongolian Baiti", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxSearchState.Location = new System.Drawing.Point(852, 83);
|
||||
this.checkBoxSearchState.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.checkBoxSearchState.Name = "checkBoxSearchState";
|
||||
this.checkBoxSearchState.Size = new System.Drawing.Size(161, 24);
|
||||
this.checkBoxSearchState.TabIndex = 23;
|
||||
this.checkBoxSearchState.Text = "Алгоритм Дейкстры";
|
||||
this.checkBoxSearchState.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// buttonSearchEquipment
|
||||
//
|
||||
this.buttonSearchEquipment.BackColor = System.Drawing.Color.Orange;
|
||||
this.buttonSearchEquipment.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
|
||||
this.buttonSearchEquipment.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.buttonSearchEquipment.FlatAppearance.BorderColor = System.Drawing.Color.Red;
|
||||
this.buttonSearchEquipment.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Black;
|
||||
this.buttonSearchEquipment.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Gray;
|
||||
this.buttonSearchEquipment.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.buttonSearchEquipment.ForeColor = System.Drawing.Color.Black;
|
||||
this.buttonSearchEquipment.Location = new System.Drawing.Point(1218, 444);
|
||||
this.buttonSearchEquipment.Name = "buttonSearchEquipment";
|
||||
this.buttonSearchEquipment.Size = new System.Drawing.Size(64, 23);
|
||||
this.buttonSearchEquipment.TabIndex = 24;
|
||||
this.buttonSearchEquipment.Text = "Поиск";
|
||||
this.buttonSearchEquipment.UseVisualStyleBackColor = false;
|
||||
this.buttonSearchEquipment.Click += new System.EventHandler(this.ButtonSearchEquipment_Click);
|
||||
//
|
||||
// FreelancerCompanionDvurechensky
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.Cornsilk;
|
||||
this.ClientSize = new System.Drawing.Size(1294, 800);
|
||||
this.Controls.Add(this.buttonSearchEquipment);
|
||||
this.Controls.Add(this.checkBoxSearchState);
|
||||
this.Controls.Add(this.labelSearch);
|
||||
this.Controls.Add(this.comboBoxSearch);
|
||||
this.Controls.Add(this.buttonCloseMap);
|
||||
this.Controls.Add(this.checkBoxRusNames);
|
||||
this.Controls.Add(this.comboBoxRoadLast);
|
||||
this.Controls.Add(this.comboBoxRoadFirst);
|
||||
this.Controls.Add(this.buttonSetRoad);
|
||||
this.Controls.Add(this.but_reload);
|
||||
this.Controls.Add(this.but_generate);
|
||||
this.Controls.Add(this.wpfHost);
|
||||
this.Controls.Add(this.textBoxZ);
|
||||
this.Controls.Add(this.textBoxY);
|
||||
this.Controls.Add(this.textBoxX);
|
||||
this.Controls.Add(this.checkBoxHoll);
|
||||
this.Controls.Add(this.checkBoxAll);
|
||||
this.Controls.Add(this.checkBoxContainers);
|
||||
this.Controls.Add(this.checkBoxBases);
|
||||
this.Controls.Add(this.flowLayoutPanelNames);
|
||||
this.Controls.Add(this.LoggerRichTextBox);
|
||||
this.Controls.Add(this.labelSystemss);
|
||||
this.Controls.Add(this.comboBoxSystems);
|
||||
this.Controls.Add(this.Map);
|
||||
this.MaximizeBox = false;
|
||||
this.MaximumSize = new System.Drawing.Size(1509, 1032);
|
||||
this.MinimizeBox = false;
|
||||
this.MinimumSize = new System.Drawing.Size(1310, 838);
|
||||
this.Name = "FreelancerCompanionDvurechensky";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "FLCompanion by Dvurechensky";
|
||||
((System.ComponentModel.ISupportInitialize)(this.Map)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.PictureBox Map;
|
||||
private System.Windows.Forms.ComboBox comboBoxSystems;
|
||||
private System.Windows.Forms.Label labelSystemss;
|
||||
private System.Windows.Forms.RichTextBox LoggerRichTextBox;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanelNames;
|
||||
private System.Windows.Forms.CheckBox checkBoxBases;
|
||||
private System.Windows.Forms.CheckBox checkBoxContainers;
|
||||
private System.Windows.Forms.CheckBox checkBoxAll;
|
||||
private System.Windows.Forms.CheckBox checkBoxHoll;
|
||||
private System.Windows.Forms.TextBox textBoxX;
|
||||
private System.Windows.Forms.TextBox textBoxY;
|
||||
private System.Windows.Forms.TextBox textBoxZ;
|
||||
private System.Windows.Forms.Integration.ElementHost wpfHost;
|
||||
private System.Windows.Forms.Button but_generate;
|
||||
private System.Windows.Forms.Button but_reload;
|
||||
private System.Windows.Forms.Button buttonSetRoad;
|
||||
private System.Windows.Forms.ComboBox comboBoxRoadFirst;
|
||||
private System.Windows.Forms.ComboBox comboBoxRoadLast;
|
||||
private System.Windows.Forms.CheckBox checkBoxRusNames;
|
||||
private System.Windows.Forms.Button buttonCloseMap;
|
||||
private System.Windows.Forms.ComboBox comboBoxSearch;
|
||||
private System.Windows.Forms.Label labelSearch;
|
||||
private System.Windows.Forms.CheckBox checkBoxSearchState;
|
||||
private System.Windows.Forms.Button buttonSearchEquipment;
|
||||
}
|
||||
}
|
||||
|
969
FLCompanionByDvurechensky/Form1.cs
Normal file
969
FLCompanionByDvurechensky/Form1.cs
Normal file
@ -0,0 +1,969 @@
|
||||
using FLCompanionByDvurechensky.Data;
|
||||
using FLCompanionByDvurechensky.Services;
|
||||
using GraphX.Common.Enums;
|
||||
using GraphX.Controls.Models;
|
||||
using GraphX.Controls;
|
||||
using GraphX.Logic.Algorithms.OverlapRemoval;
|
||||
using GraphX.Logic.Models;
|
||||
using QuickGraph;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using WindowsFormsProject;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace FLCompanionByDvurechensky
|
||||
{
|
||||
/// <summary>
|
||||
/// Главный класс
|
||||
/// </summary>
|
||||
public partial class FreelancerCompanionDvurechensky : Form
|
||||
{
|
||||
public LogService LogService { get; set; }
|
||||
private DrawService DrawService { get; set; }
|
||||
private SystemService SystemService { get; set; }
|
||||
private List<ObjectSystem> ObjectPoints { get; set; }
|
||||
private Bitmap ImageMap { get; set; }
|
||||
private double KeyResize { get; set; }
|
||||
private double KeyOverSize { get; set; }
|
||||
private string CurrentSystem { get; set; }
|
||||
private ZoomControl Zoomctrl { get; set; }
|
||||
private GraphAreaExample GArea { get; set; }
|
||||
private GXLogicCore<DataVertex, DataEdge, BidirectionalGraph<DataVertex, DataEdge>> gXLogic { get; set; }
|
||||
private string[] VerticleRoad { get; set; }
|
||||
private string[] GererateRoads { get; set; }
|
||||
|
||||
public FreelancerCompanionDvurechensky()
|
||||
{
|
||||
//строительство формы
|
||||
InitializeComponent();
|
||||
|
||||
//старт сервиса логирования системы
|
||||
LogService = new LogService(LoggerRichTextBox);
|
||||
|
||||
//инициализация приближения и отдаления карты колесом мыши
|
||||
Map.MouseWheel += Map_MouseWheel;
|
||||
|
||||
//ожидание открытия
|
||||
this.Shown += FreelancerCompanionDvurechensky_Show;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Событие после первого отображения формы
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void FreelancerCompanionDvurechensky_Show(object sender, EventArgs e)
|
||||
{
|
||||
//загрузка данных
|
||||
InitializeSystems();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Доп. операции над картой колёсиком мыши (приближение/отдаление)
|
||||
/// </summary>
|
||||
/// <param name="sender">#</param>
|
||||
/// <param name="e">Мышь</param>
|
||||
private void Map_MouseWheel(object sender, MouseEventArgs e)
|
||||
{
|
||||
if(e.Delta > 0)
|
||||
{
|
||||
Map.Location = new Point(Map.Location.X - 10, Map.Location.Y - 10);
|
||||
Map.Width += 10;
|
||||
Map.Height += 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
Map.Location = new Point(Map.Location.X + 10, Map.Location.Y + 10);
|
||||
Map.Width -= 10;
|
||||
Map.Height -= 10;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Загрузка данных систем
|
||||
/// </summary>
|
||||
private void InitializeSystems()
|
||||
{
|
||||
checkBoxRusNames.Checked = true;
|
||||
SystemService = new SystemService(isRussian: checkBoxRusNames.Checked, logService: LogService);
|
||||
DrawService = new DrawService(5, 3);
|
||||
SystemService.GetInfo(comboBoxSystems, comboBoxRoadFirst, comboBoxRoadLast, comboBoxSearch, LogService);
|
||||
labelSystemss.Text = comboBoxSystems.Items.Count.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Отрисовка первоначального вида карты
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void Map_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
int w = Map.ClientSize.Width / 2;
|
||||
int h = Map.ClientSize.Height / 2;
|
||||
//Смещение начала координат в центр PictureBox
|
||||
e.Graphics.TranslateTransform(w, h);
|
||||
}
|
||||
|
||||
//первая координата это X отрицательно влево - положительно вправо
|
||||
//вторая коордианат это Y отрицательно вверх - положительно вниз
|
||||
//третья координата это Z отрицательно вниз - положительно вверх
|
||||
private void comboBoxSystems_SelectedIndexChanged(object sender, System.EventArgs e)
|
||||
{
|
||||
var comboBox = (ComboBox)sender;
|
||||
Map.Location = new Point(0, 0);
|
||||
Map.Width = 800;
|
||||
Map.Height = 800;
|
||||
flowLayoutPanelNames.Controls.Clear();
|
||||
ObjectPoints = new List<ObjectSystem>();
|
||||
CurrentSystem = SystemService.SystemsID[comboBox.SelectedIndex];
|
||||
KeyResize = (double)400 / SystemService.UniverseSystemsData[CurrentSystem].Radius;
|
||||
ImageMap = new Bitmap(Map.Width, Map.Height);
|
||||
Map.Image = ImageMap;
|
||||
checkBoxContainers.Checked = false;
|
||||
checkBoxBases.Checked = false;
|
||||
|
||||
var listMaxTmp = new List<int>();
|
||||
var radius = SystemService.UniverseSystemsData[CurrentSystem].Radius;
|
||||
|
||||
foreach (var bases in SystemService.UniverseSystemsData[CurrentSystem].Objects.FindAll((objectEl) => !objectEl.ID.ToLower().Contains("zone_") && !objectEl.ID.ToLower().Contains("_sun")))
|
||||
{
|
||||
listMaxTmp.Add(Math.Abs(bases.Pos[0]));
|
||||
listMaxTmp.Add(Math.Abs(bases.Pos[1]));
|
||||
listMaxTmp.Add(Math.Abs(bases.Pos[2]));
|
||||
}
|
||||
|
||||
var maxCoordSystem = listMaxTmp.Max();
|
||||
if (maxCoordSystem > radius)
|
||||
{
|
||||
KeyOverSize = Math.Round((double)maxCoordSystem / radius, 5);
|
||||
KeyResize /= KeyOverSize;
|
||||
KeyResize = Math.Round(KeyResize, 5);
|
||||
}
|
||||
else KeyOverSize = 0;
|
||||
|
||||
RepaintAxis();
|
||||
LogService.LogEvent($"Open [{comboBox.SelectedIndex + 1}] {comboBox.Text}");
|
||||
}
|
||||
|
||||
private void RepaintAxis()
|
||||
{
|
||||
var gr = Graphics.FromImage(Map.Image);
|
||||
ClearMap(gr);
|
||||
//отрисовка осей
|
||||
int w = Map.ClientSize.Width / 2;
|
||||
int h = Map.ClientSize.Height / 2;
|
||||
//Смещение начала координат в центр PictureBox
|
||||
gr.TranslateTransform(w, h);
|
||||
int newSizeW = 0;
|
||||
int newSizeH = 0;
|
||||
if (KeyOverSize > 0) newSizeW = (int)Math.Round((double)(w / KeyOverSize), MidpointRounding.AwayFromZero);
|
||||
else newSizeW = w;
|
||||
if (KeyOverSize > 0) newSizeH = (int)Math.Round((double)(double)(h / KeyOverSize), MidpointRounding.AwayFromZero);
|
||||
else newSizeH = h;
|
||||
//X
|
||||
DrawService.DrawXAxis(new Point(-newSizeW, newSizeW), new Point(newSizeW, newSizeW), gr, false);
|
||||
DrawService.DrawXAxis(new Point(-newSizeW, 0), new Point(newSizeW, 0), gr, false);
|
||||
DrawService.DrawXAxis(new Point(-newSizeW, newSizeW - newSizeW / 2), new Point(newSizeW, newSizeW - newSizeW / 2), gr, false);
|
||||
DrawService.DrawXAxis(new Point(-newSizeW, newSizeW - (newSizeW / 2 + newSizeW / 4)), new Point(newSizeW, newSizeW - (newSizeW / 2 + newSizeW / 4)), gr, false);
|
||||
DrawService.DrawXAxis(new Point(-newSizeW, newSizeW - newSizeW / 4), new Point(newSizeW, newSizeW - newSizeW / 4), gr, false);
|
||||
DrawService.DrawXAxis(new Point(-newSizeW, -newSizeW), new Point(newSizeW, -newSizeW), gr, false);
|
||||
DrawService.DrawXAxis(new Point(-newSizeW, -(newSizeW - newSizeW / 2)), new Point(newSizeW, -(newSizeW - newSizeW / 2)), gr, false);
|
||||
DrawService.DrawXAxis(new Point(-newSizeW, -(newSizeW - (newSizeW / 2 + newSizeW / 4))), new Point(newSizeW, -(newSizeW - (newSizeW / 2 + newSizeW / 4))), gr, false);
|
||||
DrawService.DrawXAxis(new Point(-newSizeW, -(newSizeW - newSizeW / 4)), new Point(newSizeW, -(newSizeW - newSizeW / 4)), gr, false);
|
||||
//Y
|
||||
DrawService.DrawYAxis(new Point(-newSizeH, newSizeH), new Point(-newSizeH, -newSizeH), gr, false);
|
||||
DrawService.DrawYAxis(new Point(0, newSizeH), new Point(0, -newSizeH), gr, false);
|
||||
DrawService.DrawYAxis(new Point(newSizeW - newSizeW / 2, newSizeH), new Point(newSizeW - newSizeW / 2, -newSizeH), gr, false);
|
||||
DrawService.DrawYAxis(new Point(newSizeW - (newSizeW / 2 + newSizeW / 4), newSizeH), new Point(newSizeW - (newSizeW / 2 + newSizeW / 4), -newSizeH), gr, false);
|
||||
DrawService.DrawYAxis(new Point(newSizeW - newSizeW / 4, newSizeH), new Point(newSizeW - newSizeW / 4, -newSizeH), gr, false);
|
||||
DrawService.DrawYAxis(new Point(newSizeH, newSizeH), new Point(newSizeH, -newSizeH), gr, false);
|
||||
DrawService.DrawYAxis(new Point(-(newSizeW - newSizeW / 2), newSizeH), new Point(-(newSizeW - newSizeW / 2), -newSizeH), gr, false);
|
||||
DrawService.DrawYAxis(new Point(-(newSizeW - (newSizeW / 2 + newSizeW / 4)), newSizeH), new Point(-(newSizeW - (newSizeW / 2 + newSizeW / 4)), -newSizeH), gr, false);
|
||||
DrawService.DrawYAxis(new Point(-(newSizeW - newSizeW / 4), newSizeH), new Point(-(newSizeW - newSizeW / 4), -newSizeH), gr, false);
|
||||
|
||||
checkBoxAll.Checked = false;
|
||||
checkBoxBases.Checked = false;
|
||||
checkBoxContainers.Checked = false;
|
||||
checkBoxHoll.Checked = false;
|
||||
}
|
||||
|
||||
private void ClearMap(Graphics graphics)
|
||||
{
|
||||
DrawService.DrawPoint(-Map.Width, -Map.Height, Map.Width, Map.Height, graphics, Color.White, Map.Width * 2, Map.Height * 2);
|
||||
}
|
||||
|
||||
private void checkBoxBases_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
var checkBoxBases = (CheckBox)sender;
|
||||
using (Graphics gr = Graphics.FromImage(ImageMap))
|
||||
{
|
||||
var counter = 0;
|
||||
foreach (var baseID in SystemService.UniverseSystemsData[CurrentSystem].Objects.FindAll((baseId) => baseId.BaseID != null).ToArray())
|
||||
{
|
||||
int x = (int)Math.Round(KeyResize * baseID.Pos[0], MidpointRounding.AwayFromZero);
|
||||
int y = (int)Math.Round(KeyResize * baseID.Pos[2], MidpointRounding.AwayFromZero);
|
||||
int[] mapPos = new int[3];
|
||||
mapPos[0] = x;
|
||||
mapPos[1] = y;
|
||||
mapPos[2] = baseID.Pos[1];
|
||||
baseID.MapPos = mapPos;
|
||||
if (!ObjectPoints.Contains(baseID))
|
||||
ObjectPoints.Add(baseID);
|
||||
|
||||
//рисую или стираю точки на карте
|
||||
if (checkBoxBases.Checked == true)
|
||||
{
|
||||
counter++;
|
||||
//Формирую вывод UI
|
||||
var button = new Button();
|
||||
button.Width = 231;
|
||||
button.Height = 30;
|
||||
var tooltip = new ToolTip();
|
||||
tooltip.SetToolTip(button, $"Z: [{baseID.Pos[1]}] X: [{baseID.Pos[0]}] Y: [{baseID.Pos[2]}]\n" + ((baseID.Archetype != null) ? baseID.Archetype : string.Empty));
|
||||
button.MouseEnter += Base_MouseEnter;
|
||||
button.MouseLeave += Base_MouseLeave;
|
||||
button.Click += OpenPos_Click;
|
||||
button.Name = baseID.BaseID;
|
||||
var nameTmp = baseID.BaseID.ToLower();
|
||||
button.Text = (!string.IsNullOrEmpty(SystemService.UniverseBasesData[nameTmp].Name)) ? "[" + counter + "]" + SystemService.UniverseBasesData[nameTmp].Name : "[" + counter + "]" + baseID.ID;
|
||||
flowLayoutPanelNames.Controls.Add(button);
|
||||
}
|
||||
else flowLayoutPanelNames.Controls.Clear();
|
||||
|
||||
//рисую или стираю точки на карте
|
||||
if (checkBoxBases.Checked == true) DrawService.DrawPoint(x, y, Map.Width, Map.Height, gr, Color.Blue, 6, 6);
|
||||
else RepaintAxis();
|
||||
}
|
||||
Map.Image = ImageMap;
|
||||
}
|
||||
}
|
||||
|
||||
private void OpenPos_Click(object sender, EventArgs e)
|
||||
{
|
||||
var btn = (Button)sender;
|
||||
textBoxX.Text = ObjectPoints.Find((obj) => obj.ID.Contains(btn.Name) || (obj.BaseID != null && obj.BaseID.Contains(btn.Name))).Pos[0].ToString();
|
||||
textBoxY.Text = ObjectPoints.Find((obj) => obj.ID.Contains(btn.Name) || (obj.BaseID != null && obj.BaseID.Contains(btn.Name))).Pos[1].ToString();
|
||||
textBoxZ.Text = ObjectPoints.Find((obj) => obj.ID.Contains(btn.Name) || (obj.BaseID != null && obj.BaseID.Contains(btn.Name))).Pos[2].ToString();
|
||||
}
|
||||
|
||||
|
||||
private void Holl_Click(object sender, EventArgs e)
|
||||
{
|
||||
var btn = (Button)sender;
|
||||
if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
|
||||
{
|
||||
var obj = ObjectPoints.Find((t) => t.ID.Contains(btn.Name));
|
||||
var index = Array.IndexOf(SystemService.ArraySystemsCombobox, obj.GotoID);
|
||||
comboBoxSystems.SelectedIndex = index;
|
||||
}
|
||||
else
|
||||
{
|
||||
textBoxX.Text = ObjectPoints.Find((obj) => obj.ID.Contains(btn.Name) || (obj.BaseID != null && obj.BaseID.Contains(btn.Name))).Pos[0].ToString();
|
||||
textBoxY.Text = ObjectPoints.Find((obj) => obj.ID.Contains(btn.Name) || (obj.BaseID != null && obj.BaseID.Contains(btn.Name))).Pos[1].ToString();
|
||||
textBoxZ.Text = ObjectPoints.Find((obj) => obj.ID.Contains(btn.Name) || (obj.BaseID != null && obj.BaseID.Contains(btn.Name))).Pos[2].ToString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void checkBoxContainers_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
var checkBoxContainers = (CheckBox)sender;
|
||||
|
||||
using (Graphics gr = Graphics.FromImage(ImageMap))
|
||||
{
|
||||
var counter = 0;
|
||||
foreach (var objectElement in SystemService.UniverseSystemsData[CurrentSystem].Objects)
|
||||
{
|
||||
var id = objectElement.ID.ToLower();
|
||||
bool ok = false;
|
||||
if (objectElement.Loadout != null && SystemService.Loadouts.Find((l) => l.Name.Contains(objectElement.Loadout.ToLower())) != null) ok = true;
|
||||
|
||||
if (!ok) continue;
|
||||
|
||||
int x = (int)Math.Round(KeyResize * objectElement.Pos[0], MidpointRounding.AwayFromZero);
|
||||
int y = (int)Math.Round(KeyResize * objectElement.Pos[2], MidpointRounding.AwayFromZero);
|
||||
int[] mapPos = new int[3];
|
||||
mapPos[0] = x;
|
||||
mapPos[1] = y;
|
||||
mapPos[2] = objectElement.Pos[1];
|
||||
objectElement.MapPos = mapPos;
|
||||
if (!ObjectPoints.Contains(objectElement))
|
||||
ObjectPoints.Add(objectElement);
|
||||
|
||||
//рисую или стираю точки на карте
|
||||
if (checkBoxContainers.Checked == true)
|
||||
{
|
||||
counter++;
|
||||
//Формирую вывод UI
|
||||
var button = new Button();
|
||||
button.Width = 231;
|
||||
button.Height = 30;
|
||||
var tooltip = new ToolTip();
|
||||
tooltip.SetToolTip(button, $"Z: [{objectElement.Pos[1]}] X: [{objectElement.Pos[0]}] Y: [{objectElement.Pos[2]}]\n" + ((objectElement.Archetype != null) ? objectElement.Archetype : string.Empty));
|
||||
button.MouseEnter += Container_MouseEnter;
|
||||
button.MouseLeave += Container_MouseLeave;
|
||||
button.Click += OpenPos_Click;
|
||||
button.Name = objectElement.ID;
|
||||
var nameTmp = objectElement.ID.ToLower();
|
||||
button.Text = "[" + counter + "]" + objectElement.ID;
|
||||
flowLayoutPanelNames.Controls.Add(button);
|
||||
}
|
||||
else flowLayoutPanelNames.Controls.Clear();
|
||||
|
||||
//рисую или стираю точки на карте
|
||||
if (checkBoxContainers.Checked == true) DrawService.DrawPoint(x, y, Map.Width, Map.Height, gr, Color.DarkCyan);
|
||||
else RepaintAxis();
|
||||
}
|
||||
Map.Image = ImageMap;
|
||||
}
|
||||
}
|
||||
|
||||
private void checkBoxHoll_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
var checkBoxHoll = (CheckBox)sender;
|
||||
|
||||
using (Graphics gr = Graphics.FromImage(ImageMap))
|
||||
{
|
||||
var counter = 0;
|
||||
foreach (var objectElement in SystemService.UniverseSystemsData[CurrentSystem].Objects.FindAll((objectEl) => (objectEl.GotoID != null)))//objectEl.ID.Contains("_hole") || objectEl.ID.ToLower().Contains(CurrentSystem.ToLower()+"_to")) && !objectEl.ID.Contains("Zone_"))
|
||||
{
|
||||
int x = (int)Math.Round(KeyResize * objectElement.Pos[0], MidpointRounding.AwayFromZero);
|
||||
int y = (int)Math.Round(KeyResize * objectElement.Pos[2], MidpointRounding.AwayFromZero);
|
||||
int[] mapPos = new int[3];
|
||||
mapPos[0] = x;
|
||||
mapPos[1] = y;
|
||||
mapPos[2] = objectElement.Pos[1];
|
||||
objectElement.MapPos = mapPos;
|
||||
if (!ObjectPoints.Contains(objectElement))
|
||||
ObjectPoints.Add(objectElement);
|
||||
|
||||
//рисую или стираю точки на карте
|
||||
if (checkBoxHoll.Checked == true)
|
||||
{
|
||||
counter++;
|
||||
//Формирую вывод UI
|
||||
var button = new Button();
|
||||
button.Width = 231;
|
||||
button.Height = 30;
|
||||
var tooltip = new ToolTip();
|
||||
tooltip.SetToolTip(button, $"Z: [{objectElement.Pos[1]}] X: [{objectElement.Pos[0]}] Y: [{objectElement.Pos[2]}]\n" + ((objectElement.Archetype != null) ? objectElement.Archetype : string.Empty));
|
||||
button.MouseEnter += All_MouseEnter;
|
||||
button.MouseLeave += All_MouseLeave;
|
||||
button.Click += Holl_Click;
|
||||
button.Name = objectElement.ID;
|
||||
var nameTmp = objectElement.ID.ToLower();
|
||||
button.Text = "[" + counter + "]" + (!string.IsNullOrEmpty(objectElement.Goto) ? objectElement.Goto : objectElement.ID);
|
||||
flowLayoutPanelNames.Controls.Add(button);
|
||||
}
|
||||
else flowLayoutPanelNames.Controls.Clear();
|
||||
|
||||
//рисую или стираю точки на карте
|
||||
if (checkBoxHoll.Checked == true) DrawService.DrawPoint(x, y, Map.Width, Map.Height, gr, Color.DarkOrchid);
|
||||
else RepaintAxis();
|
||||
}
|
||||
Map.Image = ImageMap;
|
||||
}
|
||||
}
|
||||
|
||||
private void checkBoxAll_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
var checkBoxAll = (CheckBox)sender;
|
||||
using (Graphics gr = Graphics.FromImage(ImageMap))
|
||||
{
|
||||
var counter = 0;
|
||||
foreach (var objectEl in SystemService.UniverseSystemsData[CurrentSystem].Objects)
|
||||
{
|
||||
int x = (int)Math.Round(KeyResize * objectEl.Pos[0], MidpointRounding.AwayFromZero);
|
||||
int y = (int)Math.Round(KeyResize * objectEl.Pos[2], MidpointRounding.AwayFromZero);
|
||||
int[] mapPos = new int[3];
|
||||
mapPos[0] = x;
|
||||
mapPos[1] = y;
|
||||
mapPos[2] = objectEl.Pos[1];
|
||||
objectEl.MapPos = mapPos;
|
||||
if (!ObjectPoints.Contains(objectEl))
|
||||
ObjectPoints.Add(objectEl);
|
||||
|
||||
//рисую или стираю точки на карте
|
||||
if (checkBoxAll.Checked == true)
|
||||
{
|
||||
//Формирую вывод UI
|
||||
var button = new Button();
|
||||
button.Width = 231;
|
||||
button.Height = 30;
|
||||
var tooltip = new ToolTip();
|
||||
tooltip.SetToolTip(button, $"Z: [{objectEl.Pos[1]}] X: [{objectEl.Pos[0]}] Y: [{objectEl.Pos[2]}]\n" + ((objectEl.Archetype != null) ? objectEl.Archetype : string.Empty));
|
||||
button.MouseEnter += All_MouseEnter;
|
||||
button.MouseLeave += All_MouseLeave;
|
||||
button.Click += OpenPos_Click;
|
||||
button.Name = objectEl.ID;
|
||||
var nameTmp = objectEl.ID.ToLower();
|
||||
button.Text = "[" + counter + "]" + objectEl.ID;
|
||||
flowLayoutPanelNames.Controls.Add(button);
|
||||
}
|
||||
else flowLayoutPanelNames.Controls.Clear();
|
||||
|
||||
//рисую или стираю точки на карте
|
||||
if (checkBoxAll.Checked == true) DrawService.DrawPoint(x, y, Map.Width, Map.Height, gr, Color.DarkOrange);
|
||||
else RepaintAxis();
|
||||
}
|
||||
Map.Image = ImageMap;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void ComboBoxSystems_KeyPress(object sender, KeyPressEventArgs e)
|
||||
{
|
||||
if (e.KeyChar == (char)Keys.Enter)
|
||||
{
|
||||
int index = comboBoxSystems.FindStringExact(comboBoxSystems.Text);
|
||||
comboBoxSystems.SelectedIndex = index;
|
||||
}
|
||||
}
|
||||
|
||||
private async void ComboBoxSearch_KeyPress(object sender, KeyPressEventArgs e)
|
||||
{
|
||||
if (e.KeyChar == (char)13)
|
||||
{
|
||||
await SearchEquipments();
|
||||
}
|
||||
}
|
||||
private async void ButtonSearchEquipment_Click(object sender, EventArgs e)
|
||||
{
|
||||
await SearchEquipments();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Поиск совпадений в списке оборудования
|
||||
/// </summary>
|
||||
private async Task SearchEquipments()
|
||||
{
|
||||
comboBoxSearch.Items.Clear();
|
||||
var searchListEq = new List<Equipment>();
|
||||
searchListEq.AddRange(SystemService.Equipments.FindAll((eq) => (string.IsNullOrEmpty(eq.Name) ? eq.Id.Contains(comboBoxSearch.Text): eq.Name.Contains(comboBoxSearch.Text))));
|
||||
if (searchListEq.Count <= 0) return;
|
||||
var count = (searchListEq.Count <= 1000) ? searchListEq.Count : 1000;
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
var eq = searchListEq[i];
|
||||
var equipmentsData = new ComboBoxItem
|
||||
{
|
||||
Text = (string.IsNullOrEmpty(eq.Name) ? eq.Id : eq.Name),
|
||||
ID = eq.Id
|
||||
};
|
||||
comboBoxSearch.Items.Add(equipmentsData);
|
||||
}
|
||||
comboBoxSearch.DroppedDown = true;
|
||||
}
|
||||
|
||||
private void Base_MouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
var button = (Button)sender;
|
||||
var obj = ObjectPoints.Find((baseEl) => baseEl.BaseID == button.Name);
|
||||
var name = (string.IsNullOrEmpty(obj.NameBase)) ? button.Name : obj.NameBase;
|
||||
//сделать точку обычной
|
||||
using (Graphics gr = Graphics.FromImage(ImageMap))
|
||||
{
|
||||
DrawService.DrawText(new Point(obj.MapPos[0] + 15, obj.MapPos[1] + 15), Map.Width, Map.Height, name, gr, Brushes.White, 15);
|
||||
DrawService.DrawPoint(obj.MapPos[0], obj.MapPos[1], Map.Width, Map.Height, gr, Color.Black, 10, 10);
|
||||
Map.Image = ImageMap;
|
||||
}
|
||||
}
|
||||
|
||||
private void Base_MouseEnter(object sender, EventArgs e)
|
||||
{
|
||||
var button = (Button)sender;
|
||||
var obj = ObjectPoints.Find((baseEl) => baseEl.BaseID == button.Name);
|
||||
var name = (string.IsNullOrEmpty(obj.NameBase)) ? button.Name : obj.NameBase;
|
||||
//сделать точку крупнее
|
||||
using (Graphics gr = Graphics.FromImage(ImageMap))
|
||||
{
|
||||
DrawService.DrawPoint(obj.MapPos[0], obj.MapPos[1], Map.Width, Map.Height, gr, Color.Red, 10, 10);
|
||||
DrawService.DrawText(new Point(obj.MapPos[0] + 15, obj.MapPos[1] + 15), Map.Width, Map.Height, name, gr, Brushes.Black, 15);
|
||||
Map.Image = ImageMap;
|
||||
}
|
||||
}
|
||||
|
||||
private void Container_MouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
var button = (Button)sender;
|
||||
var obj = ObjectPoints.Find((baseEl) => baseEl.ID == button.Name);
|
||||
var name = button.Name;
|
||||
//сделать точку обычной
|
||||
using (Graphics gr = Graphics.FromImage(ImageMap))
|
||||
{
|
||||
DrawService.DrawText(new Point(obj.MapPos[0] + 15, obj.MapPos[1] + 15), Map.Width, Map.Height, name, gr, Brushes.White, 15);
|
||||
DrawService.DrawPoint(obj.MapPos[0], obj.MapPos[1], Map.Width, Map.Height, gr, Color.Red);
|
||||
Map.Image = ImageMap;
|
||||
}
|
||||
}
|
||||
|
||||
private void Container_MouseEnter(object sender, EventArgs e)
|
||||
{
|
||||
var button = (Button)sender;
|
||||
var obj = ObjectPoints.Find((objectEl) => objectEl.ID == button.Name);
|
||||
var name = button.Name;
|
||||
//сделать точку крупнее
|
||||
using (Graphics gr = Graphics.FromImage(ImageMap))
|
||||
{
|
||||
DrawService.DrawPoint(obj.MapPos[0], obj.MapPos[1], Map.Width, Map.Height, gr, Color.LightGreen);
|
||||
DrawService.DrawText(new Point(obj.MapPos[0] + 15, obj.MapPos[1] + 15), Map.Width, Map.Height, name, gr, Brushes.Black, 15);
|
||||
Map.Image = ImageMap;
|
||||
}
|
||||
}
|
||||
|
||||
private void All_MouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
var button = (Button)sender;
|
||||
var obj = ObjectPoints.Find((baseEl) => baseEl.ID == button.Name);
|
||||
var name = button.Name;
|
||||
if (obj == null) return;
|
||||
//сделать точку обычной
|
||||
using (Graphics gr = Graphics.FromImage(ImageMap))
|
||||
{
|
||||
DrawService.DrawText(new Point(obj.MapPos[0] + 15, obj.MapPos[1] + 15), Map.Width, Map.Height, name, gr, Brushes.White, 15);
|
||||
DrawService.DrawPoint(obj.MapPos[0], obj.MapPos[1], Map.Width, Map.Height, gr, Color.Brown);
|
||||
Map.Image = ImageMap;
|
||||
}
|
||||
}
|
||||
|
||||
private void All_MouseEnter(object sender, EventArgs e)
|
||||
{
|
||||
var button = (Button)sender;
|
||||
var obj = ObjectPoints.Find((objectEl) => objectEl.ID == button.Name);
|
||||
var name = button.Name;
|
||||
//сделать точку крупнее
|
||||
using (Graphics gr = Graphics.FromImage(ImageMap))
|
||||
{
|
||||
DrawService.DrawPoint(obj.MapPos[0], obj.MapPos[1], Map.Width, Map.Height, gr, Color.LightGreen);
|
||||
DrawService.DrawText(new Point(obj.MapPos[0] + 15, obj.MapPos[1] + 15), Map.Width, Map.Height, name, gr, Brushes.Black, 15);
|
||||
Map.Image = ImageMap;
|
||||
}
|
||||
}
|
||||
private void comboBoxSearch_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
var combo = (ComboBox)sender;
|
||||
|
||||
LogService.LogEvent("Ищем элемент " + comboBoxSearch.Text + "(" + (combo.SelectedItem as ComboBoxItem).ID + ")" + "...");
|
||||
LogService.LogEvent("------------------");
|
||||
LogService.LogEvent("----Астероиды----");
|
||||
|
||||
//Ищу совпадения в астероидах
|
||||
foreach (var ast in SystemService.SysAsteroids)
|
||||
{
|
||||
var val = ast.Value.FindAll((zone) => zone.LootId.Contains((combo.SelectedItem as ComboBoxItem).ID));
|
||||
bool ok = false;
|
||||
string zoneName = string.Empty;
|
||||
foreach (var v in val)
|
||||
{
|
||||
if (v.ZoneName != null && v.ZoneName.Length > 0)
|
||||
{
|
||||
zoneName = zoneName.ToLower();
|
||||
ok = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (val != null && val.Count > 0 && ok)
|
||||
{
|
||||
foreach (var sys in SystemService.UniverseSystemsData)
|
||||
{
|
||||
var obj = sys.Value.Zones?.FindAll((el) => el.ID.ToLower().Contains(zoneName));
|
||||
if (obj != null && obj.Count > 0)
|
||||
{
|
||||
LogService.LogEvent(SystemService.SystemNamesID[ast.Key.ToLower()] + " - " +
|
||||
" POS: X: " + obj[0].Pos[0] + " Y: " + obj[0].Pos[1] + " Z: " + obj[0].Pos[2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (val != null && val.Count > 0 && !ok) //EXCLUSION ZONE в ASTEROIDS
|
||||
{
|
||||
LogService.LogEvent(SystemService.SystemNamesID[ast.Key.ToLower()] + " - " + val[0].LootId);
|
||||
}
|
||||
}
|
||||
|
||||
LogService.LogEvent("------------------");
|
||||
LogService.LogEvent("----контейнеры----");
|
||||
|
||||
//Ищу совпадения в контейнерах
|
||||
foreach (var ast in SystemService.Loadouts)
|
||||
{
|
||||
var val = ast.Cargo.Find((zone) => zone.Name.Contains((combo.SelectedItem as ComboBoxItem).ID.ToLower()));
|
||||
if (val != null)
|
||||
{
|
||||
foreach (var sys in SystemService.UniverseSystemsData)
|
||||
{
|
||||
var obj = sys.Value.Objects?.FindAll((el) => el.Loadout != null && el.Loadout.ToLower().Contains(ast.Name));
|
||||
if (obj != null && obj.Count > 0)
|
||||
{
|
||||
LogService.LogEvent("SYSTEM: " + SystemService.SystemNamesID[sys.Key.ToLower()] + " L: " + ast.Name + " - " + val.Name + " / " + val.Count);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LogService.LogEvent("------------------");
|
||||
}
|
||||
|
||||
#region GraphMap
|
||||
private System.Windows.UIElement GenerateWpfVisuals(bool Custom = false)
|
||||
{
|
||||
Zoomctrl = new ZoomControl();
|
||||
ZoomControl.SetViewFinderVisibility(Zoomctrl, System.Windows.Visibility.Visible);
|
||||
gXLogic = new GXLogicCore<DataVertex, DataEdge, BidirectionalGraph<DataVertex, DataEdge>>();
|
||||
GArea = new GraphAreaExample
|
||||
{
|
||||
LogicCore = gXLogic,
|
||||
EdgeLabelFactory = new DefaultEdgelabelFactory()
|
||||
};
|
||||
GArea.ShowAllEdgesLabels(true);
|
||||
gXLogic.Graph = (!Custom) ? GenerateGraph() : GenerateRoad();
|
||||
gXLogic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.LinLog;//KK - неплохо
|
||||
gXLogic.DefaultLayoutAlgorithmParams = gXLogic.AlgorithmFactory.CreateLayoutParameters(LayoutAlgorithmTypeEnum.LinLog);
|
||||
gXLogic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA;
|
||||
gXLogic.DefaultOverlapRemovalAlgorithmParams = gXLogic.AlgorithmFactory.CreateOverlapRemovalParameters(OverlapRemovalAlgorithmTypeEnum.OneWayFSA);
|
||||
((OverlapRemovalParameters)gXLogic.DefaultOverlapRemovalAlgorithmParams).HorizontalGap = 100;
|
||||
((OverlapRemovalParameters)gXLogic.DefaultOverlapRemovalAlgorithmParams).VerticalGap = 100;
|
||||
gXLogic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.None;
|
||||
gXLogic.AsyncAlgorithmCompute = false;
|
||||
Zoomctrl.Content = GArea;
|
||||
GArea.RelayoutFinished += gArea_RelayoutFinished;
|
||||
var myResourceDictionary = new System.Windows.ResourceDictionary { Source = new Uri("Templates\\template.xaml", UriKind.Relative) };
|
||||
Zoomctrl.Resources.MergedDictionaries.Add(myResourceDictionary);
|
||||
return Zoomctrl;
|
||||
}
|
||||
|
||||
private void gArea_RelayoutFinished(object sender, EventArgs e)
|
||||
{
|
||||
Zoomctrl.ZoomToFill();
|
||||
}
|
||||
|
||||
private GraphExample GenerateGraph()
|
||||
{
|
||||
//загрузка систем
|
||||
var dataGraph = new GraphExample();
|
||||
for(int i = 0; i < SystemService.ArraySystemsCombobox.Length; i++)
|
||||
{
|
||||
var dataVertex = new DataVertex();
|
||||
if (checkBoxRusNames.Checked == true)
|
||||
{
|
||||
var rusName = SystemService.UniverseSystemsData[SystemService.ArraySystemsCombobox[i]].Name;
|
||||
//dataVertex = new DataVertex("[" + i + "] " + rusName);
|
||||
dataVertex = new DataVertex(rusName);
|
||||
}
|
||||
else dataVertex = new DataVertex("[" + i + "] " + SystemService.ArraySystemsCombobox[i]);
|
||||
dataGraph.AddVertex(dataVertex);
|
||||
}
|
||||
var vlist = dataGraph.Vertices.ToList();
|
||||
|
||||
//создание связей
|
||||
if(SystemService.HollRoads != null)
|
||||
{
|
||||
foreach(var road in SystemService.HollRoads)
|
||||
{
|
||||
var roadFirstSys = road.Substring(0, road.IndexOf('='));
|
||||
var roadLastSys = road.Substring((road.IndexOf('=') + 1));
|
||||
var index_1 = Array.IndexOf(SystemService.ArraySystemsCombobox, roadFirstSys);
|
||||
var index_2 = Array.IndexOf(SystemService.ArraySystemsCombobox, roadLastSys);
|
||||
if (index_1 == -1 || index_2 == -1) continue;
|
||||
var dataEdge = new DataEdge(vlist[index_1], vlist[index_2]) { Text = string.Format("{0} -> {1}", vlist[index_1], vlist[index_2]) };
|
||||
dataGraph.AddEdge(dataEdge);
|
||||
}
|
||||
}
|
||||
|
||||
return dataGraph;
|
||||
}
|
||||
|
||||
private GraphExample GenerateRoad()
|
||||
{
|
||||
//загрузка систем
|
||||
var dataGraph = new GraphExample();
|
||||
LogService.LogEvent($"Создаю путь от {comboBoxRoadFirst.Text} до {comboBoxRoadLast.Text}");
|
||||
|
||||
|
||||
for (int i = 0; i < VerticleRoad.Length; i++)
|
||||
{
|
||||
var dataVertex = new DataVertex();
|
||||
dataVertex = new DataVertex(VerticleRoad[i]);
|
||||
dataGraph.AddVertex(dataVertex);
|
||||
if(i > 0)
|
||||
{
|
||||
var dataEdge = new DataEdge(dataGraph.Vertices.ToList()[i-1], dataGraph.Vertices.ToList()[i]) { Text = string.Format("{0} -> {1}", dataGraph.Vertices.ToList()[i-1], dataGraph.Vertices.ToList()[i]) };
|
||||
dataGraph.AddEdge(dataEdge);
|
||||
}
|
||||
}
|
||||
var vlist = dataGraph.Vertices.ToList();
|
||||
return dataGraph;
|
||||
}
|
||||
|
||||
private void but_generate_Click(object sender, EventArgs e)
|
||||
{
|
||||
wpfHost.Visible = true;
|
||||
wpfHost.Child = GenerateWpfVisuals(Custom: false);
|
||||
GArea.GenerateGraph(true);
|
||||
GArea.SetVerticesDrag(true, true);
|
||||
Zoomctrl.ZoomToFill();
|
||||
buttonSetRoad.Enabled = true;
|
||||
}
|
||||
|
||||
private void but_reload_Click(object sender, EventArgs e)
|
||||
{
|
||||
wpfHost.Visible = true;
|
||||
GArea.RelayoutGraph();
|
||||
}
|
||||
|
||||
private void ButtonSetRoad_Click(object sender, EventArgs e)
|
||||
{
|
||||
var id1 = string.Empty;
|
||||
var id2 = string.Empty;
|
||||
if (!checkBoxRusNames.Checked)
|
||||
{ // определяю английское с русского наименования
|
||||
id1 = SystemService.SystemsNameId[comboBoxRoadFirst.Text];
|
||||
id2 = SystemService.SystemsNameId[comboBoxRoadLast.Text];
|
||||
}
|
||||
else
|
||||
{
|
||||
id1 = comboBoxRoadFirst.Text;
|
||||
id2 = comboBoxRoadLast.Text;
|
||||
}
|
||||
|
||||
var pth = string.Empty;
|
||||
|
||||
if (checkBoxSearchState.Checked)
|
||||
{
|
||||
//чистим от однонаправленных связей
|
||||
var edges = SystemService.HollRoads.FindAll((road) =>
|
||||
{
|
||||
var road_1 = road.Substring(0, road.IndexOf('=')); //[Оптимум] какой-то Оптимум=Неизвестный сектор
|
||||
var road_2 = road.Substring(road.IndexOf('=') + 1); //[Неизвестный сектор] какой-то Оптимум=Неизвестный сектор
|
||||
if (SystemService.HollRoads.Contains(road_2 + '=' + road_1)) return true; //Неизвестный сектор=Оптимум
|
||||
return false;
|
||||
});
|
||||
|
||||
var g = new Graph();
|
||||
gXLogic.Graph = GenerateGraph();
|
||||
foreach (var vertice in gXLogic.Graph.Vertices)
|
||||
g.AddVertex(vertice.Text);
|
||||
foreach (var edge in edges)
|
||||
{
|
||||
var roadFirstSys = SystemService.SystemNamesID[edge.Substring(0, edge.IndexOf('='))];
|
||||
var roadLastSys = SystemService.SystemNamesID[edge.Substring(edge.IndexOf('=') + 1)];
|
||||
|
||||
g.AddEdge(roadFirstSys, roadLastSys, 1);
|
||||
}
|
||||
|
||||
var dijkstra = new Dijkstra(g);
|
||||
pth = dijkstra.FindShortestPath(id1, id2);
|
||||
LogService.LogEvent(pth);
|
||||
}
|
||||
else
|
||||
{
|
||||
GraphC g = new GraphC();
|
||||
for (int i = 0; i < comboBoxSystems.Items.Count; i++)
|
||||
{
|
||||
Keyss.Add(i);
|
||||
g.AddKey(i);
|
||||
}
|
||||
|
||||
SystemService.HollRoads.Distinct();
|
||||
|
||||
foreach(var road in SystemService.HollRoads)
|
||||
{
|
||||
var roadFirstSys = road.Substring(0, road.IndexOf('='));
|
||||
var roadLastSys = road.Substring((road.IndexOf('=') + 1));
|
||||
var index_1 = Array.IndexOf(SystemService.ArraySystemsCombobox, roadFirstSys);
|
||||
var index_2 = Array.IndexOf(SystemService.ArraySystemsCombobox, roadLastSys);
|
||||
string rs = index_1 + "-" + index_2;
|
||||
Edge.Add(rs);
|
||||
g.AddEdge(rs);
|
||||
}
|
||||
Paths.Clear();
|
||||
FindPath(g, Array.IndexOf(SystemService.ArraySystemsCombobox, (comboBoxRoadLast.SelectedItem as ComboBoxItem).ID));
|
||||
|
||||
var pathsResult = Paths.FindAll((res) =>
|
||||
{
|
||||
res = res.Trim();
|
||||
if (res.IndexOf(' ') == -1) return false;
|
||||
if (res.LastIndexOf(' ') == -1) return false;
|
||||
|
||||
var start = res.Substring(0, res.IndexOf(' '));
|
||||
int INDEXStop = res.LastIndexOf(' ');
|
||||
var stop = res.Substring(INDEXStop);
|
||||
if (!string.IsNullOrEmpty(start) && !string.IsNullOrEmpty(stop) && int.Parse(start.Trim()) == Array.IndexOf(SystemService.ArraySystemsCombobox, (comboBoxRoadFirst.SelectedItem as ComboBoxItem).ID)
|
||||
&& int.Parse(stop.Trim()) == Array.IndexOf(SystemService.ArraySystemsCombobox, (comboBoxRoadLast.SelectedItem as ComboBoxItem).ID))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
});
|
||||
foreach(var path in pathsResult)
|
||||
{
|
||||
var str = path.Trim();
|
||||
string[] resM = str.Split(' ');
|
||||
foreach(string s in resM)
|
||||
{
|
||||
LogService.LogEvent(SystemService.SystemsID[int.Parse(s)]);
|
||||
pth += SystemService.SystemNamesID[SystemService.SystemsID[int.Parse(s.Trim())]] + "=";
|
||||
}
|
||||
LogService.LogEvent(str);
|
||||
}
|
||||
}
|
||||
|
||||
VerticleRoad = pth.Split('=');
|
||||
|
||||
bool startNameState = false;
|
||||
string startName = string.Empty;
|
||||
string stopName = string.Empty;
|
||||
GererateRoads = new string[VerticleRoad.Length - 1];
|
||||
int counter = 0;
|
||||
for (int i = 0; i < VerticleRoad.Length; i++)
|
||||
{
|
||||
VerticleRoad[i] = VerticleRoad[i].Trim();
|
||||
if (startNameState)
|
||||
{
|
||||
stopName = VerticleRoad[i].Trim();
|
||||
startNameState = false;
|
||||
var road = startName + "=" + stopName;
|
||||
GererateRoads[counter] = road;
|
||||
counter++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(stopName))
|
||||
{
|
||||
startName = VerticleRoad[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
startName = stopName;
|
||||
stopName = VerticleRoad[i];
|
||||
var road = startName + "=" + stopName;
|
||||
GererateRoads[counter] = road;
|
||||
counter++;
|
||||
startName = VerticleRoad[i];
|
||||
}
|
||||
|
||||
startNameState = true;
|
||||
}
|
||||
}
|
||||
wpfHost.Visible = true;
|
||||
wpfHost.Child = GenerateWpfVisuals(Custom: true);
|
||||
GArea.GenerateGraph(true);
|
||||
GArea.SetVerticesDrag(true, true);
|
||||
Zoomctrl.ZoomToFill();
|
||||
}
|
||||
|
||||
private void buttonCloseMap_Click(object sender, EventArgs e)
|
||||
{
|
||||
wpfHost.Visible = false;
|
||||
}
|
||||
#endregion
|
||||
|
||||
public void FindPath(GraphC gr, int start) //gr - граф, start - номер вершины, от которой нужно найти пути до остальных
|
||||
{
|
||||
marks = new Dictionary<int, bool>();
|
||||
path = new Stack<int>();
|
||||
source = gr;
|
||||
foreach (int i in gr.Keys)
|
||||
marks.Add(i, false);
|
||||
|
||||
DFS(start);
|
||||
}
|
||||
|
||||
public List<int> Keyss = new List<int>();
|
||||
public List<string> Edge = new List<string>();
|
||||
Dictionary<int, bool> marks;
|
||||
Stack<int> path; //<-- это стек
|
||||
GraphC source; //<-- это моя реализация графа, что там внутри - не важно
|
||||
public List<string> Paths = new List<string>();
|
||||
|
||||
//функция поиска
|
||||
public void DFS(int v)
|
||||
{
|
||||
marks[v] = true;
|
||||
path.Push(v); // сохраняем в стек текущую вершину
|
||||
foreach (int i in path) // выводим путь до текущей
|
||||
{
|
||||
Console.Write(i.ToString() + " ");
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
|
||||
foreach (int i in source[v, Keyss, Edge].NodeLinks)
|
||||
if (marks[i] == false)
|
||||
{
|
||||
DFS(i);
|
||||
path.Pop(); // не забываем извлекать уже проверенные вершины
|
||||
}
|
||||
|
||||
string paths = string.Empty;
|
||||
foreach (int i in path) // выводим путь до текущей
|
||||
{
|
||||
paths += i.ToString() + " ";
|
||||
}
|
||||
Paths.Add(paths);
|
||||
}
|
||||
}
|
||||
|
||||
public class GraphC
|
||||
{
|
||||
public List<int> Keys = new List<int>();
|
||||
|
||||
public List<string> Edge = new List<string>();
|
||||
|
||||
public List<int> NodeLinks { get; set; }
|
||||
|
||||
public GraphC()
|
||||
{
|
||||
NodeLinks = new List<int>();
|
||||
}
|
||||
|
||||
public GraphC(int index, List<int> keys, List<string> edge)
|
||||
{
|
||||
Keys.AddRange(keys);
|
||||
Edge.AddRange(edge);
|
||||
|
||||
NodeLinks = new List<int>();
|
||||
|
||||
var Edges = Edge.FindAll((ed) =>
|
||||
{
|
||||
var start = ed.Substring(0, ed.IndexOf('-'));
|
||||
int startVal = int.Parse(start);
|
||||
if (startVal == index)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
});
|
||||
|
||||
foreach (var Edge in Edges)
|
||||
{
|
||||
var stop = int.Parse(Edge.Substring(Edge.IndexOf('-') + 1, Edge.Length - (Edge.IndexOf('-') + 1)));
|
||||
NodeLinks.Add(stop);
|
||||
}
|
||||
|
||||
//Console.WriteLine($"Y verchini {index} svyazey {NodeLinks.Count}");
|
||||
}
|
||||
|
||||
public GraphC this[int index, List<int> keys, List<string> edges]
|
||||
{
|
||||
get
|
||||
{
|
||||
return new GraphC(index, keys, edges);
|
||||
}
|
||||
}
|
||||
|
||||
public void AddKey(int key)
|
||||
{
|
||||
Keys.Add(key);
|
||||
}
|
||||
|
||||
public void AddEdge(string edge)
|
||||
{
|
||||
Edge.Add(edge);
|
||||
}
|
||||
}
|
||||
}
|
241
FLCompanionByDvurechensky/Form1.resx
Normal file
241
FLCompanionByDvurechensky/Form1.resx
Normal file
@ -0,0 +1,241 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="but_generate.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABS
|
||||
CAABFVgAADqXAAAXb9daH5AAAAAJcEhZcwAARBsAAEQbAe2VWxAAAAeUSURBVHhezZt1iK1FGIev127F
|
||||
wC4MMDDWQgUVFbGxMFG4KgaIYhd2tygW2IqKXgsVFVtQsMW4it2tV69xzfX3LPsuc2ff+c58MWddeP45
|
||||
Z76Z+X5n5p03ZscNDg4OMTAw0G9mFpuJi8S14gCxhPDaFqPfAkwv1hFnijfEYMRkcYfYQ8wvvD46pV8C
|
||||
rCiOEc+Jv0T84h5fimvENmJ24fXbmpICsJwPFI+I34X3krm8Jy4WG4mZhDdeI7oWgGW7p7hTsJy9l2nD
|
||||
v+JVcYpYQ4wX3jyy6UKAOcS2AkPGsvUmXoI/xdPiMLGc8ObWk6YCsAw3FpeI94U3wX7yq7hf7CsWEd6c
|
||||
XeoIwHLj71TxmmA5epMZa74Xt4pdxLzCe5cRcgRYXhwhnhEsO2/QukwVL4jrxYXifHG1eEL8KLxnmvCZ
|
||||
uEpsIWYVo94vJcBCYj/xoPhNeJ035RaxsphRxONOJxYVp4uuxDbeFueK9cXImJ4AG4gvhNdJW14U4VhV
|
||||
3Cy8PtrC1mUbD43jCbCVyHVW6vKyCMeq4i7h9dEF14mhcTwBAHeVPfmt8Dpow0RB/7OIeFxOl9UEE/Se
|
||||
bQO//FNigphNDI2ZEsBgPx4iMFhep01hhU0SOEwYqSvF7YLT5Q/hPdMUTgVc6g3FKMcpFiDlZmKwsKQc
|
||||
L78Ib6D/G2y3w8XiwnsnDO74UICdBL8Azg1uZvyAsYI4SWBVvYHHEk4sokkCKO+UAXwDtsHjYmIowHnC
|
||||
OuIIuk/sKLy9CkRoOBsPiK6PrLq8K04TRJ3eXIGj92zxkbDnpoYCnBV8EfK6OFosKeJODf5IbOB4eH2U
|
||||
ADvykNhdzCm8ebEKWA3YGi8inZwjgPGDwDpjTNg/8WBANIg/TpBSylXGR7lUcJJ4cwCM96HiJeH1YdQS
|
||||
wODFnhR7i3lEPDhgbYndEQzhvH7q8qwgv7Cg8MaEdQUnyjfC6yOmkQAhHwqeY3/FkzFIjBwpXhFeH1WQ
|
||||
U7hRbCpIp3n9E47vJh4WfwuvnxStBTDYX+yzKuvLEUveACvdK77A7hwrlhFeX0CQdrJ4R3h95NCZACH4
|
||||
+zhPVXH5SoKAh1SXPYeId4sdROrkYRWQSSagmiLCcZtQRACDfXiFYF/GL2LMLXCwyAJXHWELiP0FdsAb
|
||||
qylFBTDYl+xP9in7NX65KnDIyBeUOl77IkAI+xUvkv0bv6xBwQQHDEestINVXIBUWM3+vUDEe52jk6yv
|
||||
90wJiglAkvIEsabYWmC0vHZkaOzlOUq7MGx1KCYA5769mIHjFC/pz4VVfY4b/qyfFBHgJ5Hy1kiuhm35
|
||||
xc2bPGf4sxyoP+CEed/VoYgAHwgMWfjiBi7y88La4ulxFPJdzvi8NEcmorFyCOG/E17bHIoIQFq7qrJL
|
||||
sGRt6wjACbK0iPvD1njtcygiwD8Cby2eqIGxs7RXrgBkoVLR39qibgxgNBaAidP+YEFxIzZu5PfiiRpk
|
||||
ZKz4kSsAOb24H2NV0dRfaCQAZ/t2IpwEdcLQKPEL4+KGbQwSKxyTtMsRgBWFfxD3Y2wvvOdyaCQAlxzi
|
||||
ScB6ghPA2mGp1xJxO6q51iZHANpU5QAuF95zOTQS4CYRT8Kg4hK2ZalzM4Ty9Xxin+HP7PscAYgD3Lqe
|
||||
IONblXChBlm1PRoJQBI0nohB8sObEPG/V/TMEYBnvbwARyrxgvcMtYCjBGE3f+QqvHaNBPhEzCXiCRmP
|
||||
Cu85jxwBgOsx4RiExzcIry3eJX9he1YQhZi4bVIAJna82FVQuv5ZhA9yDSYcIISSWti2ilwBgHiCq3Sk
|
||||
v98a/iyG5b6liOcEl4m4vSsASc+9RPgwZ214E4SUVSohmgp8POoIkAMF1Xg+BjWBuL0rAEtopHgYQNk8
|
||||
LIvdJuJwljOeLWJtetGlAPxw8fEcQlkvfsYVgHg8ldikbBZ2QLV1E0FhYllRt6TdpQD8OKmbpqxW74dx
|
||||
BfhKpFJXqwiOlrijr0WTommXApCDTF2oxHZ4z7gC4Onh1MSdACujy6JolwKkjkt8kNT1PVcAGLlB4VDn
|
||||
mOtF10aQAm8419VFVYptGgFIT9kXLHOqMWFnQE2QunvYSRu6FgD48QjSSMl7zlfIlFCAg6IvPxZxCErQ
|
||||
0zTy8ighQB0mhQIQcHBBImzABLnajnOBH1/niMthrAWYEAoAiwkcmVKl7ZixEuBNsbNIXpLiDgCXJL2H
|
||||
u6TfArCtuTc0EsukBDCo9nJF1uusC/olANHhGWJhMc079hIACDvJxJao2JQWgIozp0HyOn2OAAZeFsdL
|
||||
l9fjSwmADSNWqbrtNkQdAQxi8RMF7q83eB1KCIDtwobF83ZpIoCxlCBR0aae16UA2CpsVjzPStoIYBAg
|
||||
kZ1JVYKr6EIAbBM2atQ12By6EMAggLpHeJNM0UYAbBE2KRUBZtGlAMbm4jHhTTqmiQDYHi5ZYIvisWtT
|
||||
QgAgaKJw2euWeR0BsDXYHGxPPF5jSglgUCXmX2+8jCzkCEDdDxuDrYn7b01pAQxSUuTpPxXhy1FJMgG8
|
||||
pOW9IpWc6YR+CWBwh5cXtTidGqIJEOYjuMqOLYmf75x+C2DwPwckWPkX2BmGPyPrzH+fUotIXcbumIFx
|
||||
/wFYGnz+zBLT8gAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="but_reload.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABS
|
||||
CAABFVgAADqXAAAXb9daH5AAAAAJcEhZcwAARBsAAEQbAe2VWxAAAAY5SURBVHhe1dtpqG1zHMbx65pn
|
||||
oUxlyJA5XBlfEC9kum90ZYhMiSIhQ+aULikZokxJIUMkhMxDhpBEhAyZ5zFDmY7nua11PHvt7zp77Wlt
|
||||
59an2/mdtX/r/6y99xr+a505U1NTM5o3b97/wWJysWwbtUYoU8JioqYTsJb8IQ9FrRHKlLCYqOkEHCpT
|
||||
hWOLWiOUKWExUdMJuEnKDfCFbCK0XBfKlLCYqGnLVpJPpNwAdq/Qsl0oU8JioqYt20cyfOlooeU7UKaE
|
||||
xURNW3a50Ab4XDYWes00ypSwmKhpi5aRN4U2gN0t9LpplClhMVHTAc2VNcUf6VPlErlZ7ivcI3fJtXKO
|
||||
HCzHiQ9/FL50pND6FqFMCYuJmvbBJzCbydnyrPwoFGIYn8qGQuvHTAmLiZo24OB7ycPS6x0cBX9yaByY
|
||||
KWExUdMedpTHhQY6TodL13goU8JioqY1lpOL5HehAY7bx7KBdIyLMiUspmrDGuvKk0IDa9Pt0jE2ypSw
|
||||
mKoNwdbyodCAJsHXDdPjo0wJiymbgU3lA6GBTMpHsp4sGiNlSlhMZSPgQ8/bQoOYtFtl0TgpU8JiKhtV
|
||||
+ITmNaGVV3mn6B3Uy/KA+ITnEXleXpfv5B+h1w7jIMFMCYvJTcAtQistvSNXy2GykfgIsYRkj8VlKVld
|
||||
dpeTxTvSP4V69ssbfT5lSlhMalJ1jNAKf5XbZD/xOTy9tom9ZVQnTwspU8JiUpO0hXwtuZLf5HrxKW91
|
||||
+UHsL9m/Xz/INbKlzKVMCYtJTdIdkit7VHwYrC43jLrL3158TXCh+Jxkuh9lSlhM0czf03Jn9Y34Ss3f
|
||||
41xmWEvKq1INN5O35ERZVbp6UqaExRTNHhSv0Hvx9YvaqPlr1PRU+jnxJfOM+xvKlLCYikZ7iPfO5xY/
|
||||
j8vxQmFLHsP94ivNRp8+ypSwmIpGC+WIsukY+QSGgv8inhneXuh1tShTwmJSE2/pVbLpmKwoPnZn8K/k
|
||||
Uuk591eHMiUsJmo6Jv6alcHfkzNkDaFlG6NMCYuJmo7JBeLgnu72p4GW6RtlSlhM1HRMfPweWfASZUpY
|
||||
TNR0NqFMCYuJms4mlClhMVHT2YQyJSwmajqbUKaExURNh+BzCh/afJeIfj9ylClhMVHTATjwnvKY3FnU
|
||||
WkGZEhYTNe3D0rJAnpbySvIsoWXHgjIlLCZq2sDK4gsbz/mVZ3f2l+wk9JpR8adt7eJ/zJSwmIqmTa0j
|
||||
vmL01HQGL/lMz/OD9NpROV3OLH+mTAmLqWzUg+8PXCHfCgUv3Sj0+lHwBOtV4kvmzYsaZkpYTGWjGjuL
|
||||
Z4ibTmIcJdRnWP7nCRKv4zqZ/h1lSlhM2azg6e19xbe+/Z2uhqzjyVNPkVPPQS0r54lnpL0OT4j60zi9
|
||||
DGVKWEzRzN9d34J+SarhmnhRqvcGhrGbVMfip0k7lqNMCYtJTXzicoq8K7myfp0vHYMbkL92fkyu+unz
|
||||
EadrYpQyJSwmNRn0Ha+6Unx47BhgQ6uJp+R8IkV3jrwxfKLV9VrKlLCY1OQkqa5wUF+KjwR+3HUH8Tu2
|
||||
vPi77ClxW0F8HN9F/Mnzk2B+HfUrdX30S5QpYTEVjcop8VHyO+md1mfie4mviO8J+GdPgjbdwXqa3mec
|
||||
HcFLlClhMRWNfEvMN0NoAJPkO1N+lLYjdKJMCYspmvnuCw1iUl4Q31nOMXahTAmLqdLQx34aTNueEu8n
|
||||
quPrQpkSFlOl4VbiBxpoUG25QbzjrI4NUaaExQRNR3lU6Id3jocIjakWZUpYTNDUT4H6ERca5Dj8JL5l
|
||||
7itNGs+MKFPCYqKm4mcCvhca8Ki8Lz6+1z4H3ARlSlhM1LTgkxQaePIF0M/S65j+t/id9p7dl9XzpfH3
|
||||
fCaUKWExUdOCZ1x8akqBSt5IPv31+fuBckJRO008aeGfD5BdxR/xkU+WUqaExURNwzZS9wi83/3Gf9w0
|
||||
LpQpYTFR0wq/m7QBnpGRv6P9okwJi4maVniu/wmpbgD/1Qct3yrKlLCYqCnYTryzK8P7Qsd/N0DLtooy
|
||||
JSwmalrDDzSUG+ANqb1CaxNlSlhM1LSGp7t8ju4NcFlRmzjKlLCYqOkMPMnhCUo/7Um/bx1lSlhM1LQH
|
||||
H9c9hUW/ax1l+s/UnH8BePj8zIVNlTQAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="buttonSetRoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAADgAAAA+CAYAAAB+39gDAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1
|
||||
MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAACwwAAAsMAT9AIsgAAAnASURBVGhD3Zt5UNRHFscbwSjH
|
||||
ii4QQORUimEVEIFAgAACpggGKSlLS4xAAbKkPEDYXf3HKlCCCgaRWgVdxSOeKCCXoHii4rVlUERUvPBA
|
||||
0LC1oWQ3VVubt+/1/H6/mSjiKDDD7B/f6pnp/nX3h1+/7ve6G7Z+/Xrm6+sbGxIS0h0bG9tja2ubvWbN
|
||||
Gr3e3l524cIFlp+fz8rKyrhqa2vZxYsX2bZt29iOHTv490OHDrFLly7x/C1btrDq6mq2f/9+dubMGXb+
|
||||
/Hm2detW/v3YsWOssrKSNTY28u9UR319PTtw4ABv5/Tp06ywsFBq6/jx4+zy5cusuLiY7dy5k504cYId
|
||||
PnyYt0X1UPt1dXXs4MGD7OzZs7wtKktlqK7c3FwuNmbMmJAZM2ZAa2srXL16Ffbu3QtTpkz52cfHZz5V
|
||||
SpVQg0eOHNFOQDc3t2xsHBISEoAxBhs3boSXL19CZmYmWFlZ3XB3d5/W3NzMrl27xjuvdYAREREbsZMQ
|
||||
FhbGAUlmZuaAD8O9e/cgPj4e7O3tj8TFxZl0dnaytrY2tnnzZu0BRNvbUFJSAmFfzeJw3lMYjNCRg/r6
|
||||
+nNIfBhwyIKLi0vG7t27eSN79uxhNTU12gMYFCwH7LzM4Fc9BraWckhScvK30NXVBQgFMpnslaOj42wp
|
||||
U8NSGXB6iBzwvwYMwAaFn3/0YDASYeV16cCWwkIOumrVKrC2tv77rFmzJguZGtN7AUNDQzfgjwgYwZ/h
|
||||
gJhymcnTvM8VdVpZWQNWCGiLMGfOHJqI9mVlZRlLBdQslQBxCegbUBSC0rD1dVXUHRwcAo8ePeT26eXl
|
||||
9audnd2fpUw1amBvUFm6qE8Y/MOBgaWpoo2UlFS+rOBEABMmTHiBQz5cylSDBg9Q1Bh5ev4znG1HyNvR
|
||||
0xsJxcU7uX2uXLkSDA0NLy1btsyJZw6xVAYMUhVQlGCfq70V7dnbOwA6AnxpiYqKIvvcsXjxYgOpwBBo
|
||||
6ABFjZM/4+GsaHfmzK/h4cOHcPLkSXL7fkFvKVXKHGQNPSAJbZNstMuJgYmxov2/rFgJ3d3dOHyLYezY
|
||||
se24rHwpZQ6S3gtI6+CAAUUJ9nlcadiO1jfgDvzz58+5fZqYmJxesGCBvVRggFIF8HtaJgYFUJRgn3/C
|
||||
iUjsi7PzH3i00tLSAuHh4YBRzGYMxUZLBT5SmgEUhW/0P2MZuExS9Gn27Ch48qQdTp06BZMnT37t4ODw
|
||||
RynzI6RZQBLZJ6ZPJjMwNlL0LQPDsVe4fqLTDRYWFvfQPr+QMj9AmgcUhbMtpRU+iv4ZG4+F0tIyePz4
|
||||
MaSm8om2dsWKFROkAipo+ACKEuzzW09FPzGmhqamH+HGjRsQGRkJo0aNyt23b98nUoF+NPwARRky+AVh
|
||||
ZbaK/i74ZiE8e/YUMN5DaPceT0/PGCnzHRq+gCR9edrmxuB3CCz2O3fDBujAZaWgoIBm25thYWHeUuYb
|
||||
UgkQf4TA4K/5M2oFFCUM2x+U7NPExAyqq6u5faalpdGwPZqenm4hFRCkMmDA9Jn8GY0AihJAo90VDD4+
|
||||
vnDr1i1obGwEnGkpYskqKirSEQvQ9odqb3A4AIrC4fraCp13lAi6aFESdHR0AL4xdBqcX9nY2MylDNq3
|
||||
aWho4NIeQBJCUto8jcEoXEtF0E1ol+T25eTkULRyPTg4eCp+Z+jcs+3bt7OSkhItARQlDNtCpW2T8eOt
|
||||
MFI5BXfu3OHbmubm5gdXr15tQjt2tNOGUQzDP4CWAIoiUAywA5TsMyAwCO7evQv19fXk9mEAPuIx/v5a
|
||||
0EVUjPYAkmjbBJeWf9ozsLZQgE6aNEn6/Ja0ClCUEJZdRW9I3DZ5p7QSUBT6t04OfUApS6sB8U2OHtUH
|
||||
lLK0ElBYQh64/j8OUYT796cMHG36gOlLWgMorIcxuPCLnXd1mwrXr1+H0NBQ6be3hJ6AAKhBZ7s/CWAH
|
||||
lBZ6CpSPVlRAe3s7JCUlga2tbZ2xsXEq5jWiegXR51jpDQ4LZ1tZgp21oZ0ZYZ+ob6R169bBixcd3FWT
|
||||
yWRtfn5+vufOneMHsxj2ccebzg5v3rzJ0AmQezIUDw4rQIT7Fy7kynb2DQ+Gn0F5eTn4+/v3YFQRTxkP
|
||||
HjzgYHTAWlpaygi2b8CgYQAohktKdjZtmic0NTVxW5s/fz4YGBjkZmdn64kF6LSXHGzyQfsERAMVAOWH
|
||||
QhoBFMB+ULKzceNMoKqqmp9zLF++nALe6piYGCupgCA6Mu8XkCYZjQEKdtY6lYEh+phiv3Nyc/lwpBsf
|
||||
jo6OrRjo+kqZb+i9gNOnT8/TCCAC9Y5HR9la0d+FMTHw9OkTqMAZ0sPDo8fOzi5OynyHVHmDHPALdQGK
|
||||
dqYU9nh5fQbYIW5ntC2hr6+v8rbhhwOOfqNDgyUBbJfSxpKpqSlUVlbx9Wzp0qWgq6tbnZmZ+Zad9SfN
|
||||
v0HBzlrwjekrOcY5ObnQ3f0T5OXlgZGRUeu8efM+lzI/QJoFRDujzSMHpc2jmNg4eNHRAdgZmDhx4s90
|
||||
EVDK/AhpBlAYjnN/Y2fecPt2C1y5cgWCgoIILic9PV3a/vtYqRdQAPub0npmamoGNTU1cP/+fUhOTgYb
|
||||
G5vKyMhIc6nAAKUeQMHOaItPHycpsf28PPnNxaysLAK75eLi4iVlDpKGHlCwMztc08R24+MT+CYtHV27
|
||||
urr2eHt7L5QyB1lDBygMxyj0QsT26EYi2VlDQwM/psaFOnvt2rW6UoEh0OAD9mFnn5pbQG2t/H7pkiVL
|
||||
wMzMrCw+Pn7Q7Kw/qQ4Y+B5Awc5u0Fb6SEUbeegv0nDMz8+nHebmwMBATylTDVIZ0L8/QLSzHozNbJU2
|
||||
WxMSEvkZQVVVFTg5Of2EUXW0lKlGDQzw9/I03E1RJy7MaGe3ud+Iz9IBZRZWOEIqoGZ9OCC+LfFC7F/f
|
||||
tLO6Onj06BEkJiZSfFaWlpamFjvrTyoD+gXIAdvrGXTKGIxUsrON+Zu4ndE+CNrZzYiICLXaWX9SGXDG
|
||||
l1/xZ5TvaicuSoKurk6gTSlcqLsDAgKi6SQVhyi/QE4X0ulyOd2+p4vj1AiduNJhJB0tU4rP8pSOtDZt
|
||||
2sRwbWS7du2SUuoUXUw/evQoL0uX0dGueUr1UoepzaKiIi7sK6OL8bRVQW2+FxDXqwLM+M3eop+fPz97
|
||||
o2NjWtucnZ2/o8NFDGtYS0sLb6SgoICnwx5QJpN9h4UgIyMDdHR0+P9LkN8YHR1Nb60sJSXFjLbkSNQw
|
||||
XesvLy/XHkB3d3cPfEN8VqQbDWRn6OnT1Y2p9N8uOKmwiooK3knamqMzca0C7OrqYugMB1paWjYhWDOm
|
||||
c+kBGo7UKHWMGqRGtA/wLvsftpvZeJJFe4QAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
50
FLCompanionByDvurechensky/Models/DataEdge.cs
Normal file
50
FLCompanionByDvurechensky/Models/DataEdge.cs
Normal file
@ -0,0 +1,50 @@
|
||||
using GraphX.Common.Models;
|
||||
|
||||
namespace WindowsFormsProject
|
||||
{
|
||||
/* DataEdge — это класс данных для ребер. Он содержит все данные о пользовательских краях, указанные пользователем.
|
||||
* Этот класс также должен быть производным от класса EdgeBase, который предоставляет свойства и методы, обязательные для
|
||||
* правильные операции GraphX.
|
||||
* Некоторые из полезных членов EdgeBase:
|
||||
* - Свойство ID, в котором хранится уникальный положительный идентификационный номер. Свойство должно быть заполнено пользователем.
|
||||
* - логическое свойство IsSelfLoop, указывающее, является ли это ребро самозацикленным (например, имеет идентичные вершины Target и Source)
|
||||
* — коллекция точек RoutingPoints, используемая для создания пути маршрутизации по краю. Если Null, то для рисования края будет использоваться прямая линия.
|
||||
* В большинстве случаев GraphX обрабатывает это автоматически.
|
||||
* - Исходное свойство, которое содержит исходную вершину ребра.
|
||||
* - Целевое свойство, которое содержит целевую вершину ребра.
|
||||
* - Свойство Weight, которое содержит необязательное значение веса ребра, которое можно использовать в некоторых алгоритмах компоновки.
|
||||
*/
|
||||
public class DataEdge : EdgeBase<DataVertex>
|
||||
{
|
||||
/// <summary>
|
||||
/// Конструктор по умолчанию. Нам нужно установить как минимум исходные и целевые свойства ребра.
|
||||
/// </summary>
|
||||
/// <param name="source">Исходные данные вершин</param>
|
||||
/// <param name="target">Данные целевой вершины</param>
|
||||
/// <param name="weight">Необязательный вес ребра</param>
|
||||
public DataEdge(DataVertex source, DataVertex target, double weight = 1)
|
||||
: base(source, target, weight)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор без параметров по умолчанию (для совместимости с сериализацией)
|
||||
/// </summary>
|
||||
public DataEdge()
|
||||
: base(null, null, 1)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Пользовательское строковое свойство, например
|
||||
/// </summary>
|
||||
public string Text { get; set; }
|
||||
|
||||
#region GET members
|
||||
public override string ToString()
|
||||
{
|
||||
return Text;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
42
FLCompanionByDvurechensky/Models/DataVertex.cs
Normal file
42
FLCompanionByDvurechensky/Models/DataVertex.cs
Normal file
@ -0,0 +1,42 @@
|
||||
using GraphX;
|
||||
using GraphX.Common.Models;
|
||||
|
||||
namespace WindowsFormsProject
|
||||
{
|
||||
/* DataVertex — это класс данных для вершин. Он содержит все пользовательские данные вершин, указанные пользователем.
|
||||
* Этот класс также должен быть производным от VertexBase, который предоставляет свойства и методы, обязательные для
|
||||
* правильные операции GraphX.
|
||||
* Некоторые из полезных членов VertexBase:
|
||||
* - Свойство ID, в котором хранится уникальный положительный идентификационный номер. Свойство должно быть заполнено пользователем.
|
||||
*/
|
||||
public class DataVertex: VertexBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Некоторое строковое свойство для примера
|
||||
/// </summary>
|
||||
public string Text { get; set; }
|
||||
|
||||
#region Calculated or static props
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Text;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор без параметров по умолчанию для этого класса
|
||||
/// (требуется для сериализации YAXlib)
|
||||
/// </summary>
|
||||
public DataVertex():this("")
|
||||
{
|
||||
}
|
||||
|
||||
public DataVertex(string text = "")
|
||||
{
|
||||
Text = text;
|
||||
}
|
||||
}
|
||||
}
|
149
FLCompanionByDvurechensky/Models/Dijkstra.cs
Normal file
149
FLCompanionByDvurechensky/Models/Dijkstra.cs
Normal file
@ -0,0 +1,149 @@
|
||||
using FLCompanionByDvurechensky.Data;
|
||||
using System.Collections.Generic;
|
||||
|
||||
/// <summary>
|
||||
/// TODO: работает не корректно
|
||||
/// Алгоритм Дейкстры
|
||||
/// </summary>
|
||||
public class Dijkstra
|
||||
{
|
||||
Graph graph;
|
||||
|
||||
List<GraphVertexInfo> infos;
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="graph">Граф</param>
|
||||
public Dijkstra(Graph graph)
|
||||
{
|
||||
this.graph = graph;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Инициализация информации
|
||||
/// </summary>
|
||||
void InitInfo()
|
||||
{
|
||||
infos = new List<GraphVertexInfo>();
|
||||
foreach (var v in graph.Vertices)
|
||||
{
|
||||
infos.Add(new GraphVertexInfo(v));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение информации о вершине графа
|
||||
/// </summary>
|
||||
/// <param name="v">Вершина</param>
|
||||
/// <returns>Информация о вершине</returns>
|
||||
GraphVertexInfo GetVertexInfo(GraphVertex v)
|
||||
{
|
||||
if (v == null) return null;
|
||||
|
||||
foreach (var i in infos)
|
||||
{
|
||||
if (i.Vertex.Name.Contains(v.Name))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Поиск непосещенной вершины с минимальным значением суммы
|
||||
/// </summary>
|
||||
/// <returns>Информация о вершине</returns>
|
||||
public GraphVertexInfo FindUnvisitedVertexWithMinSum()
|
||||
{
|
||||
var minValue = int.MaxValue;
|
||||
GraphVertexInfo minVertexInfo = null;
|
||||
foreach (var i in infos)
|
||||
{
|
||||
if (i.IsUnvisited && i.EdgesWeightSum < minValue)
|
||||
{
|
||||
minVertexInfo = i;
|
||||
minValue = i.EdgesWeightSum;
|
||||
}
|
||||
}
|
||||
|
||||
return minVertexInfo;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Поиск кратчайшего пути по названиям вершин
|
||||
/// </summary>
|
||||
/// <param name="startName">Название стартовой вершины</param>
|
||||
/// <param name="finishName">Название финишной вершины</param>
|
||||
/// <returns>Кратчайший путь</returns>
|
||||
public string FindShortestPath(string startName, string finishName)
|
||||
{
|
||||
return FindShortestPath(graph.FindVertex(startName), graph.FindVertex(finishName));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Поиск кратчайшего пути по вершинам
|
||||
/// </summary>
|
||||
/// <param name="startVertex">Стартовая вершина</param>
|
||||
/// <param name="finishVertex">Финишная вершина</param>
|
||||
/// <returns>Кратчайший путь</returns>
|
||||
public string FindShortestPath(GraphVertex startVertex, GraphVertex finishVertex)
|
||||
{
|
||||
InitInfo();
|
||||
var first = GetVertexInfo(startVertex);
|
||||
first.EdgesWeightSum = 0;
|
||||
while (true)
|
||||
{
|
||||
var current = FindUnvisitedVertexWithMinSum();
|
||||
if (current == null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
SetSumToNextVertex(current);
|
||||
}
|
||||
|
||||
return GetPath(startVertex, finishVertex);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Вычисление суммы весов ребер для следующей вершины
|
||||
/// </summary>
|
||||
/// <param name="info">Информация о текущей вершине</param>
|
||||
void SetSumToNextVertex(GraphVertexInfo info)
|
||||
{
|
||||
info.IsUnvisited = false;
|
||||
foreach (var e in info.Vertex.Edges)
|
||||
{
|
||||
var nextInfo = GetVertexInfo(e.ConnectedVertex);
|
||||
var sum = info.EdgesWeightSum + e.EdgeWeight;
|
||||
if (sum < nextInfo.EdgesWeightSum)
|
||||
{
|
||||
nextInfo.EdgesWeightSum = sum;
|
||||
nextInfo.PreviousVertex = info.Vertex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Формирование пути
|
||||
/// </summary>
|
||||
/// <param name="startVertex">Начальная вершина</param>
|
||||
/// <param name="endVertex">Конечная вершина</param>
|
||||
/// <returns>Путь</returns>
|
||||
string GetPath(GraphVertex startVertex, GraphVertex endVertex)
|
||||
{
|
||||
var path = endVertex.ToString();
|
||||
while (startVertex != endVertex)
|
||||
{
|
||||
if(endVertex == null) return path;
|
||||
endVertex = GetVertexInfo(endVertex).PreviousVertex;
|
||||
if(endVertex != null)
|
||||
path = endVertex.ToString() + " = " + path;
|
||||
}
|
||||
|
||||
return path;
|
||||
}
|
||||
}
|
64
FLCompanionByDvurechensky/Models/Graph.cs
Normal file
64
FLCompanionByDvurechensky/Models/Graph.cs
Normal file
@ -0,0 +1,64 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
/// <summary>
|
||||
/// Граф
|
||||
/// </summary>
|
||||
public class Graph
|
||||
{
|
||||
/// <summary>
|
||||
/// Список вершин графа
|
||||
/// </summary>
|
||||
public List<GraphVertex> Vertices { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
public Graph()
|
||||
{
|
||||
Vertices = new List<GraphVertex>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Добавление вершины
|
||||
/// </summary>
|
||||
/// <param name="vertexName">Имя вершины</param>
|
||||
public void AddVertex(string vertexName)
|
||||
{
|
||||
Vertices.Add(new GraphVertex(vertexName));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Поиск вершины
|
||||
/// </summary>
|
||||
/// <param name="vertexName">Название вершины</param>
|
||||
/// <returns>Найденная вершина</returns>
|
||||
public GraphVertex FindVertex(string vertexName)
|
||||
{
|
||||
foreach (var v in Vertices)
|
||||
{
|
||||
if (v.Name.Contains(vertexName))
|
||||
{
|
||||
return v;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Добавление ребра
|
||||
/// </summary>
|
||||
/// <param name="firstName">Имя первой вершины</param>
|
||||
/// <param name="secondName">Имя второй вершины</param>
|
||||
/// <param name="weight">Вес ребра соединяющего вершины</param>
|
||||
public void AddEdge(string firstName, string secondName, int weight)
|
||||
{
|
||||
var v1 = FindVertex(firstName);
|
||||
var v2 = FindVertex(secondName);
|
||||
if (v2 != null && v1 != null)
|
||||
{
|
||||
v1.AddEdge(v2, weight);
|
||||
v2.AddEdge(v1, weight);
|
||||
}
|
||||
}
|
||||
}
|
12
FLCompanionByDvurechensky/Models/GraphAreaExample.cs
Normal file
12
FLCompanionByDvurechensky/Models/GraphAreaExample.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using GraphX.Controls;
|
||||
using QuickGraph;
|
||||
|
||||
namespace WindowsFormsProject
|
||||
{
|
||||
/// <summary>
|
||||
/// Это пользовательское представление GraphArea с использованием пользовательских типов данных.
|
||||
/// GraphArea — компонент визуальной панели, отвечающий за отрисовку визуальных элементов (вершин и ребер).
|
||||
/// Он также предоставляет множество глобальных настроек и методов, что делает GraphX таким настраиваемым и удобным для пользователя.
|
||||
/// </summary>
|
||||
public class GraphAreaExample : GraphArea<DataVertex, DataEdge, BidirectionalGraph<DataVertex, DataEdge>> { }
|
||||
}
|
26
FLCompanionByDvurechensky/Models/GraphEdge.cs
Normal file
26
FLCompanionByDvurechensky/Models/GraphEdge.cs
Normal file
@ -0,0 +1,26 @@
|
||||
/// <summary>
|
||||
/// Ребро графа
|
||||
/// </summary>
|
||||
public class GraphEdge
|
||||
{
|
||||
/// <summary>
|
||||
/// Связанная вершина
|
||||
/// </summary>
|
||||
public GraphVertex ConnectedVertex { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Вес ребра
|
||||
/// </summary>
|
||||
public int EdgeWeight { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="connectedVertex">Связанная вершина</param>
|
||||
/// <param name="weight">Вес ребра</param>
|
||||
public GraphEdge(GraphVertex connectedVertex, int weight)
|
||||
{
|
||||
ConnectedVertex = connectedVertex;
|
||||
EdgeWeight = weight;
|
||||
}
|
||||
}
|
12
FLCompanionByDvurechensky/Models/GraphExample.cs
Normal file
12
FLCompanionByDvurechensky/Models/GraphExample.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using QuickGraph;
|
||||
|
||||
namespace WindowsFormsProject
|
||||
{
|
||||
/// <summary>
|
||||
/// Это наш пользовательский график данных, полученный из класса BidirectionalGraph с использованием пользовательских типов данных.
|
||||
/// Граф данных хранит данные о вершинах и ребрах, которые используются GraphArea и конечным пользователем для различных операций.
|
||||
/// Содержимое графика данных обрабатывается пользователем вручную (добавление/удаление объектов). Основная идея заключается в том, что вы можете динамически
|
||||
/// удалять/добавлять объекты в макет GraphArea, а затем использовать график данных для восстановления исходного содержимого макета.
|
||||
/// </summary>
|
||||
public class GraphExample : BidirectionalGraph<DataVertex, DataEdge> { }
|
||||
}
|
52
FLCompanionByDvurechensky/Models/GraphVertex.cs
Normal file
52
FLCompanionByDvurechensky/Models/GraphVertex.cs
Normal file
@ -0,0 +1,52 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
/// <summary>
|
||||
/// Вершина графа
|
||||
/// </summary>
|
||||
public class GraphVertex
|
||||
{
|
||||
/// <summary>
|
||||
/// Название вершины
|
||||
/// </summary>
|
||||
public string Name { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Список ребер
|
||||
/// </summary>
|
||||
public List<GraphEdge> Edges { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="vertexName">Название вершины</param>
|
||||
public GraphVertex(string vertexName)
|
||||
{
|
||||
Name = vertexName;
|
||||
Edges = new List<GraphEdge>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Добавить ребро
|
||||
/// </summary>
|
||||
/// <param name="newEdge">Ребро</param>
|
||||
public void AddEdge(GraphEdge newEdge)
|
||||
{
|
||||
Edges.Add(newEdge);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Добавить ребро
|
||||
/// </summary>
|
||||
/// <param name="vertex">Вершина</param>
|
||||
/// <param name="edgeWeight">Вес</param>
|
||||
public void AddEdge(GraphVertex vertex, int edgeWeight)
|
||||
{
|
||||
AddEdge(new GraphEdge(vertex, edgeWeight));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Преобразование в строку
|
||||
/// </summary>
|
||||
/// <returns>Имя вершины</returns>
|
||||
public override string ToString() => Name;
|
||||
}
|
40
FLCompanionByDvurechensky/Models/GraphVertexInfo.cs
Normal file
40
FLCompanionByDvurechensky/Models/GraphVertexInfo.cs
Normal file
@ -0,0 +1,40 @@
|
||||
namespace FLCompanionByDvurechensky.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Информация о вершине
|
||||
/// </summary>
|
||||
public class GraphVertexInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// Вершина
|
||||
/// </summary>
|
||||
public GraphVertex Vertex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Не посещенная вершина
|
||||
/// </summary>
|
||||
public bool IsUnvisited { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Сумма весов ребер
|
||||
/// </summary>
|
||||
public int EdgesWeightSum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Предыдущая вершина
|
||||
/// </summary>
|
||||
public GraphVertex PreviousVertex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="vertex">Вершина</param>
|
||||
public GraphVertexInfo(GraphVertex vertex)
|
||||
{
|
||||
Vertex = vertex;
|
||||
IsUnvisited = true;
|
||||
EdgesWeightSum = int.MaxValue;
|
||||
PreviousVertex = null;
|
||||
}
|
||||
}
|
||||
}
|
22
FLCompanionByDvurechensky/Program.cs
Normal file
22
FLCompanionByDvurechensky/Program.cs
Normal file
@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace FLCompanionByDvurechensky
|
||||
{
|
||||
/// <summary>
|
||||
/// Точка входа
|
||||
/// </summary>
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// Главная точка входа для приложения.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new FreelancerCompanionDvurechensky());
|
||||
}
|
||||
}
|
||||
}
|
36
FLCompanionByDvurechensky/Properties/AssemblyInfo.cs
Normal file
36
FLCompanionByDvurechensky/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Общие сведения об этой сборке предоставляются следующим набором
|
||||
// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
|
||||
// связанные со сборкой.
|
||||
[assembly: AssemblyTitle("FLCompanionByDvurechensky")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("FLCompanionByDvurechensky")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
|
||||
// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
|
||||
// COM, задайте атрибуту ComVisible значение TRUE для этого типа.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
|
||||
[assembly: Guid("71b7afc2-eb05-4098-9a50-71801ec5b23d")]
|
||||
|
||||
// Сведения о версии сборки состоят из следующих четырех значений:
|
||||
//
|
||||
// Основной номер версии
|
||||
// Дополнительный номер версии
|
||||
// Номер сборки
|
||||
// Редакция
|
||||
//
|
||||
// Можно задать все значения или принять номер сборки и номер редакции по умолчанию.
|
||||
// используя "*", как показано ниже:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
63
FLCompanionByDvurechensky/Properties/Resources.Designer.cs
generated
Normal file
63
FLCompanionByDvurechensky/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,63 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Этот код создан программой.
|
||||
// Исполняемая версия:4.0.30319.42000
|
||||
//
|
||||
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||
// повторной генерации кода.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FLCompanionByDvurechensky.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
|
||||
/// </summary>
|
||||
// Этот класс создан автоматически классом StronglyTypedResourceBuilder
|
||||
// с помощью такого средства, как ResGen или Visual Studio.
|
||||
// Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
|
||||
// с параметром /str или перестройте свой проект VS.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FLCompanionByDvurechensky.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
|
||||
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
117
FLCompanionByDvurechensky/Properties/Resources.resx
Normal file
117
FLCompanionByDvurechensky/Properties/Resources.resx
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
26
FLCompanionByDvurechensky/Properties/Settings.Designer.cs
generated
Normal file
26
FLCompanionByDvurechensky/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Этот код создан программой.
|
||||
// Исполняемая версия:4.0.30319.42000
|
||||
//
|
||||
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
||||
// повторной генерации кода.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FLCompanionByDvurechensky.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.6.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
7
FLCompanionByDvurechensky/Properties/Settings.settings
Normal file
7
FLCompanionByDvurechensky/Properties/Settings.settings
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
BIN
FLCompanionByDvurechensky/Resources/167203498-225a03a5-49f4-4262-abe4-78da42559625.png
Normal file
BIN
FLCompanionByDvurechensky/Resources/167203498-225a03a5-49f4-4262-abe4-78da42559625.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 43 KiB |
BIN
FLCompanionByDvurechensky/Resources/tr_red.png
Normal file
BIN
FLCompanionByDvurechensky/Resources/tr_red.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
184
FLCompanionByDvurechensky/Services/DrawService.cs
Normal file
184
FLCompanionByDvurechensky/Services/DrawService.cs
Normal file
@ -0,0 +1,184 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
|
||||
namespace FLCompanionByDvurechensky.Services
|
||||
{
|
||||
/// <summary>
|
||||
/// Сервис для работы с картой
|
||||
/// </summary>
|
||||
public class DrawService
|
||||
{
|
||||
/// <summary>
|
||||
/// Пикселей в одном делении
|
||||
/// </summary>
|
||||
private int BlockLength { get; set; }
|
||||
/// <summary>
|
||||
/// Длинна стрелки
|
||||
/// </summary>
|
||||
private int ArrowLength { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="BlockLength"></param>
|
||||
/// <param name="ArrowLength"></param>
|
||||
public DrawService(int BlockLength,int ArrowLength)
|
||||
{
|
||||
this.BlockLength = BlockLength;
|
||||
this.ArrowLength = ArrowLength;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Рисование оси X
|
||||
/// </summary>
|
||||
/// <param name="start">Начало</param>
|
||||
/// <param name="end">Конец</param>
|
||||
/// <param name="map">Карта</param>
|
||||
public void DrawXAxis(Point start, Point end, Graphics map, bool arrow = true)
|
||||
{
|
||||
//Деления в положительном направлении оси
|
||||
for (int i = BlockLength; i < end.X - ArrowLength; i += BlockLength)
|
||||
{
|
||||
map.DrawLine(Pens.Black, i, -1, i, 1);
|
||||
}
|
||||
//Деления в отрицательном направлении оси
|
||||
for (int i = -BlockLength; i > start.X; i -= BlockLength)
|
||||
{
|
||||
map.DrawLine(Pens.Black, i, -1, i, 1);
|
||||
}
|
||||
//Ось
|
||||
map.DrawLine(Pens.Black, start, end);
|
||||
//Стрелка
|
||||
if(arrow) map.DrawLines(Pens.Black, GetArrow(start.X, start.Y, end.X, end.Y, ArrowLength));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Рисование оси Y
|
||||
/// </summary>
|
||||
/// <param name="start">Начало</param>
|
||||
/// <param name="end">Конец</param>
|
||||
/// <param name="map">Карта</param>
|
||||
public void DrawYAxis(Point start, Point end, Graphics map, bool arrow = true)
|
||||
{
|
||||
//Деления в отрицательном направлении оси
|
||||
for (int i = BlockLength; i < start.Y; i += BlockLength)
|
||||
{
|
||||
map.DrawLine(Pens.Black, -1, i, 1, i);
|
||||
}
|
||||
//Деления в положительном направлении оси
|
||||
for (int i = -BlockLength; i > end.Y + ArrowLength; i -= BlockLength)
|
||||
{
|
||||
map.DrawLine(Pens.Black, -1, i, 1, i);
|
||||
}
|
||||
//Ось
|
||||
map.DrawLine(Pens.Black, start, end);
|
||||
//Стрелка
|
||||
if (arrow) map.DrawLines(Pens.Black, GetArrow(start.X, start.Y, end.X, end.Y, ArrowLength));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Рисует местоположение базы
|
||||
/// </summary>
|
||||
/// <param name="X">X</param>
|
||||
/// <param name="Y">Y</param>
|
||||
/// <param name="map">Карта</param>
|
||||
public void DrawPoint(int X, int Y, int width, int height, Graphics map, Color color, int boxW = 5, int boxH = 5)
|
||||
{
|
||||
int[] coords = ResetCoords(X, Y, width, height);
|
||||
Rectangle rect = new Rectangle(coords[0], coords[1], boxW, boxH);
|
||||
map.DrawRectangle(new Pen(color, .5f), rect);
|
||||
Brush bb = new SolidBrush(color);
|
||||
map.FillRectangle(bb, rect);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Рисование текста
|
||||
/// </summary>
|
||||
/// <param name="point">Местоположение</param>
|
||||
/// <param name="text">Текст</param>
|
||||
/// <param name="map">Карта</param>
|
||||
/// <param name="isYAxis">Выбор оси</param>
|
||||
public void DrawText(Point point, int width, int height, string text, Graphics map, Brush color, int sizeText, bool isYAxis = false)
|
||||
{
|
||||
var fontFamily = new FontFamily("Arial");
|
||||
var font = new Font(fontFamily, sizeText, FontStyle.Bold, GraphicsUnit.Pixel);
|
||||
var size = map.MeasureString(text, font);
|
||||
var coords = ResetCoords(point.X, point.Y, width, height);
|
||||
var rect = new RectangleF(new Point(coords[0], coords[1]), size);
|
||||
map.DrawString(text, font, color, rect);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Вычисление стрелки оси
|
||||
/// </summary>
|
||||
/// <param name="x1">X1</param>
|
||||
/// <param name="y1">Y1</param>
|
||||
/// <param name="x2">X2</param>
|
||||
/// <param name="y2">Y2</param>
|
||||
/// <param name="height">Ширина стрелки</param>
|
||||
/// <param name="width">Длинна стрелки</param>
|
||||
/// <returns></returns>
|
||||
private PointF[] GetArrow(float x1, float y1, float x2, float y2, float height = 10, float width = 4)
|
||||
{
|
||||
PointF[] result = new PointF[3];
|
||||
//направляющий вектор отрезка
|
||||
var n = new PointF(x2 - x1, y2 - y1);
|
||||
//Длина отрезка
|
||||
var l = (float)Math.Sqrt(n.X * n.X + n.Y * n.Y);
|
||||
//Единичный вектор
|
||||
var v1 = new PointF(n.X / l, n.Y / l);
|
||||
//Длина стрелки
|
||||
n.X = x2 - v1.X * height;
|
||||
n.Y = y2 - v1.Y * height;
|
||||
//формирование элементов
|
||||
result[0] = new PointF(n.X + v1.Y * width, n.Y - v1.X * width);
|
||||
result[1] = new PointF(x2, y2);
|
||||
result[2] = new PointF(n.X - v1.Y * width, n.Y + v1.X * width);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Пересчитывает координаты
|
||||
/// </summary>
|
||||
/// <param name="X"></param>
|
||||
/// <param name="Y"></param>
|
||||
/// <returns></returns>
|
||||
private int[] ResetCoords(int X, int Y, int width, int height)
|
||||
{
|
||||
bool stateX = false;
|
||||
bool stateY = false;
|
||||
width /= 2;
|
||||
height /= 2;
|
||||
|
||||
if (X < 0)
|
||||
{
|
||||
X += width;
|
||||
stateX = true;
|
||||
}
|
||||
if (Y < 0)
|
||||
{
|
||||
Y += height;
|
||||
stateY = true;
|
||||
}
|
||||
|
||||
if (X > 0 && !stateX)
|
||||
{
|
||||
X += width;
|
||||
stateX = true;
|
||||
}
|
||||
if (Y > 0 && !stateY)
|
||||
{
|
||||
Y += height;
|
||||
stateY = true;
|
||||
}
|
||||
|
||||
if (X == 0 && !stateX) X = width;
|
||||
if (Y == 0 && !stateY) Y = height;
|
||||
|
||||
int[] coords = new int[2];
|
||||
coords[0] = X;
|
||||
coords[1] = Y;
|
||||
return coords;
|
||||
}
|
||||
}
|
||||
}
|
112
FLCompanionByDvurechensky/Services/LogService.cs
Normal file
112
FLCompanionByDvurechensky/Services/LogService.cs
Normal file
@ -0,0 +1,112 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace FLCompanionByDvurechensky.Services
|
||||
{
|
||||
/// <summary>
|
||||
/// Сервис логирования
|
||||
/// </summary>
|
||||
public class LogService
|
||||
{
|
||||
/// <summary>
|
||||
/// Поле вывода информации интерфейса
|
||||
/// </summary>
|
||||
private RichTextBox Logger { get; set; }
|
||||
/// <summary>
|
||||
/// Время начала логирования
|
||||
/// </summary>
|
||||
private string LogDateTime { get; set; }
|
||||
/// <summary>
|
||||
/// Директория логирования
|
||||
/// </summary>
|
||||
private string DirLog
|
||||
{
|
||||
get
|
||||
{
|
||||
var path = "Log";
|
||||
if(!Directory.Exists(path)) Directory.CreateDirectory(path);
|
||||
else
|
||||
{
|
||||
var directoryInfo = new DirectoryInfo(path);
|
||||
if (directoryInfo.GetFiles().Length > 50)
|
||||
{
|
||||
Directory.Delete(path, true); //true - если директория не пуста (удалит и файлы и папки)
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
}
|
||||
|
||||
return path;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Путь до файла лога
|
||||
/// </summary>
|
||||
private string LogPath => Path.Combine(DirLog, $"{LogDateTime}_log.txt");
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="logger">Объект вывода интерфейса</param>
|
||||
public LogService(RichTextBox logger)
|
||||
{
|
||||
Logger = logger;
|
||||
LogDateTime = DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Обычное событие
|
||||
/// </summary>
|
||||
/// <param name="message">текст сообщения</param>
|
||||
public void LogEvent(string message)
|
||||
{
|
||||
Logger.BeginInvoke(new Action(() =>
|
||||
{
|
||||
Logger.BackColor = Color.LightGray;
|
||||
Logger.SelectionColor = Color.Black;
|
||||
var msg = "-----> " + message + Environment.NewLine;
|
||||
Logger.AppendText(msg);
|
||||
File.AppendAllText(LogPath, msg);
|
||||
Logger.SelectionStart = Logger.TextLength;
|
||||
Logger.ScrollToCaret();
|
||||
}));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Событие ошибки
|
||||
/// </summary>
|
||||
/// <param name="message">текст ошибки</param>
|
||||
public void ErrorLogEvent(string message)
|
||||
{
|
||||
Logger.BeginInvoke(new Action(() =>
|
||||
{
|
||||
Logger.BackColor = Color.LightGray;
|
||||
Logger.SelectionColor = Color.Red;
|
||||
var msg = "!~ " + message + Environment.NewLine;
|
||||
Logger.AppendText(msg);
|
||||
File.AppendAllText(LogPath, msg);
|
||||
Logger.SelectionStart = Logger.TextLength;
|
||||
Logger.ScrollToCaret();
|
||||
}));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Событие предупреждения
|
||||
/// </summary>
|
||||
/// <param name="message">текст предупреждения</param>
|
||||
public void ErrorWarningEvent(string message)
|
||||
{
|
||||
Logger.BeginInvoke(new Action(() =>
|
||||
{
|
||||
Logger.BackColor = Color.LightGray;
|
||||
Logger.SelectionColor = Color.DarkBlue;
|
||||
var msg = "#~ " + message + Environment.NewLine;
|
||||
Logger.AppendText(msg);
|
||||
File.AppendAllText(LogPath, msg);
|
||||
Logger.SelectionStart = Logger.TextLength;
|
||||
Logger.ScrollToCaret();
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
709
FLCompanionByDvurechensky/Services/SystemService.cs
Normal file
709
FLCompanionByDvurechensky/Services/SystemService.cs
Normal file
@ -0,0 +1,709 @@
|
||||
using FLCompanionByDvurechensky.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace FLCompanionByDvurechensky.Services
|
||||
{
|
||||
/// <summary>
|
||||
/// Сервис глобальной работы системы
|
||||
/// </summary>
|
||||
public class SystemService
|
||||
{
|
||||
/// <summary>
|
||||
/// Все данные системы
|
||||
/// </summary>
|
||||
public Dictionary<string, UniverseSystem> UniverseSystemsData { get; set; }
|
||||
/// <summary>
|
||||
/// Список баз
|
||||
/// </summary>
|
||||
public Dictionary<string, UniverseBase> UniverseBasesData { get; set; }
|
||||
/// <summary>
|
||||
/// ID Систнем
|
||||
/// </summary>
|
||||
public List<string> SystemsID { get; set; }
|
||||
/// <summary>
|
||||
/// Список предметов в игре
|
||||
/// </summary>
|
||||
public List<Equipment> Equipments { get; set; }
|
||||
/// <summary>
|
||||
/// ID системы - Список зон добычи ископаемых
|
||||
/// </summary>
|
||||
public Dictionary<string, List<LootableZone>> SysAsteroids { get; set; }
|
||||
/// <summary>
|
||||
/// ID - Name системы
|
||||
/// </summary>
|
||||
public Dictionary<string, string> SystemNamesID { get; set; }
|
||||
/// <summary>
|
||||
/// Name - Id систем
|
||||
/// </summary>
|
||||
public Dictionary<string, string> SystemsNameId { get; set; }
|
||||
/// <summary>
|
||||
/// Cписок контейнеров
|
||||
/// </summary>
|
||||
public List<Loadout> Loadouts { get; set; }
|
||||
/// <summary>
|
||||
/// Список путей от систем до систем
|
||||
/// </summary>
|
||||
public List<string> HollRoads { get; set; }
|
||||
/// <summary>
|
||||
/// Массив очищенных айдишников систем для ComboBox
|
||||
/// </summary>
|
||||
public string[] ArraySystemsCombobox { get; set; }
|
||||
/// <summary>
|
||||
/// Обрабатывать русские наименования в алгоритмах
|
||||
/// </summary>
|
||||
public bool IsRussian { get; set; }
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi)]
|
||||
private static extern IntPtr LoadLibrary([MarshalAs(UnmanagedType.LPStr)] string lpFileName);
|
||||
|
||||
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
||||
private static extern int LoadString(IntPtr hInstance, int ID, StringBuilder lpBuffer, int nBufferMax);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
private static extern bool FreeLibrary(IntPtr hModule);
|
||||
private LogService LogService { get; set; }
|
||||
private string BaseId { get; set; }
|
||||
private string SystemID { get; set; }
|
||||
private int SurptiseNick_ID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="isRussian">использование русского языка(TODO: по умолчанию только он)</param>
|
||||
/// <param name="logService">экземпляр сервиса логирования</param>
|
||||
public SystemService(bool isRussian, LogService logService)
|
||||
{
|
||||
UniverseSystemsData = new Dictionary<string, UniverseSystem>();
|
||||
UniverseBasesData = new Dictionary<string, UniverseBase>();
|
||||
SystemNamesID = new Dictionary<string, string>();
|
||||
SystemsNameId = new Dictionary<string, string>();
|
||||
SysAsteroids = new Dictionary<string, List<LootableZone>>();
|
||||
Equipments = new List<Equipment>();
|
||||
SystemsID = new List<string>();
|
||||
Loadouts = new List<Loadout>();
|
||||
HollRoads = new List<string>();
|
||||
IsRussian = isRussian;
|
||||
LogService = logService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение и обработка информации
|
||||
/// </summary>
|
||||
/// <param name="systems">Список систем</param>
|
||||
/// <param name="roadStart">Выбор пути старта</param>
|
||||
/// <param name="roadStop">Выбор точки остановки</param>
|
||||
/// <param name="equipments">Выбор оборудования для поиска</param>
|
||||
/// <param name="logService">Экземпляр сервиса логирования</param>
|
||||
public void GetInfo(ComboBox systems, ComboBox roadStart, ComboBox roadStop, ComboBox equipments, LogService logService)
|
||||
{
|
||||
try
|
||||
{
|
||||
var stopwatch = new Stopwatch();
|
||||
Task.Factory.StartNew(delegate ()
|
||||
{
|
||||
Parallel.Invoke(() => GetAllSystems(),
|
||||
() => GetAllEquipments(equipments),
|
||||
() => GetAllAsteroids(),
|
||||
() => GetAllLoadouts(),
|
||||
() => GetAllBases(roadStart, roadStop, systems));
|
||||
});
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
logService.ErrorLogEvent(exception.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение списка грузов
|
||||
/// </summary>
|
||||
/// <param name="line"></param>
|
||||
/// <param name="logService"></param>
|
||||
private void GetLoadout(string line)
|
||||
{
|
||||
if (line.Contains("nickname ="))
|
||||
{
|
||||
SurptiseNick_ID++;
|
||||
var nickName = (line.Substring(10, line.Length - 10)).Trim().ToLower();
|
||||
Loadouts.Add(new Loadout() { Name = nickName });
|
||||
}
|
||||
if (line.Contains("archetype ="))
|
||||
{
|
||||
var arch = (line.Substring(11, line.Length - 11)).Trim().ToLower();
|
||||
Loadouts[SurptiseNick_ID - 1].Archetype = arch;
|
||||
}
|
||||
if (line.Contains("cargo ="))
|
||||
{
|
||||
var cargoNameCount = (line.Substring(7, line.Length - 7)).Trim().ToLower();
|
||||
var name = cargoNameCount.Substring(0, cargoNameCount.IndexOf(','));
|
||||
var count = cargoNameCount.Substring(cargoNameCount.IndexOf(',') + 1, cargoNameCount.Length - (cargoNameCount.IndexOf(',') + 1));
|
||||
int.TryParse(count, out int res);
|
||||
Loadouts[SurptiseNick_ID - 1].Cargo.Add(new Cargo()
|
||||
{
|
||||
Name = name,
|
||||
Count = res
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение информации о системе
|
||||
/// </summary>
|
||||
/// <param name="line">строка с данными</param>
|
||||
private void GetSystemDataToFile(string line)
|
||||
{
|
||||
if (line.Contains("nickname"))
|
||||
{
|
||||
SystemID = (line.Substring(10, line.Length - 10)).Trim().ToLower();
|
||||
UniverseSystemsData.Add(SystemID, new UniverseSystem()
|
||||
{
|
||||
Id = SystemID
|
||||
});
|
||||
}
|
||||
if (line.Contains("strid_name"))
|
||||
{
|
||||
var dll_name = (line.Substring(12, line.Length - 12)).Trim();
|
||||
UniverseSystemsData[SystemID].DLL_Name = dll_name;
|
||||
var id = SystemID.ToLower();
|
||||
string name = string.Empty;
|
||||
if (SystemNamesID.ContainsKey(id)) name = SystemNamesID[id];
|
||||
else name = id;
|
||||
UniverseSystemsData[SystemID].Name = name;
|
||||
}
|
||||
if (line.Contains("visit"))
|
||||
{
|
||||
var visit = (line.Substring(7, line.Length - 7)).Trim();
|
||||
UniverseSystemsData[SystemID].Visit = int.Parse(visit);
|
||||
}
|
||||
if (line.Contains("ids_info"))
|
||||
{
|
||||
var dll_ids_name = (line.Substring(10, line.Length - 10)).Trim();
|
||||
UniverseSystemsData[SystemID].DLL_InfoCard = dll_ids_name;
|
||||
}
|
||||
if (line.Contains("file"))
|
||||
{
|
||||
var file = (line.Substring(6, line.Length - 6)).Trim();
|
||||
UniverseSystemsData[SystemID].INI = file;
|
||||
GetSystemInfo(SystemID);
|
||||
}
|
||||
if (line.Contains("NavMapScale"))
|
||||
{
|
||||
var nav = (line.Substring(13, line.Length - 13)).Trim();
|
||||
IFormatProvider formatter = new NumberFormatInfo { NumberDecimalSeparator = "." };
|
||||
UniverseSystemsData[SystemID].NavMapScale = double.Parse(nav, formatter);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение списка баз системы
|
||||
/// </summary>
|
||||
/// <param name="line">строка с информацией</param>
|
||||
private void GetBaseDataToFile(string line)
|
||||
{
|
||||
if (line.Contains("nickname"))
|
||||
{
|
||||
BaseId = (line.Substring(10, line.Length - 10)).Trim().ToLower();
|
||||
UniverseBasesData.Add(BaseId, new UniverseBase()
|
||||
{
|
||||
Id = BaseId
|
||||
});
|
||||
}
|
||||
if (line.Contains("strid_name"))
|
||||
{
|
||||
var dll_name = (line.Substring(12, line.Length - 12)).Trim();
|
||||
if (dll_name.Contains(";"))
|
||||
dll_name = dll_name.Substring(0, dll_name.IndexOf(';'));
|
||||
UniverseBasesData[BaseId].DLL_Name = dll_name;
|
||||
var names = GetNameSystem(int.Parse(dll_name), BaseId);
|
||||
foreach (var name in names)
|
||||
{
|
||||
UniverseBasesData[BaseId].Name += name + " | ";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Читает конфигурационный файл системы
|
||||
/// </summary>
|
||||
/// <param name="systemId">ID системы</param>
|
||||
|
||||
private void GetSystemInfo(string systemId)
|
||||
{
|
||||
var sr = new StreamReader(UniverseSystemsData[systemId].INI);
|
||||
var data = sr.ReadLine();
|
||||
var Object = false;
|
||||
var Zone = false;
|
||||
while (data != null)
|
||||
{
|
||||
if (data.Contains("Object"))
|
||||
{
|
||||
Object = true;
|
||||
Zone = false;
|
||||
if (UniverseSystemsData[systemId].Objects == null)
|
||||
UniverseSystemsData[systemId].Objects = new List<ObjectSystem>();
|
||||
}
|
||||
if (data.Contains("Zone"))
|
||||
{
|
||||
Object = false;
|
||||
Zone = true;
|
||||
}
|
||||
if (Object)
|
||||
{
|
||||
if (data.Contains("nickname"))
|
||||
{
|
||||
var id_name = (data.Substring(10, data.Length - 10)).Trim();
|
||||
UniverseSystemsData[systemId].Objects.Add(new ObjectSystem()
|
||||
{
|
||||
ID = id_name
|
||||
});
|
||||
}
|
||||
if (data.Contains("pos ="))
|
||||
{
|
||||
var position = (data.Substring(5, data.Length - 5)).Trim();
|
||||
if (position.Contains(";"))
|
||||
position = (position.Substring(0, position.IndexOf(';')).Trim());
|
||||
int[] pos = position.Split(',').Select(n =>
|
||||
{
|
||||
int val = 0;
|
||||
n = n.Trim();
|
||||
var state = int.TryParse(n, out val);
|
||||
if (state == false)
|
||||
{
|
||||
double td = 0;
|
||||
if (n.Contains('.'))
|
||||
{
|
||||
IFormatProvider formatter = new NumberFormatInfo { NumberDecimalSeparator = "." };
|
||||
td = double.Parse(n, formatter);
|
||||
int i = (int)Math.Round(td, MidpointRounding.AwayFromZero);
|
||||
val = i;
|
||||
return val;
|
||||
}
|
||||
else
|
||||
{
|
||||
File.AppendAllText("log.txt", "Error Parse Position - " + position + " - " + UniverseSystemsData[systemId].INI + "\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else return val;
|
||||
}).ToArray();
|
||||
if(pos == null)
|
||||
{
|
||||
LogService.ErrorLogEvent(systemId);
|
||||
}
|
||||
else UniverseSystemsData[systemId].Objects[UniverseSystemsData[systemId].Objects.Count - 1].Pos = pos;
|
||||
}
|
||||
if (data.Contains("base ="))
|
||||
{
|
||||
var baseID = (data.Substring(6, data.Length - 6)).Trim();
|
||||
UniverseSystemsData[systemId].Objects[UniverseSystemsData[systemId].Objects.Count - 1].BaseID = baseID;
|
||||
}
|
||||
if (data.Contains("ids_name ="))
|
||||
{
|
||||
var idsName = (data.Substring(10, data.Length - 10)).Trim();
|
||||
UniverseSystemsData[systemId].Objects[UniverseSystemsData[systemId].Objects.Count - 1].IdsName = idsName;
|
||||
}
|
||||
if (data.Contains("archetype ="))
|
||||
{
|
||||
var archetype = (data.Substring(11, data.Length - 11)).Trim();
|
||||
UniverseSystemsData[systemId].Objects[UniverseSystemsData[systemId].Objects.Count - 1].Archetype = archetype;
|
||||
}
|
||||
if (data.Contains("loadout ="))
|
||||
{
|
||||
var loadout = (data.Substring(9, data.Length - 9)).Trim();
|
||||
UniverseSystemsData[systemId].Objects[UniverseSystemsData[systemId].Objects.Count - 1].Loadout = loadout;
|
||||
}
|
||||
if (data.Contains("goto =") && !data.Contains(';'))
|
||||
{
|
||||
var loadout = (data.Substring(6, data.Length - 6)).Trim().ToLower();
|
||||
var idS = loadout.Substring(0, loadout.IndexOf(','));
|
||||
var nameS = SystemNamesID[idS];
|
||||
UniverseSystemsData[systemId].Objects[UniverseSystemsData[systemId].Objects.Count - 1].Goto = nameS;
|
||||
UniverseSystemsData[systemId].Objects[UniverseSystemsData[systemId].Objects.Count - 1].GotoID = idS;
|
||||
}
|
||||
}
|
||||
if(Zone)
|
||||
{
|
||||
if (data.Contains("nickname ="))
|
||||
{
|
||||
var id_name = (data.Substring(10, data.Length - 10)).Trim();
|
||||
UniverseSystemsData[systemId].Zones.Add(new ZoneSystem()
|
||||
{
|
||||
ID = id_name
|
||||
});
|
||||
}
|
||||
if (data.Contains("pos ="))
|
||||
{
|
||||
var position = (data.Substring(5, data.Length - 5)).Trim();
|
||||
if (position.Contains(";"))
|
||||
position = (position.Substring(0, position.IndexOf(';')).Trim());
|
||||
int[] pos = position.Split(',').Select(n =>
|
||||
{
|
||||
var val = 0;
|
||||
n = n.Trim();
|
||||
var state = int.TryParse(n, out val);
|
||||
if (state == false)
|
||||
{
|
||||
double td = 0;
|
||||
if (n.Contains('.'))
|
||||
{
|
||||
IFormatProvider formatter = new NumberFormatInfo { NumberDecimalSeparator = "." };
|
||||
td = double.Parse(n, formatter);
|
||||
int i = (int)Math.Round(td, MidpointRounding.AwayFromZero);
|
||||
val = i;
|
||||
return val;
|
||||
}
|
||||
else
|
||||
{
|
||||
File.AppendAllText("log.txt", "Error Parse Position - " + position + " - " + UniverseSystemsData[systemId].INI + "\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else return val;
|
||||
}).ToArray();
|
||||
if (pos == null)
|
||||
{
|
||||
LogService.ErrorLogEvent(systemId);
|
||||
}
|
||||
else UniverseSystemsData[systemId].Zones[UniverseSystemsData[systemId].Zones.Count - 1].Pos = pos;
|
||||
}
|
||||
}
|
||||
data = sr.ReadLine();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение человекочитаемого наименования
|
||||
/// </summary>
|
||||
/// <param name="id">идентификатор элемента объекта</param>
|
||||
/// <param name="baseId">идентификатор объекта</param>
|
||||
/// <returns>список наименований</returns>
|
||||
public List<string> GetNameSystem(int id, string baseId)
|
||||
{
|
||||
string[] dlls = new string[] { "NameResources.dll", "SBM.dll", "SBM2.dll", "SBM3.dll" };
|
||||
var names = new List<string>();
|
||||
foreach(string dll in dlls)
|
||||
{
|
||||
string name = ExtractStringFromDLL(dll, id);
|
||||
if (!string.IsNullOrEmpty(name))
|
||||
{
|
||||
if(!names.Contains(name))
|
||||
{
|
||||
names.Add(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(names.Count == 0)
|
||||
{
|
||||
names.Add("НЕТ НАЗВАНИЙ");
|
||||
LogService.ErrorLogEvent($"[Имя объекта системы][{baseId}] id: " + id + " - не содержит названия");
|
||||
}
|
||||
return names;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Обновление содержимого ключевых элементов Combobox
|
||||
/// </summary>
|
||||
private void LoadComboboxData(ComboBox roadStart, ComboBox roadStop, ComboBox systems)
|
||||
{
|
||||
int resultCountSystem = 0;
|
||||
var countCurrSys = 0;
|
||||
ArraySystemsCombobox = new string[UniverseSystemsData.Count];
|
||||
var dirInfoSystems = new DirectoryInfo("SYSTEMS");
|
||||
var dirInfoArray = dirInfoSystems.GetDirectories();
|
||||
//формирую список идентификаторов систем
|
||||
foreach (var dirInfo in dirInfoArray)
|
||||
{
|
||||
var dirName = dirInfo.ToString().ToLower();
|
||||
if (UniverseSystemsData.ContainsKey(dirName))
|
||||
{
|
||||
resultCountSystem++;
|
||||
var roadStartData = new ComboBoxItem();
|
||||
roadStartData.Text = (string.IsNullOrEmpty(UniverseSystemsData[dirName].Name) ? UniverseSystemsData[dirName].Id : UniverseSystemsData[dirName].Name);
|
||||
roadStartData.ID = UniverseSystemsData[dirName].Id;
|
||||
roadStart.BeginInvoke(new Action(() =>
|
||||
{
|
||||
roadStart.Items.Add(roadStartData);
|
||||
roadStart.SelectedIndex = 0;
|
||||
}));
|
||||
var roadStopData = new ComboBoxItem();
|
||||
roadStopData.Text = (string.IsNullOrEmpty(UniverseSystemsData[dirName].Name) ? UniverseSystemsData[dirName].Id : UniverseSystemsData[dirName].Name);
|
||||
roadStopData.ID = UniverseSystemsData[dirName].Id;
|
||||
roadStop.BeginInvoke(new Action(() =>
|
||||
{
|
||||
roadStop.Items.Add(roadStopData);
|
||||
if(roadStop.Items.Count >= 2) roadStop.SelectedIndex = 1;
|
||||
}));
|
||||
|
||||
if (UniverseSystemsData[dirName].Name.Length == 0)
|
||||
{
|
||||
systems.BeginInvoke(new Action(() =>
|
||||
{
|
||||
systems.Items.Add(UniverseSystemsData[dirName].Id);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
systems.BeginInvoke(new Action(() =>
|
||||
{
|
||||
systems.Items.Add(UniverseSystemsData[dirName].Name + " | " + UniverseSystemsData[dirName].Id);
|
||||
systems.SelectedIndex = 0;
|
||||
}));
|
||||
}
|
||||
ArraySystemsCombobox[countCurrSys] = dirName;
|
||||
countCurrSys++;
|
||||
SystemsID.Add(UniverseSystemsData[dirName].Id);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultCountSystem++;
|
||||
LogService.ErrorWarningEvent("[" + resultCountSystem + "] " + dirName + " - не является системой...");
|
||||
}
|
||||
}
|
||||
ArraySystemsCombobox = ArraySystemsCombobox.Where(x => x != null).ToArray();
|
||||
LogService.LogEvent("Обновление данных в интерфейсе о системах завершено");
|
||||
|
||||
LoadRoute();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Обработка маршрутов между системами (все гиперпереходы)
|
||||
/// </summary>
|
||||
private void LoadRoute()
|
||||
{
|
||||
foreach (var sys in ArraySystemsCombobox)
|
||||
{
|
||||
foreach (var elem in UniverseSystemsData[sys].Objects.FindAll((el) => !el.ID.Contains('=') && el.ID.ToLower().Contains(sys.ToLower() + "_to")))
|
||||
{
|
||||
var name = elem.ID;
|
||||
var destiny = name.Substring(name.IndexOf('_') + 4, name.Length - 4 - sys.Length);
|
||||
if (destiny.IndexOf('_') != -1)
|
||||
destiny = destiny.Substring(0, destiny.IndexOf('_'));
|
||||
//проверяем goto
|
||||
if (elem.GotoID == null || elem.GotoID.ToLower().Contains(sys.ToLower())) continue;
|
||||
|
||||
var res = sys.ToLower() + "=" + elem.GotoID.ToLower();
|
||||
if (!res.Contains("police01"))
|
||||
HollRoads.Add(res);
|
||||
}
|
||||
HollRoads.Add("aod01=hu04"); //система ангелов тьмы
|
||||
HollRoads.Add("hu04=aod01"); //система ангелов тьмы
|
||||
HollRoads.Add("dream_system01=hi03"); //система грёз
|
||||
HollRoads.Add("hi03=dream_system01"); //система грёз
|
||||
}
|
||||
|
||||
//формирование словаря для маршрутизации в русском переводе
|
||||
for (int i = 0; i < ArraySystemsCombobox.Length; i++)
|
||||
{
|
||||
if (!SystemsNameId.ContainsKey(UniverseSystemsData[ArraySystemsCombobox[i]].Name))
|
||||
SystemsNameId.Add(UniverseSystemsData[ArraySystemsCombobox[i]].Name, ArraySystemsCombobox[i]);
|
||||
else
|
||||
LogService.LogEvent(UniverseSystemsData[ArraySystemsCombobox[i]].Name);
|
||||
}
|
||||
|
||||
LogService.LogEvent("Список маршрутов определён и обновлён в интерфейсе");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Чтение списка баз и информации о системе
|
||||
/// </summary>
|
||||
private void GetAllBases(ComboBox roadStart, ComboBox roadStop, ComboBox systems)
|
||||
{
|
||||
using (var reader = new StreamReader("universe.ini"))
|
||||
{
|
||||
var line = string.Empty;
|
||||
bool systemState = false, baseState = false;
|
||||
while ((line = reader.ReadLine()) != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(line))
|
||||
{
|
||||
if (line.Contains("[system]"))
|
||||
{
|
||||
systemState = true;
|
||||
baseState = false;
|
||||
}
|
||||
if (line.Contains("[Base]"))
|
||||
{
|
||||
systemState = false;
|
||||
baseState = true;
|
||||
}
|
||||
if (systemState)
|
||||
GetSystemDataToFile(line);
|
||||
if (baseState)
|
||||
GetBaseDataToFile(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LogService.LogEvent($"Вcя информация о {UniverseSystemsData.Count} системах игры прочитана");
|
||||
LogService.LogEvent($"Все базы игры прочитаны: {UniverseBasesData.Count}");
|
||||
|
||||
LoadComboboxData(roadStart, roadStop, systems);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получает список грузов
|
||||
/// </summary>
|
||||
private void GetAllLoadouts()
|
||||
{
|
||||
//получаю список грузов
|
||||
using (var reader = new StreamReader("loadouts.ini"))
|
||||
{
|
||||
var line = string.Empty;
|
||||
bool load = false;
|
||||
while ((line = reader.ReadLine()) != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(line))
|
||||
{
|
||||
line = line.ToLower();
|
||||
if (line.Contains("[loadout]"))
|
||||
load = true;
|
||||
if (load) GetLoadout(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LogService.LogEvent($"Все грузы игры прочитаны: {Loadouts.Count}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение списка систем
|
||||
/// </summary>
|
||||
private void GetAllSystems()
|
||||
{
|
||||
using (var reader = new StreamReader("systems.ini"))
|
||||
{
|
||||
var line = string.Empty;
|
||||
while ((line = reader.ReadLine()) != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(line))
|
||||
{
|
||||
var idS = line.Substring(0, line.IndexOf('='));
|
||||
var nameS = line.Substring(line.IndexOf('=') + 1);
|
||||
SystemNamesID.Add(idS, nameS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LogService.LogEvent($"Все системы игры прочитаны: {SystemNamesID.Count}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получаение всех наименований оборудования в игре
|
||||
/// </summary>
|
||||
private void GetAllEquipments(ComboBox equipments)
|
||||
{
|
||||
using (var reader = new StreamReader("equipments.ini"))
|
||||
{
|
||||
var line = string.Empty;
|
||||
while ((line = reader.ReadLine()) != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(line))
|
||||
{
|
||||
var tmp1 = line.Substring(line.IndexOf(',') + 1, line.Length - (line.IndexOf(',') + 1));
|
||||
var tmp2 = tmp1.Substring(tmp1.IndexOf(',') + 1, tmp1.Length - (tmp1.IndexOf(',') + 1));
|
||||
var tmp3 = tmp2.Substring(tmp2.IndexOf(',') + 1, tmp2.Length - (tmp2.IndexOf(',') + 1));
|
||||
var tmp4 = tmp3.Substring(tmp3.IndexOf(',') + 1, tmp3.Length - (tmp3.IndexOf(',') + 1));
|
||||
var Id = tmp4.Substring(0, tmp4.IndexOf(',')).Trim();
|
||||
var tmp5 = tmp4.Substring(tmp4.IndexOf(',') + 1, tmp4.Length - (tmp4.IndexOf(',') + 1));
|
||||
var Name = tmp5.Substring(0, tmp5.IndexOf(',')).Trim();
|
||||
Equipments.Add(new Equipment() { Id = Id, Name = Name });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LogService.LogEvent($"Всё оброрудование игры прочитано: {Equipments.Count}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получаение всех данных по астероидным полям
|
||||
/// </summary>
|
||||
private void GetAllAsteroids()
|
||||
{
|
||||
var dirInfoSystems = new DirectoryInfo("ASTEROIDS");
|
||||
var files = dirInfoSystems.GetFiles();
|
||||
|
||||
foreach(var file in files)
|
||||
{
|
||||
if (!file.Name.Contains('_')) continue;
|
||||
|
||||
var idSys = file.Name.Substring(0, file.Name.IndexOf('_'));
|
||||
var path = Path.Combine("ASTEROIDS", file.Name);
|
||||
|
||||
//получаю список груза
|
||||
using (var reader = new StreamReader(path))
|
||||
{
|
||||
var line = string.Empty;
|
||||
bool loot = false;
|
||||
var nameZone = string.Empty;
|
||||
while ((line = reader.ReadLine()) != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(line))
|
||||
{
|
||||
if (line.Contains("[LootableZone]")) loot = true;
|
||||
if (line.Contains("[TexturePanels]")) loot = false;
|
||||
if (loot)
|
||||
{
|
||||
//Id зоны
|
||||
if(line.Contains("zone ="))
|
||||
{
|
||||
nameZone = line.Substring(line.IndexOf('=') + 1, line.Length - (line.IndexOf('=') + 1)).Trim();
|
||||
}
|
||||
//Груз астероида
|
||||
if(line.Contains("asteroid_loot_commodity ="))
|
||||
{
|
||||
var lootes = line.Substring(line.IndexOf('=') + 1, line.Length - (line.IndexOf('=') + 1)).Trim();
|
||||
|
||||
//Если система с таким ID существует, то заполняем инфу в неё
|
||||
if (SysAsteroids.ContainsKey(idSys))
|
||||
{
|
||||
SysAsteroids[idSys].Add(new LootableZone()
|
||||
{
|
||||
LootId = lootes.ToLower(),
|
||||
ZoneName = nameZone.ToLower()
|
||||
});
|
||||
}
|
||||
else //создаём такую систему со своими зонами астероидов
|
||||
{
|
||||
|
||||
SysAsteroids.Add(idSys, new List<LootableZone>() { new LootableZone()
|
||||
{
|
||||
LootId = lootes.ToLower(),
|
||||
ZoneName = nameZone.ToLower()
|
||||
}});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LogService.LogEvent($"Все астероидные поля прочитаны: {SysAsteroids.Count}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Чтение элемента из DLL
|
||||
/// </summary>
|
||||
/// <param name="file">Адрес до файла</param>
|
||||
/// <param name="number">Номер элемента</param>
|
||||
/// <returns>строка с данными</returns>
|
||||
private string ExtractStringFromDLL(string file, int number)
|
||||
{
|
||||
var lib = LoadLibrary(file);
|
||||
var resultBuilder = new StringBuilder(2048);
|
||||
LoadString(lib, number, resultBuilder, resultBuilder.Capacity);
|
||||
FreeLibrary(lib);
|
||||
return resultBuilder.ToString();
|
||||
}
|
||||
}
|
||||
}
|
86
FLCompanionByDvurechensky/Templates/template.xaml
Normal file
86
FLCompanionByDvurechensky/Templates/template.xaml
Normal file
@ -0,0 +1,86 @@
|
||||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:controls="http://schemas.panthernet.ru/graphx/">
|
||||
|
||||
<!-- VERTEX CONTROL -->
|
||||
<Style TargetType="{x:Type controls:VertexControl}">
|
||||
<Setter Property="Background" Value="#FFE3E3E3"/>
|
||||
<Setter Property="BorderThickness" Value="15,3,15,3"/>
|
||||
<Setter Property="Padding" Value="30,5,30,5"/>
|
||||
<Setter Property="BorderBrush" Value="#FF393939"/>
|
||||
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type controls:VertexControl}">
|
||||
<Border Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
CornerRadius="30,30,30,30"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<ContentPresenter Content="{TemplateBinding Vertex}" />
|
||||
</Grid>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
|
||||
<!-- VERTEX DRAGGING CONTROL -->
|
||||
<Setter Property="controls:DragBehaviour.IsDragEnabled"
|
||||
Value="True" />
|
||||
|
||||
<Setter Property="controls:HighlightBehaviour.IsHighlightEnabled" Value="False"/>
|
||||
|
||||
<Style.Triggers>
|
||||
<Trigger Property="controls:HighlightBehaviour.Highlighted" Value="True">
|
||||
<Setter Property="Background" Value="Gold"/>
|
||||
<Setter Property="BorderThickness" Value="7"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<!-- EDGE CONTROL -->
|
||||
<Style TargetType="{x:Type controls:EdgeControl}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type controls:EdgeControl}">
|
||||
<Grid>
|
||||
<Path Stroke="{TemplateBinding Foreground}"
|
||||
StrokeThickness="2" MinWidth="1" MinHeight="1"
|
||||
ToolTip="{TemplateBinding ToolTip}"
|
||||
x:Name="PART_edgePath"/>
|
||||
<controls:DefaultEdgePointer NeedRotation="true" x:Name="PART_EdgePointerForTarget" >
|
||||
<Path Data="M0,0.5 L1,1 1,0" Fill="Black" Stretch="Uniform" Width="30" Height="30"/>
|
||||
</controls:DefaultEdgePointer>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
|
||||
<Setter Property="MinWidth"
|
||||
Value="1" />
|
||||
<Setter Property="MinHeight"
|
||||
Value="1" />
|
||||
<Setter Property="Background"
|
||||
Value="Red" />
|
||||
<Setter Property="Foreground"
|
||||
Value="Black" />
|
||||
<Setter Property="Opacity"
|
||||
Value="1" />
|
||||
|
||||
<Setter Property="controls:HighlightBehaviour.IsHighlightEnabled" Value="False"/>
|
||||
|
||||
|
||||
<Style.Triggers>
|
||||
<Trigger Property="controls:HighlightBehaviour.Highlighted" Value="True">
|
||||
<Setter Property="Foreground" Value="Gold"/>
|
||||
<Setter Property="StrokeThickness" Value="5"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
@ -0,0 +1,91 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\mine_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 6000
|
||||
diffuse_color = 110, 110, 100
|
||||
ambient_color = 255, 255, 255
|
||||
ambient_increase = 20, 20, 30
|
||||
|
||||
[properties]
|
||||
flag = mine_danger_objects
|
||||
flag = danger_density_high
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_AD01_vignette_01_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_02_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_03_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_04_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_05_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_06_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_07_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_08_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_09_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_10_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_11_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_12_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_13_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_14_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_15_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD01_vignette_16_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
|
||||
[Cube]
|
||||
xaxis_rotation = 8, 40, 90, 158
|
||||
yaxis_rotation = 5, 45, 100, 135
|
||||
zaxis_rotation = 355, 45, 78, 145
|
||||
asteroid = mine_spike1, -0.900000, 0.000000, 0.050000, 110, 0, 10, mine
|
||||
asteroid = mine_spike1, 0.750000, 0.100000, 0.000000, 0, 45, 20, mine
|
||||
asteroid = mine_spike1, 0.050000, -0.750000, -0.100000, 50, 35, 40, mine
|
||||
asteroid = mine_spike1, 0.000000, 0.850000, 0.100000, 150, 15, 12, mine
|
||||
asteroid = mine_spike1, 0.100000, 0.000000, -0.850000, 40, 0, 50, mine
|
||||
asteroid = mine_spike1, -0.100000, 0.050000, 0.900000, 30, 15, 60, mine
|
||||
|
||||
[Band]
|
||||
render_parts = 10
|
||||
shape = asteroid_belt_mines
|
||||
height = 7000
|
||||
offset_dist = 6000
|
||||
fade = 0.800000, 1.000000, 10, 11
|
||||
texture_aspect = 0.750000
|
||||
color_shift = 0.600000, 0.600000, 0.700000
|
||||
vert_increase = 1
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 10000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = spike_mine_tri
|
||||
size = 200, 200
|
@ -0,0 +1,60 @@
|
||||
[Field]
|
||||
cube_size = 500 ;400
|
||||
fill_dist = 5000 ;1100
|
||||
diffuse_color = 210, 0, 0
|
||||
ambient_color = 255, 225, 225
|
||||
ambient_increase = 20, 30, 255
|
||||
empty_cube_frequency = 0.100000
|
||||
max_alpha = 0.900000
|
||||
|
||||
[properties]
|
||||
flag = mine_danger_objects
|
||||
flag = danger_density_high
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_AD02_vignette_01_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD02_vignette_02_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD02_vignette_03_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD02_01_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD02_02_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_AD02_03_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
|
||||
[Cube]
|
||||
xaxis_rotation = 8, 40, 90, 158
|
||||
yaxis_rotation = 5, 45, 100, 135
|
||||
zaxis_rotation = 355, 45, 78, 145
|
||||
asteroid = mine_spike2, -0.900000, 0.000000, 0.050000, 110, 0, 10, mine
|
||||
asteroid = mine_spike2, 0.750000, 0.100000, 0.000000, 0, 45, 20, mine
|
||||
asteroid = mine_spike2, 0.050000, -0.750000, -0.100000, 50, 35, 40, mine
|
||||
asteroid = mine_spike2, 0.000000, 0.850000, 0.100000, 150, 15, 12, mine
|
||||
asteroid = mine_spike2, 0.100000, 0.000000, -0.850000, 40, 0, 50, mine
|
||||
asteroid = mine_spike2, -0.100000, 0.050000, 0.900000, 30, 15, 60, mine
|
||||
|
||||
[Band]
|
||||
render_parts = 10
|
||||
shape = asteroid_belt_mines
|
||||
height = 7000
|
||||
offset_dist = 6000
|
||||
fade = 0.800000, 1.000000, 10, 11
|
||||
texture_aspect = 0.750000
|
||||
color_shift = 0.600000, 0.600000, 0.700000
|
||||
vert_increase = 1
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 10000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = spike_mine_tri
|
||||
size = 200, 200
|
@ -0,0 +1,201 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\mine_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 500 ;400
|
||||
fill_dist = 5000 ;1100
|
||||
diffuse_color = 1, 255, 255
|
||||
ambient_color = 1, 225, 255
|
||||
ambient_increase = 1, 255, 255
|
||||
empty_cube_frequency = 0.100000
|
||||
max_alpha = 1.000000
|
||||
|
||||
[properties]
|
||||
flag = mine_danger_objects
|
||||
flag = danger_density_high
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_ALDRIN01_mine_01_exclusion_01
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_01_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_02_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_03_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_04_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_05_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_06_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_07_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_08_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_09_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_10_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_11_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_12_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_13_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_14_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_15_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_16_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_17_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_18_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_19_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_20_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_21_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_22_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_23_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_24_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_25_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_26_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_27_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_28_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_29_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_30_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_31_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_32_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_33_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_34_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_35_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_36_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_37_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_38_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_39_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_40_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_41_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_42_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_43_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_44_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_45_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_46_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_47_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_48_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_49_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_50_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
exclusion = Zone_ALDRIN01_51_lane_access
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
|
||||
[Cube]
|
||||
xaxis_rotation = 8, 40, 90, 158
|
||||
yaxis_rotation = 5, 45, 100, 135
|
||||
zaxis_rotation = 355, 45, 78, 145
|
||||
asteroid = mine_spike3, -0.900000, 0.000000, 0.050000, 110, 0, 10, mine
|
||||
asteroid = mine_spike3, 0.750000, 0.100000, 0.000000, 0, 45, 20, mine
|
||||
asteroid = mine_spike3, 0.050000, -0.750000, -0.100000, 50, 35, 40, mine
|
||||
asteroid = mine_spike3, 0.000000, 0.850000, 0.100000, 150, 15, 12, mine
|
||||
asteroid = mine_spike3, 0.100000, 0.000000, -0.850000, 40, 0, 50, mine
|
||||
asteroid = mine_spike3, -0.100000, 0.050000, 0.900000, 30, 15, 60, mine
|
||||
|
||||
[Band]
|
||||
render_parts = 10
|
||||
shape = asteroid_belt_mines
|
||||
height = 7000
|
||||
offset_dist = 6000
|
||||
fade = 0.800000, 1.000000, 10, 11
|
||||
texture_aspect = 0.950000
|
||||
color_shift = 0.600000, 0.690000, 0.690000
|
||||
vert_increase = 1
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 10000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = spike_mine_tri
|
||||
size = 200, 200
|
@ -0,0 +1,32 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_low
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commod_Space_beetle01
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commod_Space_beetle01
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 5, 10
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = dasteroid_Space_beetle1
|
||||
count = 500
|
||||
placement_radius = 300 ;200.000000
|
||||
placement_offset = 0 ;150.000000
|
||||
max_velocity = 50.000000
|
||||
max_angular_velocity = 0.000000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
@ -0,0 +1,32 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_low
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commod_Space_beetle02
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commod_Space_beetle02
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 5, 10
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = dasteroid_Space_beetle2
|
||||
count = 500
|
||||
placement_radius = 300 ;200.000000
|
||||
placement_offset = 0 ;150.000000
|
||||
max_velocity = 50.000000
|
||||
max_angular_velocity = 0.000000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
@ -0,0 +1,105 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1500
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = SG_Necalli_Asteroid01
|
||||
count = 7
|
||||
placement_radius = 1600.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = SG_Necalli_Asteroid02
|
||||
count = 7
|
||||
placement_radius = 1600.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = SG_Necalli_Asteroid03
|
||||
count = 5
|
||||
placement_radius = 1600.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = SG_Necalli_Asteroid04
|
||||
count = 5
|
||||
placement_radius = 1600.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = SG_Necalli_Asteroid01
|
||||
count = 5
|
||||
placement_radius = 1600.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 0.800000
|
||||
size = 60, 120
|
||||
|
||||
;[Band]
|
||||
;render_parts = 6
|
||||
;shape = asteroid_belt_04
|
||||
;height = 6000
|
||||
;offset_dist = 3000
|
||||
;fade = 0.800000, 1.250000, 15, 17
|
||||
;texture_aspect = 1.000000
|
||||
;ambient_intensity = 2
|
||||
;vert_increase = 2
|
||||
;color_shift = 0.000000, 0.700000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commod_AOD_ore
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commod_AOD_ore
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 10, 25
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
||||
|
||||
[Cube]
|
||||
xaxis_rotation = 0, 0, 180, 180
|
||||
yaxis_rotation = 0, 30, 90, 195
|
||||
zaxis_rotation = 0, 0, 180, 180
|
||||
asteroid = badlands_large1_01, -0.7, 0.5, 0.5, 3, 35, 0
|
||||
asteroid = badlands_medium2_01, -0.4, -0.4, -0.7, 5, 0, 0
|
||||
asteroid = badlands_small1_01, 0.3, -0.65, 0.2, 0, 50, 8
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = dasteroid_badlands_small1
|
||||
count = 50
|
||||
placement_radius = 300 ;200.000000
|
||||
placement_offset = 0 ;150.000000
|
||||
max_velocity = 50.000000
|
||||
max_angular_velocity = 0.000000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
@ -0,0 +1,65 @@
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;2000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 120, 140, 120
|
||||
ambient_increase = 70, 70, 70
|
||||
;empty_cube_frequency = 0.500000
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_AR01_city_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = AR01_to_AR02_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[properties]
|
||||
flag = nomad_objects
|
||||
flag = Object_density_med
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nomad01_asteroid90
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nomad01_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nomad01_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nomad01_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_nomad_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 10.000000
|
||||
;max_angular_velocity = 2.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
@ -0,0 +1,74 @@
|
||||
[Field]
|
||||
cube_size = 1000 ;500
|
||||
fill_dist = 5000 ;2400
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 130, 130, 130
|
||||
ambient_increase = 50, 80, 80
|
||||
;empty_cube_frequency = 0.500000
|
||||
|
||||
[properties]
|
||||
flag = ice_objects
|
||||
flag = Object_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = AR02_to_AR01_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = AR02_planet_1_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_spike_asteroid200
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_spike_asteroid125
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_spike_asteroid200
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_spike_asteroid125
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_spike_asteroid50
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_ice_crystal_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;200.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 15.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1.000000, 1.000000, 1.000000
|
||||
;
|
@ -0,0 +1,72 @@
|
||||
[Field]
|
||||
cube_size = 1000 ;500
|
||||
fill_dist = 5000 ;2400
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 130, 130, 130
|
||||
ambient_increase = 50, 80, 80
|
||||
;empty_cube_frequency = 0.500000
|
||||
|
||||
[properties]
|
||||
flag = ice_objects
|
||||
flag = Object_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = AR03_to_AR02_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_spike_asteroid200
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_spike_asteroid125
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_spike_asteroid200
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_spike_asteroid125
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_spike_asteroid50
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_ice_crystal_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;200.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 15.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1.000000, 1.000000, 1.000000
|
||||
;
|
@ -0,0 +1,65 @@
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;2000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 120, 140, 120
|
||||
ambient_increase = 70, 70, 70
|
||||
;empty_cube_frequency = 0.500000
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = AR03_01_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = AR03_to_AR04_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[properties]
|
||||
flag = nomad_objects
|
||||
flag = Object_density_med
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nomad01_asteroid90
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nomad01_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nomad01_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nomad01_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_nomad_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 10.000000
|
||||
;max_angular_velocity = 2.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
@ -0,0 +1,88 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 30, 30, 30
|
||||
ambient_increase = 0, 0, 0
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = Object_density_med
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = AR04_to_AR03_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = AR04_to_AR05_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = Zone_AR04_planet_3_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = Zone_AR04_planet_1_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = Zone_AR04_02_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid60
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid30
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid60
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid30
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid90
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid30
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.700000, 0.700000, 0.700000
|
||||
ambient_intensity = 1.000000
|
||||
size = 60, 120
|
@ -0,0 +1,97 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\debris_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1600
|
||||
diffuse_color = 100, 100, 80
|
||||
ambient_color = 255, 255, 255
|
||||
ambient_increase = 20, 20, 30
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = Debris_objects
|
||||
flag = Object_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = AR05_to_AR06_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = Zone_AR05_04_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_med2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_large1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[Band]
|
||||
render_parts = 10
|
||||
shape = debris_belt_04
|
||||
height = 6000
|
||||
offset_dist = 2500
|
||||
fade = 1.100000, 1.450000, 10, 11
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 0.900000, 0.900000, 0.900000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;150
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.300000
|
||||
shape = debris_tri
|
||||
color_shift = 1, 1, 1
|
||||
ambient_intensity = 1.000000
|
||||
size = 50, 130
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_debris_small1
|
||||
;count = 5
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 8.000000
|
||||
;max_angular_velocity = 2.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_metal
|
||||
asteroid_loot_commodity = commodity_scrap_metal
|
||||
dynamic_loot_container = lootcrate_ast_loot_metal
|
||||
dynamic_loot_commodity = commodity_scrap_metal
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 50, 100
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 2
|
@ -0,0 +1,105 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\debris_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1600
|
||||
diffuse_color = 100, 100, 80
|
||||
ambient_color = 255, 255, 255
|
||||
ambient_increase = 20, 20, 30
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = Debris_objects
|
||||
flag = Object_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = AR07_to_AR06_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = AR07_Sun1_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = AR07_01_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = AR07_02_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = AR05_to_AR06_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_med2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_large1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[Band]
|
||||
render_parts = 10
|
||||
shape = debris_belt_04
|
||||
height = 6000
|
||||
offset_dist = 2500
|
||||
fade = 1.100000, 1.450000, 10, 11
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 0.900000, 0.900000, 0.900000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;150
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.300000
|
||||
shape = debris_tri
|
||||
color_shift = 1, 1, 1
|
||||
ambient_intensity = 1.000000
|
||||
size = 50, 130
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_debris_small1
|
||||
;count = 5
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 8.000000
|
||||
;max_angular_velocity = 2.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_metal
|
||||
asteroid_loot_commodity = commodity_scrap_metal
|
||||
dynamic_loot_container = lootcrate_ast_loot_metal
|
||||
dynamic_loot_commodity = commodity_scrap_metal
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 50, 100
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
@ -0,0 +1,91 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\debris_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1600
|
||||
diffuse_color = 100, 100, 80
|
||||
ambient_color = 255, 255, 255
|
||||
ambient_increase = 20, 20, 30
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = Debris_objects
|
||||
flag = Object_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_med2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_large1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[Band]
|
||||
render_parts = 10
|
||||
shape = debris_belt_04
|
||||
height = 6000
|
||||
offset_dist = 2500
|
||||
fade = 1.100000, 1.450000, 10, 11
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 0.900000, 0.900000, 0.900000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;150
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.300000
|
||||
shape = debris_tri
|
||||
color_shift = 1, 1, 1
|
||||
ambient_intensity = 1.000000
|
||||
size = 50, 130
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_debris_small1
|
||||
;count = 5
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 8.000000
|
||||
;max_angular_velocity = 2.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_metal
|
||||
asteroid_loot_commodity = commodity_scrap_metal
|
||||
dynamic_loot_container = lootcrate_ast_loot_metal
|
||||
dynamic_loot_commodity = commodity_scrap_metal
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 50, 100
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
@ -0,0 +1,88 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x301
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x302
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x303
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x302
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x303
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 0.800000
|
||||
size = 60, 120
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 6000
|
||||
offset_dist = 3000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
ambient_intensity = 2
|
||||
vert_increase = 2
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_kaaron
|
||||
asteroid_loot_commodity = commodity_kaaron
|
||||
dynamic_loot_container = lootcrate_ast_loot_kaaron
|
||||
dynamic_loot_commodity = commodity_kaaron
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 50, 90
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
@ -0,0 +1,93 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = DK_Asteroid_exclusion01
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x301
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x302
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x303
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x302
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x303
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 0.800000
|
||||
size = 60, 120
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 6000
|
||||
offset_dist = 3000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
ambient_intensity = 2
|
||||
vert_increase = 2
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_nukleon
|
||||
asteroid_loot_commodity = commodity_nukleon
|
||||
dynamic_loot_container = lootcrate_ast_loot_nukleon
|
||||
dynamic_loot_commodity = commodity_nukleon
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 100, 150
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
@ -0,0 +1,91 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\debris_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1600
|
||||
diffuse_color = 100, 100, 80
|
||||
ambient_color = 255, 255, 255
|
||||
ambient_increase = 20, 20, 30
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = Debris_objects
|
||||
flag = Object_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_med2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_large1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[Band]
|
||||
render_parts = 10
|
||||
shape = debris_belt_04
|
||||
height = 6000
|
||||
offset_dist = 2500
|
||||
fade = 1.100000, 1.450000, 10, 11
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 0.900000, 0.900000, 0.900000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;150
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.300000
|
||||
shape = debris_tri
|
||||
color_shift = 1, 1, 1
|
||||
ambient_intensity = 1.000000
|
||||
size = 50, 130
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_debris_small1
|
||||
;count = 5
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 8.000000
|
||||
;max_angular_velocity = 2.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_metal
|
||||
asteroid_loot_commodity = commodity_scrap_metal
|
||||
dynamic_loot_container = lootcrate_ast_loot_metal
|
||||
dynamic_loot_commodity = commodity_scrap_metal
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 50, 100
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
@ -0,0 +1,94 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = AR10_to_AR09_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = AR10_01_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x301
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x302
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x303
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x302
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x303
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 0.800000
|
||||
size = 60, 120
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 6000
|
||||
offset_dist = 3000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
ambient_intensity = 2
|
||||
vert_increase = 2
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_niobium
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_niobium
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 45, 65
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
@ -0,0 +1,62 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;355
|
||||
fill_dist = 5000 ;1250
|
||||
tint_field = 15, 15, 15
|
||||
max_alpha = 1.000000
|
||||
;empty_cube_frequency = 0.200000
|
||||
|
||||
[properties]
|
||||
flag = badland_danger_objects
|
||||
flag = danger_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_large1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_medium2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_small1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_badlands_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;200.000000
|
||||
;placement_offset = 0 ;150.000000
|
||||
;max_velocity = 50.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1.000000, 1.000000, 1.000000
|
||||
;
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_everlasting_gobstopper
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_everlasting_gobstopper
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 10, 17
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
@ -0,0 +1,88 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x304
|
||||
count = 10
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x305
|
||||
count = 10
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x306
|
||||
count = 10
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x307
|
||||
count = 10
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x304
|
||||
count = 10
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 0.800000
|
||||
size = 60, 120
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 6000
|
||||
offset_dist = 3000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
ambient_intensity = 2
|
||||
vert_increase = 2
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_Balagar
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_Balagar
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 45, 65
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
@ -0,0 +1,91 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\debris_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1600
|
||||
diffuse_color = 100, 100, 80
|
||||
ambient_color = 255, 255, 255
|
||||
ambient_increase = 20, 20, 30
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = Debris_objects
|
||||
flag = Object_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_med2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_large1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[Band]
|
||||
render_parts = 10
|
||||
shape = debris_belt_04
|
||||
height = 6000
|
||||
offset_dist = 2500
|
||||
fade = 1.100000, 1.450000, 10, 11
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 0.900000, 0.900000, 0.900000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;150
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.300000
|
||||
shape = debris_tri
|
||||
color_shift = 1, 1, 1
|
||||
ambient_intensity = 1.000000
|
||||
size = 50, 130
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_debris_small1
|
||||
;count = 5
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 8.000000
|
||||
;max_angular_velocity = 2.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_metal
|
||||
asteroid_loot_commodity = commodity_scrap_metal
|
||||
dynamic_loot_container = lootcrate_ast_loot_metal
|
||||
dynamic_loot_commodity = commodity_scrap_metal
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 50, 100
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
91
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/Am01__03.ini
Normal file
91
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/Am01__03.ini
Normal file
@ -0,0 +1,91 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 170, 220, 255
|
||||
ambient_color = 60, 60, 60
|
||||
ambient_increase = 0, 0, 0
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = Object_density_med
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid10
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid60
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid60
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid30
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid60
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid60
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
zone = zone_ew01_img_mining_area
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_niobium
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_niobium
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 1, 1
|
||||
asteroid_loot_difficulty = 20
|
||||
dynamic_loot_difficulty = 2
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_niobium
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_niobium
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 1, 1
|
||||
asteroid_loot_difficulty = 70
|
||||
dynamic_loot_difficulty = 1
|
||||
|
||||
[FlExplorer]
|
||||
template = solar\asteroids\ew01_malvinas_mineable_asteroids.ini
|
65
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/Am01__04.ini
Normal file
65
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/Am01__04.ini
Normal file
@ -0,0 +1,65 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;355
|
||||
fill_dist = 5000 ;1250
|
||||
tint_field = 15, 15, 15
|
||||
max_alpha = 1.000000
|
||||
;empty_cube_frequency = 0.200000
|
||||
|
||||
[properties]
|
||||
flag = badland_danger_objects
|
||||
flag = danger_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_large1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_medium2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_small1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_badlands_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;200.000000
|
||||
;placement_offset = 0 ;150.000000
|
||||
;max_velocity = 50.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1.000000, 1.000000, 1.000000
|
||||
;
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_everlasting_gobstopper
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_everlasting_gobstopper
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 25, 50
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
||||
|
||||
[FlExplorer]
|
||||
template = solar\asteroids\li01_badlands_asteroids.ini
|
87
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/Am02__02.ini
Normal file
87
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/Am02__02.ini
Normal file
@ -0,0 +1,87 @@
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1500
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 255, 255, 255
|
||||
ambient_increase = 40, 40, 40
|
||||
;empty_cube_frequency = 0.400000
|
||||
|
||||
[properties]
|
||||
flag = lava_objects
|
||||
flag = object_density_med
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = lava02_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = lava02_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = lava02_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = lava02_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = lava02_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = lava02_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_lava02
|
||||
;count = 10
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 10.000000
|
||||
;max_angular_velocity = 2.000000
|
||||
;color_shift = 1, 0.500000, 0
|
||||
;
|
||||
[LootableZone]
|
||||
zone = zone_Rh05_Kruger_diamonds
|
||||
asteroid_loot_container = lootcrate_ast_loot_diamonds
|
||||
asteroid_loot_commodity = commodity_diamonds
|
||||
dynamic_loot_container = lootcrate_ast_loot_diamonds
|
||||
dynamic_loot_commodity = commodity_diamonds
|
||||
asteroid_loot_count = 1, 30
|
||||
dynamic_loot_count = 1, 30 ;1, 1
|
||||
asteroid_loot_difficulty = 9 ;70
|
||||
dynamic_loot_difficulty = 9 ;10
|
104
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/Am02__03.ini
Normal file
104
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/Am02__03.ini
Normal file
@ -0,0 +1,104 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1500
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 60, 60, 60
|
||||
;empty_cube_frequency = 0.400000
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_med
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_Am02_to_Am01_hole
|
||||
exclude_billboards = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[Band]
|
||||
render_parts = 4
|
||||
shape = asteroid_belt_04
|
||||
height = 5000
|
||||
offset_dist = 3000
|
||||
fade = 1.000000, 1.350000, 10, 14
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;200
|
||||
start_dist = 2500 ;1100
|
||||
fade_dist_percent = 0.5 ;0.350000
|
||||
shape = roid_rock_tri
|
||||
color_shift = 1, 1, 1
|
||||
ambient_intensity = 1.000000
|
||||
size = 30, 110
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_rock_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 15.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1.000000, 1.000000, 1.000000
|
||||
;
|
@ -0,0 +1,20 @@
|
||||
[Field]
|
||||
cube_size = 400
|
||||
fill_dist = 1100
|
||||
diffuse_color = 100, 150, 255
|
||||
ambient_color = 100, 200, 255
|
||||
ambient_increase = 20, 30, 255
|
||||
empty_cube_frequency = 0
|
||||
max_alpha = 0.4
|
||||
|
||||
[properties]
|
||||
flag = danger_density_med
|
||||
flag = gas_danger_objects
|
||||
|
||||
[Cube]
|
||||
asteroid = mine_oxygen, 0.8, -0.5, -0.2, 15, 90, 120, mine
|
||||
asteroid = mine_oxygen, -0.3, 0.6, 0.8, 85, 0, 185, mine
|
||||
asteroid = mine_oxygen, 0.4, -0.7, -0.2, 15, 90, 120, mine
|
||||
asteroid = mine_oxygen, -0.3, -0.3, 0.8, 85, 0, 185, mine
|
||||
asteroid = mine_oxygen, -0.7, 0.4, -0.4, 75, 30, 70, mine
|
||||
|
@ -0,0 +1,49 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
tint_field = 15, 15, 15
|
||||
max_alpha = 1.000000
|
||||
|
||||
[properties]
|
||||
flag = badland_danger_objects
|
||||
flag = danger_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_large1
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_medium2
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_small1
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_water
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_water
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 90, 140
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 2
|
98
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BR08__01.ini
Normal file
98
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BR08__01.ini
Normal file
@ -0,0 +1,98 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1700
|
||||
tint_field = 160, 225, 200
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = Object_density_med
|
||||
flag = danger_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_BR08_pop_ambient_01
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclusion = Zone_BR08_Tradelane_01
|
||||
exclusion = Zone_BR08_Tradelane_02
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid90
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid90
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;500
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.500000
|
||||
shape = uranium_tri
|
||||
color_shift = 0.750000, 0.750000, 0.750000
|
||||
ambient_intensity = 1
|
||||
size = 80, 110
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_uranium
|
||||
;count = 10
|
||||
;placement_radius = 300 ;125.000000
|
||||
;placement_offset = 0 ;80.000000
|
||||
;max_velocity = 10.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
||||
[Band]
|
||||
render_parts = 4
|
||||
shape = asteroid_belt_04
|
||||
height = 8000
|
||||
offset_dist = 5000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 1.050000, 0.850000, 0.850000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[FlExplorer]
|
||||
template = solar\asteroids\br04_ld14_rock_asteroid_field.ini
|
96
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BR08__03.ini
Normal file
96
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BR08__03.ini
Normal file
@ -0,0 +1,96 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1700
|
||||
tint_field = 160, 225, 200
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = Object_density_med
|
||||
flag = danger_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_BR08_vignette_03_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid90
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid90
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;500
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.500000
|
||||
shape = uranium_tri
|
||||
color_shift = 0.750000, 0.750000, 0.750000
|
||||
ambient_intensity = 1
|
||||
size = 80, 110
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_uranium
|
||||
;count = 10
|
||||
;placement_radius = 300 ;125.000000
|
||||
;placement_offset = 0 ;80.000000
|
||||
;max_velocity = 10.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
||||
[Band]
|
||||
render_parts = 4
|
||||
shape = asteroid_belt_04
|
||||
height = 8000
|
||||
offset_dist = 5000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 1.050000, 0.850000, 0.850000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[FlExplorer]
|
||||
template = solar\asteroids\br04_ld14_rock_asteroid_field.ini
|
116
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BR10__01.ini
Normal file
116
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BR10__01.ini
Normal file
@ -0,0 +1,116 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1550
|
||||
diffuse_color = 220, 220, 180
|
||||
ambient_color = 120, 120, 120
|
||||
ambient_increase = 70, 40, 30
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = Object_density_med
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_BR10_vignette_01_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 4000
|
||||
offset_dist = 2000
|
||||
fade = 1.000000, 1.350000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;300
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.350000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 1.000000
|
||||
size = 70, 100
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_mineable_small1
|
||||
;count = 9
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 15.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1.000000, 1.000000, 1.000000
|
||||
;
|
||||
|
||||
[FlExplorer]
|
||||
template = solar\asteroids\br01_somerset_rock_asteroid_field.ini
|
87
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BR10__02.ini
Normal file
87
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BR10__02.ini
Normal file
@ -0,0 +1,87 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1650
|
||||
tint_field = 255, 255, 255
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = Object_density_med
|
||||
flag = DANGER_DENSITY_MED
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable2_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable2_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable2_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[Cube]
|
||||
asteroid = mine_spike_mineable, -0.200000, -0.100000, -0.600000, 105, 160, 25, mine
|
||||
asteroid = mine_spike_mineable, 0.500000, -0.200000, -0.600000, 75, 30, 70, mine
|
||||
asteroid = mine_spike_mineable, -0.900000, 0.600000, -0.800000, 75, 30, 70, mine
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 3000
|
||||
offset_dist = 2000
|
||||
fade = 1.000000, 1.350000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;400
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.350000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.700000, 0.700000, 0.700000
|
||||
ambient_intensity = 1.000000
|
||||
size = 60, 70
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_gold
|
||||
;count = 10
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 15.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1.000000, 1.000000, 1.000000
|
||||
;
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_gold
|
||||
asteroid_loot_commodity = commodity_gold
|
||||
dynamic_loot_container = lootcrate_ast_loot_gold
|
||||
dynamic_loot_commodity = commodity_gold
|
||||
asteroid_loot_count = 1, 30
|
||||
dynamic_loot_count = 1, 30 ;1, 1
|
||||
asteroid_loot_difficulty = 9 ;40
|
||||
dynamic_loot_difficulty = 9 ;2
|
||||
|
||||
[FlExplorer]
|
||||
template = solar\asteroids\br05_molly_gold_field.ini
|
@ -0,0 +1,89 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1700
|
||||
tint_field = 160, 225, 200
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = Object_density_med
|
||||
flag = danger_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid90
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid90
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = uranium_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;500
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.500000
|
||||
shape = uranium_tri
|
||||
color_shift = 0.750000, 0.750000, 0.750000
|
||||
ambient_intensity = 1
|
||||
size = 80, 110
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_uranium
|
||||
;count = 10
|
||||
;placement_radius = 300 ;125.000000
|
||||
;placement_offset = 0 ;80.000000
|
||||
;max_velocity = 10.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
||||
[Band]
|
||||
render_parts = 4
|
||||
shape = asteroid_belt_04
|
||||
height = 8000
|
||||
offset_dist = 5000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 1.050000, 0.850000, 0.850000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
@ -0,0 +1,93 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_BSG03_vignette_01_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x301
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x302
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x303
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x302
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x303
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 0.800000
|
||||
size = 60, 120
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 6000
|
||||
offset_dist = 3000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
ambient_intensity = 2
|
||||
vert_increase = 2
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_Groytoz
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_Groytoz
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 60, 80
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 2
|
62
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BW11__01.ini
Normal file
62
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BW11__01.ini
Normal file
@ -0,0 +1,62 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1800
|
||||
diffuse_color = 150, 200, 255
|
||||
ambient_color = 30, 30, 30
|
||||
ambient_increase = 0, 50, 80
|
||||
;empty_cube_frequency = 0.700000
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = Object_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_BW11_vignette_01_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_dust
|
||||
height = 3000
|
||||
offset_dist = 1000
|
||||
fade = 1.000000, 1.350000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;600
|
||||
start_dist = 2500 ;800
|
||||
fade_dist_percent = 0.5 ;0.200000
|
||||
shape = roid_rock_tri
|
||||
color_shift = 0.500000, 0.800000, 1
|
||||
ambient_intensity = 2
|
||||
size = 10, 40
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_rock_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;250.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 15.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 0.500000, 0.500000, 0.500000
|
||||
;
|
||||
|
||||
[FlExplorer]
|
||||
template = solar\asteroids\bw06_nemuro_dust_field.ini
|
@ -0,0 +1,49 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
tint_field = 15, 15, 15
|
||||
max_alpha = 1.000000
|
||||
|
||||
[properties]
|
||||
flag = badland_danger_objects
|
||||
flag = danger_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_large1
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_medium2
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_small1
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_Titan
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_Titan
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 25, 50
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
74
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BW12__03.ini
Normal file
74
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BW12__03.ini
Normal file
@ -0,0 +1,74 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\ice_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;500
|
||||
fill_dist = 5000 ;2400
|
||||
diffuse_color = 170, 220, 255
|
||||
ambient_color = 60, 70, 100
|
||||
ambient_increase = 70, 120, 160
|
||||
;empty_cube_frequency = 0.700000
|
||||
|
||||
[properties]
|
||||
flag = ice_objects
|
||||
flag = Object_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_block_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_block_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = ice_block_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;200
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.350000
|
||||
shape = asteroid_ice_block
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
ambient_intensity = 1.000000
|
||||
size = 20, 70
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_ice_crystal_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;200.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 15.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1.000000, 1.000000, 1.000000
|
||||
;
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_water
|
||||
asteroid_loot_commodity = commodity_water
|
||||
dynamic_loot_container = lootcrate_ast_loot_water
|
||||
dynamic_loot_commodity = commodity_water
|
||||
asteroid_loot_count = 1, 30
|
||||
dynamic_loot_count = 1, 30 ;1, 1
|
||||
asteroid_loot_difficulty = 9 ;30
|
||||
dynamic_loot_difficulty = 9 ;5
|
||||
|
||||
[FlExplorer]
|
||||
template = solar\asteroids\ew01_torres_ice_crystal_field.ini
|
107
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BW12__06.ini
Normal file
107
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/BW12__06.ini
Normal file
@ -0,0 +1,107 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1200
|
||||
diffuse_color = 170, 220, 255
|
||||
ambient_color = 60, 60, 60
|
||||
ambient_increase = 0, 0, 0
|
||||
;empty_cube_frequency = 0.500000
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = Object_density_med
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_BW12_vignette_01_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = mineable1_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_mineable_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 10.000000
|
||||
;max_angular_velocity = 2.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
||||
[LootableZone]
|
||||
zone = zone_ew01_img_mining_area
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_niobium
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_niobium
|
||||
asteroid_loot_count = 1, 30
|
||||
dynamic_loot_count = 1, 30 ;1, 1
|
||||
asteroid_loot_difficulty = 9 ;20
|
||||
dynamic_loot_difficulty = 9 ;2
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_niobium
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_niobium
|
||||
asteroid_loot_count = 1, 30
|
||||
dynamic_loot_count = 1, 30 ;1, 1
|
||||
asteroid_loot_difficulty = 9 ;70
|
||||
dynamic_loot_difficulty = 9 ;1
|
||||
|
||||
[FlExplorer]
|
||||
template = solar\asteroids\ew01_malvinas_mineable_asteroids.ini
|
@ -0,0 +1,93 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1600
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 30, 30, 30
|
||||
ambient_increase = 0, 0, 0
|
||||
;empty_cube_frequency = 0.400000
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = Object_density_med
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_BW13_vignette_02_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid60
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid90
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = nonmineable_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;400
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.350000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.700000, 0.700000, 0.700000
|
||||
ambient_intensity = 1.000000
|
||||
size = 60, 120
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_rock_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 15.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1.000000, 1.000000, 1.000000
|
||||
;
|
@ -0,0 +1,91 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\debris_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1600
|
||||
diffuse_color = 100, 100, 80
|
||||
ambient_color = 255, 255, 255
|
||||
ambient_increase = 20, 20, 30
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = Debris_objects
|
||||
flag = Object_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_med2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_large1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[Band]
|
||||
render_parts = 10
|
||||
shape = debris_belt_04
|
||||
height = 6000
|
||||
offset_dist = 2500
|
||||
fade = 1.100000, 1.450000, 10, 11
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 0.900000, 0.900000, 0.900000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;150
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.300000
|
||||
shape = debris_tri
|
||||
color_shift = 1, 1, 1
|
||||
ambient_intensity = 1.000000
|
||||
size = 50, 130
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_debris_small1
|
||||
;count = 5
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 8.000000
|
||||
;max_angular_velocity = 2.000000
|
||||
;color_shift = 1, 1, 1
|
||||
;
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_metal
|
||||
asteroid_loot_commodity = commodity_scrap_metal
|
||||
dynamic_loot_container = lootcrate_ast_loot_metal
|
||||
dynamic_loot_commodity = commodity_scrap_metal
|
||||
asteroid_loot_count = 1, 30
|
||||
dynamic_loot_count = 1, 30 ;1, 1
|
||||
asteroid_loot_difficulty = 9 ;50
|
||||
dynamic_loot_difficulty = 9 ;3
|
@ -0,0 +1,47 @@
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 255, 255, 255
|
||||
ambient_increase = 0, 0, 0
|
||||
|
||||
[properties]
|
||||
flag = debris_objects
|
||||
flag = Object_density_med
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small1
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small2
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = debris_small2
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_metal
|
||||
asteroid_loot_commodity = commodity_scrap_metal
|
||||
dynamic_loot_container = lootcrate_ast_loot_metal
|
||||
dynamic_loot_commodity = commodity_scrap_metal
|
||||
asteroid_loot_count = 1, 30
|
||||
dynamic_loot_count = 25, 50
|
||||
asteroid_loot_difficulty = 9
|
||||
dynamic_loot_difficulty = 9
|
112
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/Br03__01.ini
Normal file
112
FLCompanionByDvurechensky/bin/Debug/ASTEROIDS/Br03__01.ini
Normal file
@ -0,0 +1,112 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000 ;400
|
||||
fill_dist = 5000 ;1550
|
||||
diffuse_color = 220, 220, 180
|
||||
ambient_color = 120, 120, 120
|
||||
ambient_increase = 70, 40, 30
|
||||
;empty_cube_frequency = 0.600000
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = Object_density_med
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid30
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 4000
|
||||
offset_dist = 2000
|
||||
fade = 1.000000, 1.350000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
ambient_intensity = 1.000000
|
||||
vert_increase = 2
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000 ;300
|
||||
start_dist = 2500 ;1000
|
||||
fade_dist_percent = 0.5 ;0.350000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 1.000000
|
||||
size = 70, 100
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_mineable_small1
|
||||
;count = 9
|
||||
;placement_radius = 300 ;150.000000
|
||||
;placement_offset = 0 ;90.000000
|
||||
;max_velocity = 15.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 1.000000, 1.000000, 1.000000
|
||||
;
|
||||
|
||||
[FlExplorer]
|
||||
template = solar\asteroids\br01_somerset_rock_asteroid_field.ini
|
@ -0,0 +1,49 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
tint_field = 15, 15, 15
|
||||
max_alpha = 1.000000
|
||||
|
||||
[properties]
|
||||
flag = badland_danger_objects
|
||||
flag = danger_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_large1
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_medium2
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_small1
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_GoldOre
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_GoldOre
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 25, 50
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
@ -0,0 +1,73 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = badland_danger_objects
|
||||
flag = danger_density_low
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_large1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_medium2
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = badlands_small1
|
||||
count = 100 ;LAst
|
||||
placement_radius = 1500.000000 ;LAst
|
||||
placement_offset = 0.000000 ;LAst
|
||||
max_velocity = 0.600000 ;LAst
|
||||
max_angular_velocity = 0.300000 ;LAst
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 6000
|
||||
offset_dist = 3000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
ambient_intensity = 2
|
||||
vert_increase = 2
|
||||
color_shift = 0.000000, 0.700000, 1.000000
|
||||
|
||||
;[Cube]
|
||||
|
||||
;[DynamicAsteroids]
|
||||
;asteroid = dasteroid_badlands_small1
|
||||
;count = 10
|
||||
;placement_radius = 300 ;200.000000
|
||||
;placement_offset = 0 ;150.000000
|
||||
;max_velocity = 50.000000
|
||||
;max_angular_velocity = 3.000000
|
||||
;color_shift = 0.000000, 0.700000, 1.000000
|
||||
;
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_tanzanite
|
||||
asteroid_loot_commodity = commodity_tanzanite
|
||||
dynamic_loot_container = lootcrate_ast_loot_tanzanite
|
||||
dynamic_loot_commodity = commodity_tanzanite
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 25, 50
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 0
|
@ -0,0 +1,83 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_CN01_asteroids_01_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid60
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid10
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid90
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = minedout_asteroid60
|
||||
count = 100
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 0.800000
|
||||
size = 60, 120
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 6000
|
||||
offset_dist = 3000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
ambient_intensity = 2
|
||||
vert_increase = 2
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
@ -0,0 +1,93 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_CN02_pop_ambient_02
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x301
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x302
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x303
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x302
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x303
|
||||
count = 5
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 0.800000
|
||||
size = 60, 120
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 6000
|
||||
offset_dist = 3000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
ambient_intensity = 2
|
||||
vert_increase = 2
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_Groytoz
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_Groytoz
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 60, 80
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 2
|
@ -0,0 +1,93 @@
|
||||
[TexturePanels]
|
||||
file = solar\asteroids\rock_shapes.ini
|
||||
|
||||
[Field]
|
||||
cube_size = 1000
|
||||
fill_dist = 5000
|
||||
diffuse_color = 255, 255, 255
|
||||
ambient_color = 40, 40, 40
|
||||
ambient_increase = 90, 90, 90
|
||||
|
||||
[properties]
|
||||
flag = rock_objects
|
||||
flag = object_density_low
|
||||
|
||||
[Exclusion Zones]
|
||||
exclusion = Zone_CN02_vignette_02_exclusion
|
||||
exclude_dynamic_asteroids = 1
|
||||
exclude_billboards = 1
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x304
|
||||
count = 10
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x305
|
||||
count = 10
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x306
|
||||
count = 10
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x307
|
||||
count = 10
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[DynamicAsteroids]
|
||||
asteroid = rock_asteroid_x304
|
||||
count = 10
|
||||
placement_radius = 1500.000000
|
||||
placement_offset = 0.000000
|
||||
max_velocity = 0.600000
|
||||
max_angular_velocity = 0.300000
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[AsteroidBillboards]
|
||||
count = 1000
|
||||
start_dist = 2500
|
||||
fade_dist_percent = 0.500000
|
||||
shape = mine_rock_tri
|
||||
color_shift = 0.800000, 0.800000, 0.800000
|
||||
ambient_intensity = 0.800000
|
||||
size = 60, 120
|
||||
|
||||
[Band]
|
||||
render_parts = 6
|
||||
shape = asteroid_belt_04
|
||||
height = 6000
|
||||
offset_dist = 3000
|
||||
fade = 0.800000, 1.250000, 15, 17
|
||||
texture_aspect = 1.000000
|
||||
ambient_intensity = 2
|
||||
vert_increase = 2
|
||||
color_shift = 1.000000, 1.000000, 1.000000
|
||||
|
||||
[LootableZone]
|
||||
asteroid_loot_container = lootcrate_ast_loot_niobium
|
||||
asteroid_loot_commodity = commodity_Balagar
|
||||
dynamic_loot_container = lootcrate_ast_loot_niobium
|
||||
dynamic_loot_commodity = commodity_Balagar
|
||||
asteroid_loot_count = 0, 0
|
||||
dynamic_loot_count = 45, 65
|
||||
asteroid_loot_difficulty = 30
|
||||
dynamic_loot_difficulty = 2
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user