# HG changeset patch # User alys # Date 2021-05-25 04:52:18 # Node ID 59fdbace89aefac7e09ac2d9b2041ff9eb097928 # Parent 505bdc48f6804bea645e43b7e128367d0341ff3f Make area generation work better. diff --git a/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.assets.cache b/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.assets.cache index 7dcce0e548e46b90764d6354561e1e2dd771f572..fa583116edf1dfeb60f3c50d140933201a36585a GIT binary patch literal 237 zc$^FHc6a1rU|`6Y`Lft-vc#^t2G_eM*SatqnQarhm({N558oPxa1XnEFB$LyCLq@G z%}g%JFV0UZ(erZ+aVtv9O)bwa%GL`?O-n6G%}Y*oEG|yXP0GnkEe2^ZAYQp%UTTSn pDM%9|5XnG+^7VGQfm8Peb=ocg=XD6no7VG14BmgyEJ>~!a diff --git a/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache b/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache index d0f43a7f036fbd218f9a8499a4a6e97f8da13490..9cf342840e2b131ab72ab7a8d2232ef0f3cce040 GIT binary patch literal 11415 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 L0nh=BOV0lR!pw&G diff --git a/SpriteFontPlus/src/obj/project.assets.json b/SpriteFontPlus/src/obj/project.assets.json --- a/SpriteFontPlus/src/obj/project.assets.json +++ b/SpriteFontPlus/src/obj/project.assets.json @@ -2,8 +2,57 @@ "version": 3, "targets": { ".NETFramework,Version=v4.5": { + "Microsoft.NETFramework.ReferenceAssemblies/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies.net45": "1.0.0" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies.net45/1.0.0": { + "type": "package", + "build": { + "build/Microsoft.NETFramework.ReferenceAssemblies.net45.targets": {} + } + }, "FNA/1.0.0": { "type": "project", + "framework": ".NETFramework,Version=v4.0", + "compile": { + "bin/placeholder/FNA.dll": {} + }, + "runtime": { + "bin/placeholder/FNA.dll": {} + } + } + }, + ".NETStandard,Version=v2.0": { + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + }, + "build": { + "build/netstandard2.0/NETStandard.Library.targets": {} + } + }, + "FNA/1.0.0": { + "type": "project", + "framework": ".NETStandard,Version=v2.0", "compile": { "bin/placeholder/FNA.dll": {} }, @@ -14,15 +63,493 @@ } }, "libraries": { + "Microsoft.NETCore.Platforms/1.1.0": { + "sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "type": "package", + "path": "microsoft.netcore.platforms/1.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "microsoft.netcore.platforms.1.1.0.nupkg.sha512", + "microsoft.netcore.platforms.nuspec", + "runtime.json" + ] + }, + "Microsoft.NETFramework.ReferenceAssemblies/1.0.0": { + "sha512": "7D2TMufjGiowmt0E941kVoTIS+GTNzaPopuzM1/1LSaJAdJdBrVP0SkZW7AgDd0a2U1DjsIeaKG1wxGVBNLDMw==", + "type": "package", + "path": "microsoft.netframework.referenceassemblies/1.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "microsoft.netframework.referenceassemblies.1.0.0.nupkg.sha512", + "microsoft.netframework.referenceassemblies.nuspec" + ] + }, + "Microsoft.NETFramework.ReferenceAssemblies.net45/1.0.0": { + "sha512": "f7XMQsZFaoc3w8Vg3VQ3FHuU2C9vf0Ng5EAV4gzdNWDerPM/OmrzccLj15eI1wCLLXj4jk8+lKsbonzJeyXgQQ==", + "type": "package", + "path": "microsoft.netframework.referenceassemblies.net45/1.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "build/.NETFramework/v4.5/Accessibility.dll", + "build/.NETFramework/v4.5/Accessibility.xml", + "build/.NETFramework/v4.5/CustomMarshalers.dll", + "build/.NETFramework/v4.5/CustomMarshalers.xml", + "build/.NETFramework/v4.5/Facades/System.Collections.Concurrent.dll", + "build/.NETFramework/v4.5/Facades/System.Collections.dll", + "build/.NETFramework/v4.5/Facades/System.ComponentModel.Annotations.dll", + "build/.NETFramework/v4.5/Facades/System.ComponentModel.EventBasedAsync.dll", + "build/.NETFramework/v4.5/Facades/System.ComponentModel.dll", + "build/.NETFramework/v4.5/Facades/System.Diagnostics.Contracts.dll", + "build/.NETFramework/v4.5/Facades/System.Diagnostics.Debug.dll", + "build/.NETFramework/v4.5/Facades/System.Diagnostics.Tools.dll", + "build/.NETFramework/v4.5/Facades/System.Diagnostics.Tracing.dll", + "build/.NETFramework/v4.5/Facades/System.Dynamic.Runtime.dll", + "build/.NETFramework/v4.5/Facades/System.Globalization.dll", + "build/.NETFramework/v4.5/Facades/System.IO.dll", + "build/.NETFramework/v4.5/Facades/System.Linq.Expressions.dll", + "build/.NETFramework/v4.5/Facades/System.Linq.Parallel.dll", + "build/.NETFramework/v4.5/Facades/System.Linq.Queryable.dll", + "build/.NETFramework/v4.5/Facades/System.Linq.dll", + "build/.NETFramework/v4.5/Facades/System.Net.NetworkInformation.dll", + "build/.NETFramework/v4.5/Facades/System.Net.Primitives.dll", + "build/.NETFramework/v4.5/Facades/System.Net.Requests.dll", + "build/.NETFramework/v4.5/Facades/System.ObjectModel.dll", + "build/.NETFramework/v4.5/Facades/System.Reflection.Emit.ILGeneration.dll", + "build/.NETFramework/v4.5/Facades/System.Reflection.Emit.Lightweight.dll", + "build/.NETFramework/v4.5/Facades/System.Reflection.Emit.dll", + "build/.NETFramework/v4.5/Facades/System.Reflection.Extensions.dll", + "build/.NETFramework/v4.5/Facades/System.Reflection.Primitives.dll", + "build/.NETFramework/v4.5/Facades/System.Reflection.dll", + "build/.NETFramework/v4.5/Facades/System.Resources.ResourceManager.dll", + "build/.NETFramework/v4.5/Facades/System.Runtime.Extensions.dll", + "build/.NETFramework/v4.5/Facades/System.Runtime.InteropServices.WindowsRuntime.dll", + "build/.NETFramework/v4.5/Facades/System.Runtime.InteropServices.dll", + "build/.NETFramework/v4.5/Facades/System.Runtime.Numerics.dll", + "build/.NETFramework/v4.5/Facades/System.Runtime.Serialization.Json.dll", + "build/.NETFramework/v4.5/Facades/System.Runtime.Serialization.Primitives.dll", + "build/.NETFramework/v4.5/Facades/System.Runtime.Serialization.Xml.dll", + "build/.NETFramework/v4.5/Facades/System.Runtime.dll", + "build/.NETFramework/v4.5/Facades/System.Security.Principal.dll", + "build/.NETFramework/v4.5/Facades/System.ServiceModel.Duplex.dll", + "build/.NETFramework/v4.5/Facades/System.ServiceModel.Http.dll", + "build/.NETFramework/v4.5/Facades/System.ServiceModel.NetTcp.dll", + "build/.NETFramework/v4.5/Facades/System.ServiceModel.Primitives.dll", + "build/.NETFramework/v4.5/Facades/System.ServiceModel.Security.dll", + "build/.NETFramework/v4.5/Facades/System.Text.Encoding.Extensions.dll", + "build/.NETFramework/v4.5/Facades/System.Text.Encoding.dll", + "build/.NETFramework/v4.5/Facades/System.Text.RegularExpressions.dll", + "build/.NETFramework/v4.5/Facades/System.Threading.Tasks.Parallel.dll", + "build/.NETFramework/v4.5/Facades/System.Threading.Tasks.dll", + "build/.NETFramework/v4.5/Facades/System.Threading.dll", + "build/.NETFramework/v4.5/Facades/System.Xml.ReaderWriter.dll", + "build/.NETFramework/v4.5/Facades/System.Xml.XDocument.dll", + "build/.NETFramework/v4.5/Facades/System.Xml.XmlSerializer.dll", + "build/.NETFramework/v4.5/ISymWrapper.dll", + "build/.NETFramework/v4.5/ISymWrapper.xml", + "build/.NETFramework/v4.5/Microsoft.Activities.Build.dll", + "build/.NETFramework/v4.5/Microsoft.Activities.Build.xml", + "build/.NETFramework/v4.5/Microsoft.Build.Conversion.v4.0.dll", + "build/.NETFramework/v4.5/Microsoft.Build.Conversion.v4.0.xml", + "build/.NETFramework/v4.5/Microsoft.Build.Engine.dll", + "build/.NETFramework/v4.5/Microsoft.Build.Engine.xml", + "build/.NETFramework/v4.5/Microsoft.Build.Framework.dll", + "build/.NETFramework/v4.5/Microsoft.Build.Framework.xml", + "build/.NETFramework/v4.5/Microsoft.Build.Tasks.v4.0.dll", + "build/.NETFramework/v4.5/Microsoft.Build.Tasks.v4.0.xml", + "build/.NETFramework/v4.5/Microsoft.Build.Utilities.v4.0.dll", + "build/.NETFramework/v4.5/Microsoft.Build.Utilities.v4.0.xml", + "build/.NETFramework/v4.5/Microsoft.Build.dll", + "build/.NETFramework/v4.5/Microsoft.Build.xml", + "build/.NETFramework/v4.5/Microsoft.CSharp.dll", + "build/.NETFramework/v4.5/Microsoft.CSharp.xml", + "build/.NETFramework/v4.5/Microsoft.JScript.dll", + "build/.NETFramework/v4.5/Microsoft.JScript.xml", + "build/.NETFramework/v4.5/Microsoft.VisualBasic.Compatibility.Data.dll", + "build/.NETFramework/v4.5/Microsoft.VisualBasic.Compatibility.Data.xml", + "build/.NETFramework/v4.5/Microsoft.VisualBasic.Compatibility.dll", + "build/.NETFramework/v4.5/Microsoft.VisualBasic.Compatibility.xml", + "build/.NETFramework/v4.5/Microsoft.VisualBasic.dll", + "build/.NETFramework/v4.5/Microsoft.VisualBasic.xml", + "build/.NETFramework/v4.5/Microsoft.VisualC.STLCLR.dll", + "build/.NETFramework/v4.5/Microsoft.VisualC.STLCLR.xml", + "build/.NETFramework/v4.5/Microsoft.VisualC.dll", + "build/.NETFramework/v4.5/Microsoft.VisualC.xml", + "build/.NETFramework/v4.5/PermissionSets/FullTrust.xml", + "build/.NETFramework/v4.5/PermissionSets/Internet.xml", + "build/.NETFramework/v4.5/PermissionSets/LocalIntranet.xml", + "build/.NETFramework/v4.5/PresentationBuildTasks.dll", + "build/.NETFramework/v4.5/PresentationBuildTasks.xml", + "build/.NETFramework/v4.5/PresentationCore.dll", + "build/.NETFramework/v4.5/PresentationCore.xml", + "build/.NETFramework/v4.5/PresentationFramework.Aero.dll", + "build/.NETFramework/v4.5/PresentationFramework.Aero.xml", + "build/.NETFramework/v4.5/PresentationFramework.Aero2.dll", + "build/.NETFramework/v4.5/PresentationFramework.AeroLite.dll", + "build/.NETFramework/v4.5/PresentationFramework.Classic.dll", + "build/.NETFramework/v4.5/PresentationFramework.Classic.xml", + "build/.NETFramework/v4.5/PresentationFramework.Luna.dll", + "build/.NETFramework/v4.5/PresentationFramework.Luna.xml", + "build/.NETFramework/v4.5/PresentationFramework.Royale.dll", + "build/.NETFramework/v4.5/PresentationFramework.Royale.xml", + "build/.NETFramework/v4.5/PresentationFramework.dll", + "build/.NETFramework/v4.5/PresentationFramework.xml", + "build/.NETFramework/v4.5/ReachFramework.dll", + "build/.NETFramework/v4.5/ReachFramework.xml", + "build/.NETFramework/v4.5/RedistList/FrameworkList.xml", + "build/.NETFramework/v4.5/System.Activities.Core.Presentation.dll", + "build/.NETFramework/v4.5/System.Activities.Core.Presentation.xml", + "build/.NETFramework/v4.5/System.Activities.DurableInstancing.dll", + "build/.NETFramework/v4.5/System.Activities.DurableInstancing.xml", + "build/.NETFramework/v4.5/System.Activities.Presentation.dll", + "build/.NETFramework/v4.5/System.Activities.Presentation.xml", + "build/.NETFramework/v4.5/System.Activities.dll", + "build/.NETFramework/v4.5/System.Activities.xml", + "build/.NETFramework/v4.5/System.AddIn.Contract.dll", + "build/.NETFramework/v4.5/System.AddIn.Contract.xml", + "build/.NETFramework/v4.5/System.AddIn.dll", + "build/.NETFramework/v4.5/System.AddIn.xml", + "build/.NETFramework/v4.5/System.ComponentModel.Composition.Registration.dll", + "build/.NETFramework/v4.5/System.ComponentModel.Composition.dll", + "build/.NETFramework/v4.5/System.ComponentModel.Composition.xml", + "build/.NETFramework/v4.5/System.ComponentModel.DataAnnotations.dll", + "build/.NETFramework/v4.5/System.ComponentModel.DataAnnotations.xml", + "build/.NETFramework/v4.5/System.Configuration.Install.dll", + "build/.NETFramework/v4.5/System.Configuration.Install.xml", + "build/.NETFramework/v4.5/System.Configuration.dll", + "build/.NETFramework/v4.5/System.Configuration.xml", + "build/.NETFramework/v4.5/System.Core.dll", + "build/.NETFramework/v4.5/System.Core.xml", + "build/.NETFramework/v4.5/System.Data.DataSetExtensions.dll", + "build/.NETFramework/v4.5/System.Data.DataSetExtensions.xml", + "build/.NETFramework/v4.5/System.Data.Entity.Design.dll", + "build/.NETFramework/v4.5/System.Data.Entity.Design.xml", + "build/.NETFramework/v4.5/System.Data.Entity.dll", + "build/.NETFramework/v4.5/System.Data.Entity.xml", + "build/.NETFramework/v4.5/System.Data.Linq.dll", + "build/.NETFramework/v4.5/System.Data.Linq.xml", + "build/.NETFramework/v4.5/System.Data.OracleClient.dll", + "build/.NETFramework/v4.5/System.Data.OracleClient.xml", + "build/.NETFramework/v4.5/System.Data.Services.Client.dll", + "build/.NETFramework/v4.5/System.Data.Services.Client.xml", + "build/.NETFramework/v4.5/System.Data.Services.Design.dll", + "build/.NETFramework/v4.5/System.Data.Services.Design.xml", + "build/.NETFramework/v4.5/System.Data.Services.dll", + "build/.NETFramework/v4.5/System.Data.Services.xml", + "build/.NETFramework/v4.5/System.Data.SqlXml.dll", + "build/.NETFramework/v4.5/System.Data.SqlXml.xml", + "build/.NETFramework/v4.5/System.Data.dll", + "build/.NETFramework/v4.5/System.Data.xml", + "build/.NETFramework/v4.5/System.Deployment.dll", + "build/.NETFramework/v4.5/System.Deployment.xml", + "build/.NETFramework/v4.5/System.Design.dll", + "build/.NETFramework/v4.5/System.Design.xml", + "build/.NETFramework/v4.5/System.Device.dll", + "build/.NETFramework/v4.5/System.Device.xml", + "build/.NETFramework/v4.5/System.DirectoryServices.AccountManagement.dll", + "build/.NETFramework/v4.5/System.DirectoryServices.AccountManagement.xml", + "build/.NETFramework/v4.5/System.DirectoryServices.Protocols.dll", + "build/.NETFramework/v4.5/System.DirectoryServices.Protocols.xml", + "build/.NETFramework/v4.5/System.DirectoryServices.dll", + "build/.NETFramework/v4.5/System.DirectoryServices.xml", + "build/.NETFramework/v4.5/System.Drawing.Design.dll", + "build/.NETFramework/v4.5/System.Drawing.Design.xml", + "build/.NETFramework/v4.5/System.Drawing.dll", + "build/.NETFramework/v4.5/System.Drawing.xml", + "build/.NETFramework/v4.5/System.EnterpriseServices.Thunk.dll", + "build/.NETFramework/v4.5/System.EnterpriseServices.Wrapper.dll", + "build/.NETFramework/v4.5/System.EnterpriseServices.dll", + "build/.NETFramework/v4.5/System.EnterpriseServices.xml", + "build/.NETFramework/v4.5/System.IO.Compression.FileSystem.dll", + "build/.NETFramework/v4.5/System.IO.Compression.FileSystem.xml", + "build/.NETFramework/v4.5/System.IO.Compression.dll", + "build/.NETFramework/v4.5/System.IO.Compression.xml", + "build/.NETFramework/v4.5/System.IO.Log.dll", + "build/.NETFramework/v4.5/System.IO.Log.xml", + "build/.NETFramework/v4.5/System.IdentityModel.Selectors.dll", + "build/.NETFramework/v4.5/System.IdentityModel.Selectors.xml", + "build/.NETFramework/v4.5/System.IdentityModel.Services.dll", + "build/.NETFramework/v4.5/System.IdentityModel.Services.xml", + "build/.NETFramework/v4.5/System.IdentityModel.dll", + "build/.NETFramework/v4.5/System.IdentityModel.xml", + "build/.NETFramework/v4.5/System.Management.Instrumentation.dll", + "build/.NETFramework/v4.5/System.Management.Instrumentation.xml", + "build/.NETFramework/v4.5/System.Management.dll", + "build/.NETFramework/v4.5/System.Management.xml", + "build/.NETFramework/v4.5/System.Messaging.dll", + "build/.NETFramework/v4.5/System.Messaging.xml", + "build/.NETFramework/v4.5/System.Net.Http.WebRequest.dll", + "build/.NETFramework/v4.5/System.Net.Http.WebRequest.xml", + "build/.NETFramework/v4.5/System.Net.Http.dll", + "build/.NETFramework/v4.5/System.Net.Http.xml", + "build/.NETFramework/v4.5/System.Net.dll", + "build/.NETFramework/v4.5/System.Net.xml", + "build/.NETFramework/v4.5/System.Numerics.dll", + "build/.NETFramework/v4.5/System.Numerics.xml", + "build/.NETFramework/v4.5/System.Printing.dll", + "build/.NETFramework/v4.5/System.Printing.xml", + "build/.NETFramework/v4.5/System.Reflection.Context.dll", + "build/.NETFramework/v4.5/System.Reflection.Context.xml", + "build/.NETFramework/v4.5/System.Runtime.Caching.dll", + "build/.NETFramework/v4.5/System.Runtime.Caching.xml", + "build/.NETFramework/v4.5/System.Runtime.DurableInstancing.dll", + "build/.NETFramework/v4.5/System.Runtime.DurableInstancing.xml", + "build/.NETFramework/v4.5/System.Runtime.Remoting.dll", + "build/.NETFramework/v4.5/System.Runtime.Remoting.xml", + "build/.NETFramework/v4.5/System.Runtime.Serialization.Formatters.Soap.dll", + "build/.NETFramework/v4.5/System.Runtime.Serialization.Formatters.Soap.xml", + "build/.NETFramework/v4.5/System.Runtime.Serialization.dll", + "build/.NETFramework/v4.5/System.Runtime.Serialization.xml", + "build/.NETFramework/v4.5/System.Security.dll", + "build/.NETFramework/v4.5/System.Security.xml", + "build/.NETFramework/v4.5/System.ServiceModel.Activation.dll", + "build/.NETFramework/v4.5/System.ServiceModel.Activation.xml", + "build/.NETFramework/v4.5/System.ServiceModel.Activities.dll", + "build/.NETFramework/v4.5/System.ServiceModel.Activities.xml", + "build/.NETFramework/v4.5/System.ServiceModel.Channels.dll", + "build/.NETFramework/v4.5/System.ServiceModel.Channels.xml", + "build/.NETFramework/v4.5/System.ServiceModel.Discovery.dll", + "build/.NETFramework/v4.5/System.ServiceModel.Discovery.xml", + "build/.NETFramework/v4.5/System.ServiceModel.Routing.dll", + "build/.NETFramework/v4.5/System.ServiceModel.Routing.xml", + "build/.NETFramework/v4.5/System.ServiceModel.Web.dll", + "build/.NETFramework/v4.5/System.ServiceModel.Web.xml", + "build/.NETFramework/v4.5/System.ServiceModel.dll", + "build/.NETFramework/v4.5/System.ServiceModel.xml", + "build/.NETFramework/v4.5/System.ServiceProcess.dll", + "build/.NETFramework/v4.5/System.ServiceProcess.xml", + "build/.NETFramework/v4.5/System.Speech.dll", + "build/.NETFramework/v4.5/System.Speech.xml", + "build/.NETFramework/v4.5/System.Threading.Tasks.Dataflow.xml", + "build/.NETFramework/v4.5/System.Transactions.dll", + "build/.NETFramework/v4.5/System.Transactions.xml", + "build/.NETFramework/v4.5/System.Web.Abstractions.dll", + "build/.NETFramework/v4.5/System.Web.ApplicationServices.dll", + "build/.NETFramework/v4.5/System.Web.ApplicationServices.xml", + "build/.NETFramework/v4.5/System.Web.DataVisualization.Design.dll", + "build/.NETFramework/v4.5/System.Web.DataVisualization.dll", + "build/.NETFramework/v4.5/System.Web.DataVisualization.xml", + "build/.NETFramework/v4.5/System.Web.DynamicData.Design.dll", + "build/.NETFramework/v4.5/System.Web.DynamicData.Design.xml", + "build/.NETFramework/v4.5/System.Web.DynamicData.dll", + "build/.NETFramework/v4.5/System.Web.DynamicData.xml", + "build/.NETFramework/v4.5/System.Web.Entity.Design.dll", + "build/.NETFramework/v4.5/System.Web.Entity.Design.xml", + "build/.NETFramework/v4.5/System.Web.Entity.dll", + "build/.NETFramework/v4.5/System.Web.Entity.xml", + "build/.NETFramework/v4.5/System.Web.Extensions.Design.dll", + "build/.NETFramework/v4.5/System.Web.Extensions.Design.xml", + "build/.NETFramework/v4.5/System.Web.Extensions.dll", + "build/.NETFramework/v4.5/System.Web.Extensions.xml", + "build/.NETFramework/v4.5/System.Web.Mobile.dll", + "build/.NETFramework/v4.5/System.Web.Mobile.xml", + "build/.NETFramework/v4.5/System.Web.RegularExpressions.dll", + "build/.NETFramework/v4.5/System.Web.RegularExpressions.xml", + "build/.NETFramework/v4.5/System.Web.Routing.dll", + "build/.NETFramework/v4.5/System.Web.Services.dll", + "build/.NETFramework/v4.5/System.Web.Services.xml", + "build/.NETFramework/v4.5/System.Web.dll", + "build/.NETFramework/v4.5/System.Web.xml", + "build/.NETFramework/v4.5/System.Windows.Controls.Ribbon.dll", + "build/.NETFramework/v4.5/System.Windows.Controls.Ribbon.xml", + "build/.NETFramework/v4.5/System.Windows.Forms.DataVisualization.Design.dll", + "build/.NETFramework/v4.5/System.Windows.Forms.DataVisualization.dll", + "build/.NETFramework/v4.5/System.Windows.Forms.DataVisualization.xml", + "build/.NETFramework/v4.5/System.Windows.Forms.dll", + "build/.NETFramework/v4.5/System.Windows.Forms.xml", + "build/.NETFramework/v4.5/System.Windows.Input.Manipulations.dll", + "build/.NETFramework/v4.5/System.Windows.Input.Manipulations.xml", + "build/.NETFramework/v4.5/System.Windows.Presentation.dll", + "build/.NETFramework/v4.5/System.Windows.Presentation.xml", + "build/.NETFramework/v4.5/System.Windows.dll", + "build/.NETFramework/v4.5/System.Workflow.Activities.dll", + "build/.NETFramework/v4.5/System.Workflow.Activities.xml", + "build/.NETFramework/v4.5/System.Workflow.ComponentModel.dll", + "build/.NETFramework/v4.5/System.Workflow.ComponentModel.xml", + "build/.NETFramework/v4.5/System.Workflow.Runtime.dll", + "build/.NETFramework/v4.5/System.Workflow.Runtime.xml", + "build/.NETFramework/v4.5/System.WorkflowServices.dll", + "build/.NETFramework/v4.5/System.WorkflowServices.xml", + "build/.NETFramework/v4.5/System.Xaml.dll", + "build/.NETFramework/v4.5/System.Xaml.xml", + "build/.NETFramework/v4.5/System.Xml.Linq.dll", + "build/.NETFramework/v4.5/System.Xml.Linq.xml", + "build/.NETFramework/v4.5/System.Xml.Serialization.dll", + "build/.NETFramework/v4.5/System.Xml.dll", + "build/.NETFramework/v4.5/System.Xml.xml", + "build/.NETFramework/v4.5/System.dll", + "build/.NETFramework/v4.5/System.xml", + "build/.NETFramework/v4.5/UIAutomationClient.dll", + "build/.NETFramework/v4.5/UIAutomationClient.xml", + "build/.NETFramework/v4.5/UIAutomationClientsideProviders.dll", + "build/.NETFramework/v4.5/UIAutomationClientsideProviders.xml", + "build/.NETFramework/v4.5/UIAutomationProvider.dll", + "build/.NETFramework/v4.5/UIAutomationProvider.xml", + "build/.NETFramework/v4.5/UIAutomationTypes.dll", + "build/.NETFramework/v4.5/UIAutomationTypes.xml", + "build/.NETFramework/v4.5/WindowsBase.dll", + "build/.NETFramework/v4.5/WindowsBase.xml", + "build/.NETFramework/v4.5/WindowsFormsIntegration.dll", + "build/.NETFramework/v4.5/WindowsFormsIntegration.xml", + "build/.NETFramework/v4.5/XamlBuildTask.dll", + "build/.NETFramework/v4.5/XamlBuildTask.xml", + "build/.NETFramework/v4.5/mscorlib.dll", + "build/.NETFramework/v4.5/mscorlib.xml", + "build/.NETFramework/v4.5/sysglobl.dll", + "build/.NETFramework/v4.5/sysglobl.xml", + "build/Microsoft.NETFramework.ReferenceAssemblies.net45.targets", + "microsoft.netframework.referenceassemblies.net45.1.0.0.nupkg.sha512", + "microsoft.netframework.referenceassemblies.net45.nuspec" + ] + }, + "NETStandard.Library/2.0.3": { + "sha512": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "type": "package", + "path": "netstandard.library/2.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "build/netstandard2.0/NETStandard.Library.targets", + "build/netstandard2.0/ref/Microsoft.Win32.Primitives.dll", + "build/netstandard2.0/ref/System.AppContext.dll", + "build/netstandard2.0/ref/System.Collections.Concurrent.dll", + "build/netstandard2.0/ref/System.Collections.NonGeneric.dll", + "build/netstandard2.0/ref/System.Collections.Specialized.dll", + "build/netstandard2.0/ref/System.Collections.dll", + "build/netstandard2.0/ref/System.ComponentModel.Composition.dll", + "build/netstandard2.0/ref/System.ComponentModel.EventBasedAsync.dll", + "build/netstandard2.0/ref/System.ComponentModel.Primitives.dll", + "build/netstandard2.0/ref/System.ComponentModel.TypeConverter.dll", + "build/netstandard2.0/ref/System.ComponentModel.dll", + "build/netstandard2.0/ref/System.Console.dll", + "build/netstandard2.0/ref/System.Core.dll", + "build/netstandard2.0/ref/System.Data.Common.dll", + "build/netstandard2.0/ref/System.Data.dll", + "build/netstandard2.0/ref/System.Diagnostics.Contracts.dll", + "build/netstandard2.0/ref/System.Diagnostics.Debug.dll", + "build/netstandard2.0/ref/System.Diagnostics.FileVersionInfo.dll", + "build/netstandard2.0/ref/System.Diagnostics.Process.dll", + "build/netstandard2.0/ref/System.Diagnostics.StackTrace.dll", + "build/netstandard2.0/ref/System.Diagnostics.TextWriterTraceListener.dll", + "build/netstandard2.0/ref/System.Diagnostics.Tools.dll", + "build/netstandard2.0/ref/System.Diagnostics.TraceSource.dll", + "build/netstandard2.0/ref/System.Diagnostics.Tracing.dll", + "build/netstandard2.0/ref/System.Drawing.Primitives.dll", + "build/netstandard2.0/ref/System.Drawing.dll", + "build/netstandard2.0/ref/System.Dynamic.Runtime.dll", + "build/netstandard2.0/ref/System.Globalization.Calendars.dll", + "build/netstandard2.0/ref/System.Globalization.Extensions.dll", + "build/netstandard2.0/ref/System.Globalization.dll", + "build/netstandard2.0/ref/System.IO.Compression.FileSystem.dll", + "build/netstandard2.0/ref/System.IO.Compression.ZipFile.dll", + "build/netstandard2.0/ref/System.IO.Compression.dll", + "build/netstandard2.0/ref/System.IO.FileSystem.DriveInfo.dll", + "build/netstandard2.0/ref/System.IO.FileSystem.Primitives.dll", + "build/netstandard2.0/ref/System.IO.FileSystem.Watcher.dll", + "build/netstandard2.0/ref/System.IO.FileSystem.dll", + "build/netstandard2.0/ref/System.IO.IsolatedStorage.dll", + "build/netstandard2.0/ref/System.IO.MemoryMappedFiles.dll", + "build/netstandard2.0/ref/System.IO.Pipes.dll", + "build/netstandard2.0/ref/System.IO.UnmanagedMemoryStream.dll", + "build/netstandard2.0/ref/System.IO.dll", + "build/netstandard2.0/ref/System.Linq.Expressions.dll", + "build/netstandard2.0/ref/System.Linq.Parallel.dll", + "build/netstandard2.0/ref/System.Linq.Queryable.dll", + "build/netstandard2.0/ref/System.Linq.dll", + "build/netstandard2.0/ref/System.Net.Http.dll", + "build/netstandard2.0/ref/System.Net.NameResolution.dll", + "build/netstandard2.0/ref/System.Net.NetworkInformation.dll", + "build/netstandard2.0/ref/System.Net.Ping.dll", + "build/netstandard2.0/ref/System.Net.Primitives.dll", + "build/netstandard2.0/ref/System.Net.Requests.dll", + "build/netstandard2.0/ref/System.Net.Security.dll", + "build/netstandard2.0/ref/System.Net.Sockets.dll", + "build/netstandard2.0/ref/System.Net.WebHeaderCollection.dll", + "build/netstandard2.0/ref/System.Net.WebSockets.Client.dll", + "build/netstandard2.0/ref/System.Net.WebSockets.dll", + "build/netstandard2.0/ref/System.Net.dll", + "build/netstandard2.0/ref/System.Numerics.dll", + "build/netstandard2.0/ref/System.ObjectModel.dll", + "build/netstandard2.0/ref/System.Reflection.Extensions.dll", + "build/netstandard2.0/ref/System.Reflection.Primitives.dll", + "build/netstandard2.0/ref/System.Reflection.dll", + "build/netstandard2.0/ref/System.Resources.Reader.dll", + "build/netstandard2.0/ref/System.Resources.ResourceManager.dll", + "build/netstandard2.0/ref/System.Resources.Writer.dll", + "build/netstandard2.0/ref/System.Runtime.CompilerServices.VisualC.dll", + "build/netstandard2.0/ref/System.Runtime.Extensions.dll", + "build/netstandard2.0/ref/System.Runtime.Handles.dll", + "build/netstandard2.0/ref/System.Runtime.InteropServices.RuntimeInformation.dll", + "build/netstandard2.0/ref/System.Runtime.InteropServices.dll", + "build/netstandard2.0/ref/System.Runtime.Numerics.dll", + "build/netstandard2.0/ref/System.Runtime.Serialization.Formatters.dll", + "build/netstandard2.0/ref/System.Runtime.Serialization.Json.dll", + "build/netstandard2.0/ref/System.Runtime.Serialization.Primitives.dll", + "build/netstandard2.0/ref/System.Runtime.Serialization.Xml.dll", + "build/netstandard2.0/ref/System.Runtime.Serialization.dll", + "build/netstandard2.0/ref/System.Runtime.dll", + "build/netstandard2.0/ref/System.Security.Claims.dll", + "build/netstandard2.0/ref/System.Security.Cryptography.Algorithms.dll", + "build/netstandard2.0/ref/System.Security.Cryptography.Csp.dll", + "build/netstandard2.0/ref/System.Security.Cryptography.Encoding.dll", + "build/netstandard2.0/ref/System.Security.Cryptography.Primitives.dll", + "build/netstandard2.0/ref/System.Security.Cryptography.X509Certificates.dll", + "build/netstandard2.0/ref/System.Security.Principal.dll", + "build/netstandard2.0/ref/System.Security.SecureString.dll", + "build/netstandard2.0/ref/System.ServiceModel.Web.dll", + "build/netstandard2.0/ref/System.Text.Encoding.Extensions.dll", + "build/netstandard2.0/ref/System.Text.Encoding.dll", + "build/netstandard2.0/ref/System.Text.RegularExpressions.dll", + "build/netstandard2.0/ref/System.Threading.Overlapped.dll", + "build/netstandard2.0/ref/System.Threading.Tasks.Parallel.dll", + "build/netstandard2.0/ref/System.Threading.Tasks.dll", + "build/netstandard2.0/ref/System.Threading.Thread.dll", + "build/netstandard2.0/ref/System.Threading.ThreadPool.dll", + "build/netstandard2.0/ref/System.Threading.Timer.dll", + "build/netstandard2.0/ref/System.Threading.dll", + "build/netstandard2.0/ref/System.Transactions.dll", + "build/netstandard2.0/ref/System.ValueTuple.dll", + "build/netstandard2.0/ref/System.Web.dll", + "build/netstandard2.0/ref/System.Windows.dll", + "build/netstandard2.0/ref/System.Xml.Linq.dll", + "build/netstandard2.0/ref/System.Xml.ReaderWriter.dll", + "build/netstandard2.0/ref/System.Xml.Serialization.dll", + "build/netstandard2.0/ref/System.Xml.XDocument.dll", + "build/netstandard2.0/ref/System.Xml.XPath.XDocument.dll", + "build/netstandard2.0/ref/System.Xml.XPath.dll", + "build/netstandard2.0/ref/System.Xml.XmlDocument.dll", + "build/netstandard2.0/ref/System.Xml.XmlSerializer.dll", + "build/netstandard2.0/ref/System.Xml.dll", + "build/netstandard2.0/ref/System.dll", + "build/netstandard2.0/ref/mscorlib.dll", + "build/netstandard2.0/ref/netstandard.dll", + "build/netstandard2.0/ref/netstandard.xml", + "lib/netstandard1.0/_._", + "netstandard.library.2.0.3.nupkg.sha512", + "netstandard.library.nuspec" + ] + }, "FNA/1.0.0": { "type": "project", - "path": "../../FNA/FNA.csproj", - "msbuildProject": "../../FNA/FNA.csproj" + "path": "../../FNA/FNA.Core.csproj", + "msbuildProject": "../../FNA/FNA.Core.csproj" } }, "projectFileDependencyGroups": { ".NETFramework,Version=v4.5": [ - "FNA >= 1.0.0" + "FNA >= 1.0.0", + "Microsoft.NETFramework.ReferenceAssemblies >= 1.0.0" + ], + ".NETStandard,Version=v2.0": [ + "FNA >= 1.0.0", + "NETStandard.Library >= 2.0.3" ] }, "packageFolders": { @@ -31,26 +558,37 @@ "project": { "version": "1.0.0", "restore": { - "projectUniqueName": "/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/SpriteFontPlus.FNA.csproj", + "projectUniqueName": "/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/SpriteFontPlus.FNA.Core.csproj", "projectName": "SpriteFontPlus", - "projectPath": "/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/SpriteFontPlus.FNA.csproj", + "projectPath": "/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/SpriteFontPlus.FNA.Core.csproj", "packagesPath": "/Users/alys/.nuget/packages/", "outputPath": "/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/", "projectStyle": "PackageReference", + "crossTargeting": true, "configFilePaths": [ - "/Users/alys/.config/NuGet/NuGet.Config" + "/Users/alys/.nuget/NuGet/NuGet.Config" ], "originalTargetFrameworks": [ - "net45" + "net45", + "netstandard2.0" ], "sources": { "https://api.nuget.org/v3/index.json": {} }, "frameworks": { "net45": { + "targetAlias": "net45", "projectReferences": { - "/Users/alys/repos/isometric-park-fna/FNA/FNA.csproj": { - "projectPath": "/Users/alys/repos/isometric-park-fna/FNA/FNA.csproj" + "/Users/alys/repos/isometric-park-fna/FNA/FNA.Core.csproj": { + "projectPath": "/Users/alys/repos/isometric-park-fna/FNA/FNA.Core.csproj" + } + } + }, + "netstandard2.0": { + "targetAlias": "netstandard2.0", + "projectReferences": { + "/Users/alys/repos/isometric-park-fna/FNA/FNA.Core.csproj": { + "projectPath": "/Users/alys/repos/isometric-park-fna/FNA/FNA.Core.csproj" } } } @@ -63,7 +601,38 @@ }, "frameworks": { "net45": { - "runtimeIdentifierGraphPath": "/Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/Current/bin/RuntimeIdentifierGraph.json" + "targetAlias": "net45", + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies": { + "suppressParent": "All", + "target": "Package", + "version": "[1.0.0, )", + "autoReferenced": true + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/5.0.202/RuntimeIdentifierGraph.json" + }, + "netstandard2.0": { + "targetAlias": "netstandard2.0", + "dependencies": { + "NETStandard.Library": { + "suppressParent": "All", + "target": "Package", + "version": "[2.0.3, )", + "autoReferenced": true + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48" + ], + "assetTargetFallback": true, + "warn": true, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/5.0.202/RuntimeIdentifierGraph.json" } } } diff --git a/SpriteFontPlus/src/obj/project.nuget.cache b/SpriteFontPlus/src/obj/project.nuget.cache --- a/SpriteFontPlus/src/obj/project.nuget.cache +++ b/SpriteFontPlus/src/obj/project.nuget.cache @@ -1,8 +1,13 @@ { "version": 2, - "dgSpecHash": "kUPsWi+W/I8KOuiF0fQ9nWh1vVsW3b0wAQVjldBK6JNRF3usvNENwsXcLXddNG6Wh/129HHhkfaanQmLUK7wcA==", + "dgSpecHash": "3R9WDhpmDP/ybl/9zAzE/8D8e7oHOYnPI6vqSMFXlQArdzsXsOcO+zrPKGiDeMip0lN4Lm30Wumk1II5bYeXkA==", "success": true, - "projectFilePath": "/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/SpriteFontPlus.FNA.csproj", - "expectedPackageFiles": [], + "projectFilePath": "/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/SpriteFontPlus.FNA.Core.csproj", + "expectedPackageFiles": [ + "/Users/alys/.nuget/packages/microsoft.netcore.platforms/1.1.0/microsoft.netcore.platforms.1.1.0.nupkg.sha512", + "/Users/alys/.nuget/packages/microsoft.netframework.referenceassemblies/1.0.0/microsoft.netframework.referenceassemblies.1.0.0.nupkg.sha512", + "/Users/alys/.nuget/packages/microsoft.netframework.referenceassemblies.net45/1.0.0/microsoft.netframework.referenceassemblies.net45.1.0.0.nupkg.sha512", + "/Users/alys/.nuget/packages/netstandard.library/2.0.3/netstandard.library.2.0.3.nupkg.sha512" + ], "logs": [] } \ No newline at end of file diff --git a/isometric-park-fna/Engines/SimulationBridgeEngine.cs b/isometric-park-fna/Engines/SimulationBridgeEngine.cs --- a/isometric-park-fna/Engines/SimulationBridgeEngine.cs +++ b/isometric-park-fna/Engines/SimulationBridgeEngine.cs @@ -82,7 +82,7 @@ if (this.ticksToSend > 0) { - System.Console.WriteLine("{0} ticks to send in update", this.ticksToSend); + Logging.Trace(String.Format("{0} ticks to send in update", this.ticksToSend)); } for (int i = ticksToSend; i > 0; i--) { diff --git a/isometric-park-fna/Engines/Spawners/ContractSpawner.cs b/isometric-park-fna/Engines/Spawners/ContractSpawner.cs --- a/isometric-park-fna/Engines/Spawners/ContractSpawner.cs +++ b/isometric-park-fna/Engines/Spawners/ContractSpawner.cs @@ -1,4 +1,5 @@ using System; +using System.Diagnostics; using System.Linq; using System.Collections.Generic; @@ -43,10 +44,28 @@ this.simulation = simulation; this.grammar = grammar; } - private Vector2[] CreateArea(int start_x, int start_y, int max_size, HashSet occupied_squares) - { - var squares = new List(new[] { new Vector2(start_x, start_y) }); - var squares_to_add = new HashSet(); + private Vector2 FindStart(HashSet occupied_squares) + { + + Vector2 new_square; + + for (int i = 0; i < 5; i++) + { + new_square = new Vector2(random_generator.Next(0, 50), random_generator.Next(0, 50)); + + if (!occupied_squares.Contains(new_square)) + { + return new_square; + } + } + // return null; + return Vector2.Zero; + } + + private Vector2[] CreateArea(int start_x, int start_y, int max_size, HashSet occupied_squares, float odds = 0.5f) + { + var squares = new List(new[] { new Vector2(start_x, start_y) }); + var squares_to_add = new HashSet(); var attempts = 0; var maxAttempts = max_size * 10; @@ -60,12 +79,12 @@ new Vector2(square.X - 1, square.Y), new Vector2(square.X, square.Y - 1)}) { - if (random_generator.NextDouble() < 0.5 + if (random_generator.NextDouble() < odds && !squares.Contains(new_square) && !occupied_squares.Contains(new_square) && MathUtils.Between(new_square.X, 0, this.MapWidth) && MathUtils.Between(new_square.Y, 0, this.MapHeight) - ) + ) { squares_to_add.Add(new_square); } @@ -74,99 +93,129 @@ } var remaining = max_size - squares.Count; squares.AddRange(squares_to_add.Take(remaining)); - squares_to_add.Clear(); + squares_to_add.Clear(); if (attempts >= maxAttempts && squares.Count < max_size) { Logging.Warning(string.Format("Failed to generate enough squares. {0} were requested, only {1} were found ({2} attempts)", max_size, squares.Count, attempts)); break; } - } - return squares.ToArray(); - } + } + return squares.ToArray(); + } - protected override void Spawn(in SpawnContractMessage message) - { + protected override void Spawn(in SpawnContractMessage message) + { - //for now: - var occupied = new List(); + //for now: + var occupied = new List(); - var contractOrganizations = ReadEntities().ToArray(); + var contractOrganizations = ReadEntities().ToArray(); - var contractCount = contractOrganizations.Count(); - OrganizationType organization_type = OrganizationType.Unspecified; - var organization_index = random_generator.Next(0, contractCount); + var contractCount = contractOrganizations.Count(); + OrganizationType organization_type = OrganizationType.Unspecified; + var organization_index = random_generator.Next(0, contractCount); - if (contractCount > 0) - { - organization_type = GetComponent(contractOrganizations[organization_index]).type; - } + if (contractCount > 0) + { + organization_type = GetComponent(contractOrganizations[organization_index]).type; + } - foreach (var (entity, status) in ReadEntities().SelectWhereF((e) => (e, GetComponent(e)), - (e) => (e.Item2.status != ContractStatus.Expired)) - ) - { - var entitySquares = GetComponent(entity).squares; - occupied.AddRange(entitySquares); - } - - var start_x = random_generator.Next(0, 50); - var start_y = random_generator.Next(0, 50); + foreach (var (entity, status) in ReadEntities().SelectWhereF((e) => (e, GetComponent(e)), + (e) => (e.Item2.status != ContractStatus.Expired)) + ) + { + var entitySquares = GetComponent(entity).squares; + occupied.AddRange(entitySquares); + } - var image_index = random_generator.Next(1, 7); + var start = this.FindStart(new HashSet(occupied)); + var start_x = (int)start.X; + var start_y = (int)start.Y; - int max_squares = (message.max_squares == 0) ? DEFAULT_SQUARES : message.max_squares; - int min_squares = (message.min_squares == null) ? DEFAULT_MIN_SQUARES : (int)message.min_squares; - Vector2[] squares = (message.squares == null) ? CreateArea(start_x, start_y, max_squares, new HashSet(occupied)) : message.squares; + var image_index = random_generator.Next(1, 7); - - if (squares.Length > min_squares) - { - var contract = CreateEntity(); + int max_squares = (message.max_squares == 0) ? DEFAULT_SQUARES : message.max_squares; + int min_squares = (message.min_squares == null) ? DEFAULT_MIN_SQUARES : (int)message.min_squares; - if (contractCount > 0) - { - AddComponent(contract, new RelatedOrganizationComponent { Entity = contractOrganizations[organization_index] }); - } + var odds_to_try = new[] {0.5f, 0.75f, 1.0f, 1.0f}; + var retry_location = new[] {false, false, false, true}; + Debug.Assert(odds_to_try.Count() == retry_location.Count()); + // foreach( double odds in odds_to_try ) + for(int i = 0; i < odds_to_try.Count(); i++) + { + + Vector2[] squares = (message.squares == null) ? + CreateArea(start_x, start_y, max_squares, new HashSet(occupied)) : message.squares; + if(i > 0) + { + Logging.Info(String.Format("Creating area using a {0} chance didn't work, using {1}.", odds_to_try[i-1], odds_to_try[i])); + } + + if (retry_location[i]) + { + var old_start_x = start_x; + var old_start_y = start_y; + start = this.FindStart(new HashSet(occupied)); + + start_x = (int)start.X; + start_y = (int)start.Y; + Logging.Info(String.Format("Creating area using original location ({0}, {1}) didn't work, trying a new one. {2} {3}", + old_start_x, old_start_y, start_x, start_y)); + } + + + if (squares.Length > min_squares) + { + var contract = CreateEntity(); - var deltaTrees = organization_type switch { + if (contractCount > 0) + { + AddComponent(contract, new RelatedOrganizationComponent { Entity = contractOrganizations[organization_index] }); + } - OrganizationType.Family => random_generator.Next(-10, 3), - OrganizationType.LargeCorporation => random_generator.Next(-20, 0), - OrganizationType.Cooperative => random_generator.Next(-1, 3), - _ => random_generator.Next(-20, 3) - }; + var deltaTrees = organization_type switch { - var contract_amount = organization_type switch { - OrganizationType.Family => random_generator.Next(CONTRACT_MINIMUM, CONTRACT_MAXIMUM/2), - OrganizationType.LargeCorporation => random_generator.Next(CONTRACT_MINIMUM*2, CONTRACT_MAXIMUM), - OrganizationType.Cooperative => random_generator.Next(CONTRACT_MINIMUM, CONTRACT_MAXIMUM/2), - _ => random_generator.Next(CONTRACT_MINIMUM, CONTRACT_MAXIMUM) + OrganizationType.Family => random_generator.Next(-10, 3), + OrganizationType.LargeCorporation => random_generator.Next(-20, 0), + OrganizationType.Cooperative => random_generator.Next(-1, 3), + _ => random_generator.Next(-20, 3) + }; - }; - + var contract_amount = organization_type switch { + OrganizationType.Family => random_generator.Next(CONTRACT_MINIMUM, CONTRACT_MAXIMUM/2), + OrganizationType.LargeCorporation => random_generator.Next(CONTRACT_MINIMUM*2, CONTRACT_MAXIMUM), + OrganizationType.Cooperative => random_generator.Next(CONTRACT_MINIMUM, CONTRACT_MAXIMUM/2), + _ => random_generator.Next(CONTRACT_MINIMUM, CONTRACT_MAXIMUM) + }; - // AddComponent - AddComponent(contract, new AreaComponent { squares = squares }); - AddComponent(contract, new NameAndDescriptionComponent { DisplayName = this.grammar.Flatten(message.name) }); - AddComponent(contract, new SelectedComponent { selected = false }); - AddComponent(contract, new ContractStatusComponent { status = ContractStatus.Proposed, date = this.simulation.DateTime }); - AddComponent(contract, new TreeDeltaComponent { deltaTrees = deltaTrees }); - AddComponent(contract, new BudgetLineComponent - { - category = "Contracts", - //Round to the nearest $5 - amount = (decimal)((contract_amount / 5) * 5) - }); - AddComponent(contract, new ImageComponent {ImageIndex = image_index}); - AddComponent(contract, new WindowTypeComponent { type = Window.Contract}); - AddComponent(contract, new VisibilityComponent { visible = false}); + // AddComponent + AddComponent(contract, new AreaComponent { squares = squares }); + AddComponent(contract, new NameAndDescriptionComponent { DisplayName = this.grammar.Flatten(message.name) }); + AddComponent(contract, new SelectedComponent { selected = false }); + AddComponent(contract, new ContractStatusComponent { status = ContractStatus.Proposed, date = this.simulation.DateTime }); + AddComponent(contract, new TreeDeltaComponent { deltaTrees = deltaTrees }); + AddComponent(contract, new BudgetLineComponent + { + category = "Contracts", + //Round to the nearest $5 + amount = (decimal)((contract_amount / 5) * 5) + }); + AddComponent(contract, new ImageComponent {ImageIndex = image_index}); + AddComponent(contract, new WindowTypeComponent { type = Window.Contract}); + AddComponent(contract, new VisibilityComponent { visible = false}); + return; - } + } + else { + } + } - } - } + Logging.Warning("Never generated enough squares for area."); + + } + } }