Den hier wollte ich nämlich: MultiFalsableBool, Babey!!
This commit is contained in:
parent
c1bc5ec714
commit
8013ec62a0
|
@ -0,0 +1,53 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Stell dir vor, du hättest einen Bool und der könnte einfach mehrmals falsch sein. Wäre das nicht total cool?
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public struct MultiFalsableBool
|
||||
{
|
||||
[SerializeField]
|
||||
private int _falseness;
|
||||
|
||||
public bool IsTrue => _falseness == 0;
|
||||
public bool IsFalse => _falseness > 0;
|
||||
|
||||
/// <summary>
|
||||
/// Macht den bool noch falscher als er vorher war. Wenn er vorher wahr wahr, dann ist er jetzt definitiv falsch.
|
||||
/// </summary>
|
||||
/// <returns>Der neue Wert.</returns>
|
||||
public bool MakeFalslier()
|
||||
{
|
||||
_falseness++;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Macht den bool nicht wahr, sondern lediglich wahrer als er vorher wahr. Wenn er allerdings nur einfach falsch wahr, dann ist er jetzt wahr.
|
||||
/// Wenn er vorher wahr war, bleibt er wahr.
|
||||
/// </summary>
|
||||
/// <returns>Der neue Wert.</returns>
|
||||
public bool MakeTruer()
|
||||
{
|
||||
if (_falseness > 0)
|
||||
_falseness--;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public MultiFalsableBool(bool value) => _falseness = value ? 0 : 1;
|
||||
|
||||
/// <summary>
|
||||
/// Erzeugt eine neue Instanz von MultiFalsableBool und initialisiert diese mit dem gegebenen Wert.
|
||||
/// </summary>
|
||||
/// <param name="value">Der Wert, der angibt, wie falsch der bool ist.</param>
|
||||
public MultiFalsableBool(int value) => _falseness = (value > 0 ? value : 0);
|
||||
|
||||
public static implicit operator bool(MultiFalsableBool value) => value.IsTrue;
|
||||
|
||||
public static bool operator ==(MultiFalsableBool a, bool b) => a.IsTrue == b;
|
||||
|
||||
public static bool operator !=(MultiFalsableBool a, bool b) => a.IsTrue != b;
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bc62ec449b954b119f12024eac70da9b
|
||||
timeCreated: 1712244471
|
Loading…
Reference in New Issue