27.09.2020

~ Moved Default-Shader to 2D to provied 2D-specific feature
~ Fixed UVs in Polygon
This commit is contained in:
Michel Fedde 2020-09-27 11:58:14 +02:00
parent 617a7ef044
commit 2aa12f8d25
19 changed files with 166 additions and 83 deletions

View file

@ -0,0 +1,29 @@
using System;
using System.IO;
using System.Reflection;
namespace SM.Utility
{
public class AssemblyUtility
{
/// <summary>
/// Read a file that is saved in a assembly
/// </summary>
/// <param name="ass">The assembly that contains the file</param>
/// <param name="path">The path to the file inside the assembly</param>
/// <returns></returns>
public static string ReadAssemblyFile(Assembly ass, string path) { return new StreamReader(GetAssemblyStream(ass, path)).ReadToEnd(); }
/// <summary>
/// Read a file that is saved in the calling assembly
/// </summary>
/// <param name="path">The path to the file inside the assembly</param>
/// <returns></returns>
public static string ReadAssemblyFile(string path) { return ReadAssemblyFile(Assembly.GetCallingAssembly(), path); }
public static Stream GetAssemblyStream(Assembly ass, string path) { return ass.GetManifestResourceStream(ass.GetName().Name + "." + path) ?? throw new InvalidOperationException("Assembly couldn't find resource at path '" + path + "'."); }
public static Stream GetAssemblyStream(string path) { return GetAssemblyStream(Assembly.GetCallingAssembly(), path); }
}
}

View file

@ -0,0 +1,23 @@
using System;
namespace SM.Utility
{
public class BezierCurve
{
public static float Calculate(float t, params float[] points)
{
int pointAmount = points.Length;
int itterations = pointAmount - 1;
double x = Math.Pow(1 - t, itterations) * points[0];
for (int i = 1; i < itterations; i++)
{
if (i % 2 == 0) x += itterations * (1 - t) * Math.Pow(t, itterations - 1) * points[i];
else x += itterations * Math.Pow(1 - t, itterations - 1) * t * points[i];
}
x += Math.Pow(t, itterations) * points[pointAmount - 1];
return (float)x;
}
}
}

View file

@ -0,0 +1,21 @@
namespace SM.Utility
{
public class Deltatime
{
public static float UpdateDelta { get; internal set; }
public static float RenderDelta { get; internal set; }
public bool UseRender;
public float Scale;
public float DeltaTime => (UseRender ? RenderDelta : UpdateDelta) * Scale;
public Deltatime(float scale = 1, bool useRender = false)
{
UseRender = useRender;
Scale = scale;
}
}
}

View file

@ -0,0 +1,22 @@
using System;
namespace SM.Utility
{
public class Randomize
{
public static Random Randomizer = new Random();
public static void SetSeed(int seed) { Randomizer = new Random(seed); }
public static bool GetBool(float tolerance) { return Randomizer.NextDouble() > tolerance; }
public static int GetInt() { return Randomizer.Next(); }
public static int GetInt(int max) { return Randomizer.Next(max); }
public static int GetInt(int min, int max) { return Randomizer.Next(min, max); }
public static float GetFloat() { return (float)Randomizer.NextDouble(); }
public static float GetFloat(float max) { return (float)Randomizer.NextDouble() * max; }
public static float GetFloat(float min, float max) { return (float)Randomizer.NextDouble() * max + min; }
}
}