Initial Commit

This commit is contained in:
Lachlan Leone
2026-04-05 18:57:16 +10:00
commit c3a5153a56
691 changed files with 85219 additions and 0 deletions
@@ -0,0 +1,16 @@
using System.Collections.Generic;
using Easter2025.Customs.Generics;
using Easter2025.Utilies;
using KitchenData;
using KitchenLib.Utils;
using UnityEngine;
namespace Easter2025.Customs.Appliances.Decorations
{
public class GrassBunny : GenericDecorationAppliance
{
public override string UniqueNameID => "GrassBunny";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("GrassBunny").AssignMaterialsByNames();
public override List<(Locale, ApplianceInfo)> InfoList => CenteralLang.Appliances.GrassBunny;
}
}
@@ -0,0 +1,22 @@
using System.Collections.Generic;
using Easter2025.Customs.Generics;
using Easter2025.Utilies;
using Kitchen;
using KitchenData;
using KitchenLib.Utils;
using UnityEngine;
namespace Easter2025.Customs.Appliances.Decorations
{
public class MountedCarrots : GenericDecorationAppliance
{
public override string UniqueNameID => "MountedCarrots";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("MountedCarrots").AssignMaterialsByNames();
public override List<IApplianceProperty> Properties => new List<IApplianceProperty>
{
new CMustHaveWall()
};
public override OccupancyLayer Layer => OccupancyLayer.Wall;
public override List<(Locale, ApplianceInfo)> InfoList => CenteralLang.Appliances.MountedCarrots;
}
}
+43
View File
@@ -0,0 +1,43 @@
using System.Collections.Generic;
using Easter2025.Utilies;
using Kitchen;
using KitchenData;
using KitchenLib.Customs;
using KitchenLib.Utils;
using UnityEngine;
namespace Easter2025.Customs.Appliances
{
public class DyeProvider : CustomAppliance
{
public override string UniqueNameID => "DyeProvider";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("DyeProvider").AssignMaterialsByNames();
public override List<IApplianceProperty> Properties => new List<IApplianceProperty>
{
KitchenPropertiesUtils.GetUnlimitedCItemProvider(GDOReferences.RedDye.ID),
new CVariableProvider
{
Current = 0,
Provide1 = GDOReferences.RedDye.ID,
Provide2 = GDOReferences.GreenDye.ID,
Provide3 = GDOReferences.BlueDye.ID
}
};
public override bool SellOnlyAsDuplicate => true;
public override bool IsPurchasable => true;
public override PriceTier PriceTier => PriceTier.Medium;
public override ShoppingTags ShoppingTags => ShoppingTags.Cooking | ShoppingTags.Misc;
public override List<(Locale, ApplianceInfo)> InfoList => CenteralLang.Appliances.DyeProvider;
public override void OnRegister(Appliance gameDataObject)
{
base.OnRegister(gameDataObject);
VariableProviderView variableProviderView = gameDataObject.Prefab.AddComponent<VariableProviderView>();
variableProviderView.Animator = gameDataObject.Prefab.GetComponent<Animator>();
gameDataObject.Prefab.GetChild("Bottles/BlueDyeBottle").AddComponent<ColourBlindMode>().Element = gameDataObject.Prefab.GetChild("Bottles/BlueDyeBottle/Octagon");
gameDataObject.Prefab.GetChild("Bottles/GreenDyeBottle").AddComponent<ColourBlindMode>().Element = gameDataObject.Prefab.GetChild("Bottles/GreenDyeBottle/Square");
gameDataObject.Prefab.GetChild("Bottles/RedDyeBottle").AddComponent<ColourBlindMode>().Element = gameDataObject.Prefab.GetChild("Bottles/RedDyeBottle/Circle");
}
}
}
+55
View File
@@ -0,0 +1,55 @@
using System.Collections.Generic;
using Easter2025.Utilies;
using Kitchen;
using KitchenData;
using KitchenLib.Customs;
using KitchenLib.Utils;
using UnityEngine;
namespace Easter2025.Customs.Appliances
{
public class EggBasketProvider : CustomAppliance
{
public override string UniqueNameID => "EggBasketProvider";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("EggBasketProvider").AssignMaterialsByNames();
public override List<IApplianceProperty> Properties => new List<IApplianceProperty>
{
new CItemHolder(),
new CItemProvider
{
Item = GDOReferences.EggBasket.ID,
Available = 1,
Maximum = 1,
PreventReturns = true,
AutoPlaceOnHolder = true
}
};
public override bool SellOnlyAsDuplicate => true;
public override bool IsPurchasable => true;
public override PriceTier PriceTier => PriceTier.Medium;
public override ShoppingTags ShoppingTags => ShoppingTags.Cooking | ShoppingTags.Misc;
public override List<Process> RequiresProcessForShop => new List<Process>
{
GDOReferences.SearchBush
};
public override List<(Locale, ApplianceInfo)> InfoList => CenteralLang.Appliances.EggBasketProvider;
public override void OnRegister(Appliance gameDataObject)
{
base.OnRegister(gameDataObject);
HoldPointContainer holdPointContainer = gameDataObject.Prefab.AddComponent<HoldPointContainer>();
LimitedItemSourceView limitedItemSourceView = gameDataObject.Prefab.AddComponent<LimitedItemSourceView>();
holdPointContainer.HoldPoint = gameDataObject.Prefab.GetChild("HoldPoint").transform;
limitedItemSourceView.HeldItemPosition = gameDataObject.Prefab.GetChild("HoldPoint").transform;
limitedItemSourceView.Items = new List<GameObject>
{
gameDataObject.Prefab.GetChild("HoldPoint/EggBasket")
};
}
}
}
+50
View File
@@ -0,0 +1,50 @@
using System.Collections.Generic;
using Easter2025.Utilies;
using Kitchen;
using KitchenData;
using KitchenLib.Customs;
using KitchenLib.Utils;
using UnityEngine;
namespace Easter2025.Customs.Appliances
{
public class EggMouldProvider : CustomAppliance
{
public override string UniqueNameID => "EggMouldProvider";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("EggMouldProvider").AssignMaterialsByNames();
public override List<IApplianceProperty> Properties => new List<IApplianceProperty>
{
new CItemHolder(),
new CItemProvider
{
Item = GDOReferences.EggMould.ID,
Available = 1,
Maximum = 1,
PreventReturns = true,
AutoPlaceOnHolder = true
}
};
public override bool SellOnlyAsDuplicate => true;
public override bool IsPurchasable => true;
public override PriceTier PriceTier => PriceTier.Medium;
public override ShoppingTags ShoppingTags => ShoppingTags.Cooking | ShoppingTags.Misc;
public override List<(Locale, ApplianceInfo)> InfoList => CenteralLang.Appliances.EggMouldProvider;
public override void OnRegister(Appliance gameDataObject)
{
base.OnRegister(gameDataObject);
HoldPointContainer holdPointContainer = gameDataObject.Prefab.AddComponent<HoldPointContainer>();
LimitedItemSourceView limitedItemSourceView = gameDataObject.Prefab.AddComponent<LimitedItemSourceView>();
holdPointContainer.HoldPoint = gameDataObject.Prefab.GetChild("HoldPoint").transform;
limitedItemSourceView.HeldItemPosition = gameDataObject.Prefab.GetChild("HoldPoint").transform;
limitedItemSourceView.Items = new List<GameObject>
{
gameDataObject.Prefab.GetChild("HoldPoint/EggMould")
};
}
}
}
+14
View File
@@ -0,0 +1,14 @@
using System.Collections.Generic;
using Easter2025.Utilies;
using KitchenData;
using KitchenLib.Customs;
namespace Easter2025.Customs.Appliances
{
public class GenerousBunnies : CustomAppliance
{
public override string UniqueNameID => "GenerousBunnies";
public override bool IsPurchasable => false;
public override List<(Locale, ApplianceInfo)> InfoList => CenteralLang.Appliances.GenerousBunnies;
}
}
@@ -0,0 +1,17 @@
using System.Collections.Generic;
using Easter2025.Customs.Generics;
using Easter2025.Utilies;
using KitchenData;
using KitchenLib.Utils;
using UnityEngine;
namespace Easter2025.Customs.Appliances
{
public class HotCrossBunsProvider : GenericProvider
{
public override Item ProvidedItem => GDOReferences.RawHotCrossBun;
public override string UniqueNameID => "HotCrossBunsProvider";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("HotCrossBunsProvider").AssignMaterialsByNames();
public override List<(Locale, ApplianceInfo)> InfoList => CenteralLang.Appliances.HotCrossBunsProvider;
}
}
@@ -0,0 +1,48 @@
using System.Collections.Generic;
using Easter2025.Components;
using Easter2025.Customs.Generics;
using Easter2025.Utilies;
using Easter2025.Views;
using Easter2025.Views.Local;
using Kitchen;
using KitchenData;
using KitchenLib.Utils;
using Shapes;
using UnityEngine;
namespace Easter2025.Customs.Appliances.SceneAppliances
{
public class Bush : GenericSceneAppliance
{
public override string UniqueNameID => "Bush";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("VanillaBush").AssignMaterialsByNames();
public override List<IApplianceProperty> Properties => new List<IApplianceProperty>
{
new CEggBush(),
new CCanHideItem(),
new CItemHolder(),
new CImmovable(),
new CTakesDuration
{
Total = 1,
Manual = true,
Mode = InteractionMode.Items
},
new CDisplayDuration
{
Process = GDOReferences.SearchBush.ID
}
};
public override bool IsNonInteractive => false;
public override void OnRegister(Appliance gameDataObject)
{
base.OnRegister(gameDataObject);
HoldPointContainer holdPointContainer = gameDataObject.Prefab.AddComponent<HoldPointContainer>();
holdPointContainer.HoldPoint = gameDataObject.Prefab.GetChild("HoldPoint").transform;
BushView bushView = gameDataObject.Prefab.AddComponent<BushView>();
bushView.Animator = gameDataObject.Prefab.GetComponentInChildren<Animator>();
}
}
}
@@ -0,0 +1,12 @@
using Easter2025.Customs.Generics;
using KitchenLib.Utils;
using UnityEngine;
namespace Easter2025.Customs.Appliances.SceneAppliances
{
public class EasterGround : GenericSceneAppliance
{
public override string UniqueNameID => "EasterGround";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("EasterGround").AssignMaterialsByNames();
}
}
@@ -0,0 +1,31 @@
using System.Collections.Generic;
using Easter2025.Customs.Generics;
using Easter2025.Views.Local;
using KitchenData;
using KitchenLib.Utils;
using UnityEngine;
namespace Easter2025.Customs.Appliances.SceneAppliances
{
public class EasterTree : GenericSceneAppliance
{
public override string UniqueNameID => "EasterTree";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("EasterTree").AssignMaterialsByNames();
public override void OnRegister(Appliance gameDataObject)
{
EggPileView eggPileView = Prefab.AddComponent<EggPileView>();
eggPileView.EggContainers = new List<GameObject>
{
gameDataObject.Prefab.GetChild("Eggs/Egg Container 1"),
gameDataObject.Prefab.GetChild("Eggs/Egg Container 2"),
gameDataObject.Prefab.GetChild("Eggs/Egg Container 3"),
gameDataObject.Prefab.GetChild("Eggs/Egg Container 4"),
gameDataObject.Prefab.GetChild("Eggs/Egg Container 5"),
gameDataObject.Prefab.GetChild("Eggs/Egg Container 6"),
};
base.OnRegister(gameDataObject);
}
}
}
@@ -0,0 +1,30 @@
using Easter2025.Customs.Generics;
using Easter2025.Views.Local;
using KitchenData;
using KitchenLib.Utils;
using UnityEngine;
namespace Easter2025.Customs.Appliances.SceneAppliances
{
public class EggCobblestone : GenericSceneAppliance
{
public override string UniqueNameID => "EggCobblestone";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("EggCobblestone").AssignMaterialsByNames();
public override void OnRegister(Appliance gameDataObject)
{
base.OnRegister(gameDataObject);
RandomRotationView randomRotationView = gameDataObject.Prefab.AddComponent<RandomRotationView>();
randomRotationView.Container = gameDataObject.Prefab.GetChild("Container");
randomRotationView.min = 0;
randomRotationView.max = 360;
RandomPlacementView randomPlacementView = gameDataObject.Prefab.AddComponent<RandomPlacementView>();
randomPlacementView.Container = gameDataObject.Prefab.GetChild("Container");
randomPlacementView.min = new(-0.1f,0,-0.1f);
randomPlacementView.max = new (0.1f,0,0.1f);
}
}
}
@@ -0,0 +1,31 @@
using System.Collections.Generic;
using Easter2025.Customs.Generics;
using Easter2025.Views.Local;
using KitchenData;
using KitchenLib.Utils;
using UnityEngine;
namespace Easter2025.Customs.Appliances.SceneAppliances
{
public class EggPile : GenericSceneAppliance
{
public override string UniqueNameID => "EggPile";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("EggPile").AssignMaterialsByNames();
public override void OnRegister(Appliance gameDataObject)
{
base.OnRegister(gameDataObject);
EggPileView eggPileView = gameDataObject.Prefab.AddComponent<EggPileView>();
eggPileView.EggContainers = new List<GameObject>
{
gameDataObject.Prefab.GetChild("EggContainer/Egg_1"),
gameDataObject.Prefab.GetChild("EggContainer/Egg_2"),
gameDataObject.Prefab.GetChild("EggContainer/Egg_3"),
};
RandomRotationView randomRotationView = gameDataObject.Prefab.AddComponent<RandomRotationView>();
randomRotationView.Container = gameDataObject.Prefab.GetChild("EggContainer");
}
}
}
+50
View File
@@ -0,0 +1,50 @@
using System.Collections.Generic;
using Easter2025.Utilies;
using Kitchen;
using KitchenData;
using KitchenLib.Customs;
using KitchenLib.Utils;
using UnityEngine;
namespace Easter2025.Customs.Appliances
{
public class WrapperProvider : CustomAppliance
{
public override string UniqueNameID => "WrapperProvider";
public override GameObject Prefab => Mod.Bundle.LoadAsset<GameObject>("WrapperProvider").AssignMaterialsByNames();
public override List<IApplianceProperty> Properties => new List<IApplianceProperty>
{
new CItemHolder(),
new CItemProvider
{
Item = GDOReferences.WrapperRoll.ID,
Available = 1,
Maximum = 1,
PreventReturns = true,
AutoPlaceOnHolder = true
}
};
public override bool SellOnlyAsDuplicate => true;
public override bool IsPurchasable => true;
public override PriceTier PriceTier => PriceTier.Medium;
public override ShoppingTags ShoppingTags => ShoppingTags.Cooking | ShoppingTags.Misc;
public override List<(Locale, ApplianceInfo)> InfoList => CenteralLang.Appliances.WrapperProvider;
public override void OnRegister(Appliance gameDataObject)
{
base.OnRegister(gameDataObject);
HoldPointContainer holdPointContainer = gameDataObject.Prefab.AddComponent<HoldPointContainer>();
LimitedItemSourceView limitedItemSourceView = gameDataObject.Prefab.AddComponent<LimitedItemSourceView>();
holdPointContainer.HoldPoint = gameDataObject.Prefab.GetChild("HoldPoint").transform;
limitedItemSourceView.HeldItemPosition = gameDataObject.Prefab.GetChild("HoldPoint").transform;
limitedItemSourceView.Items = new List<GameObject>
{
gameDataObject.Prefab.GetChild("HoldPoint/WrapperRoll")
};
}
}
}