Skip to content

Commit 314e68b

Browse files
committed
Add "Carry Chests" mod for Stardew Valley
This commit introduces the "Carry Chests" mod, enabling players to pick up and carry placed chests. It includes configuration options for limiting the number of chests that can be carried and applying a slowness effect when the limit is exceeded. The mod's structure has been updated across several files, including project, configuration, and localization files for multiple languages. A detailed changelog has also been added to document the version history and changes made.
0 parents  commit 314e68b

25 files changed

+840
-0
lines changed

.editorconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
FauxCore/.editorconfig

.gitignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
*.suo
2+
*.user
3+
.vs/
4+
.idea/
5+
[Bb]in/
6+
[Oo]bj/
7+
_UpgradeReport_Files/
8+
[Pp]ackages/
9+
releases/
10+
11+
Thumbs.db
12+
Desktop.ini
13+
.DS_Store
14+
manifest.json

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[submodule "FauxCore"]
2+
path = FauxCore
3+
url = git@github.com:LeFauxMatt/FauxCore.git
4+
branch = develop

CHANGELOG.md

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
# Garbage Day Change Log
2+
3+
## 3.2.1 (Unreleased)
4+
5+
### Changed
6+
7+
* Added config option to reduce log amount.
8+
* Config options can be loaded from backup.
9+
* Removed the unecessary harmony flag.
10+
11+
## 3.2.0 (December 14, 2024)
12+
13+
### Added
14+
15+
* Added a prismatic indicator option for special items.
16+
17+
### Changed
18+
19+
* Drop FauxCore dependency.
20+
21+
## 3.1.9 (December 3, 2024)
22+
23+
### Changed
24+
25+
* Updated for FauxCore 1.2.1.
26+
* Load Garbage Can texture from internal asset.
27+
* If config file is missing, it will attempt to restore from global data.
28+
29+
### Fixed
30+
31+
* Updated for SDV 1.6.10 and SMAPI 4.1.3.
32+
33+
## 3.1.8 (April 15, 2024)
34+
35+
### Changed
36+
37+
* Toolbar icon forces the trash can lid event on the nearby garbage can.
38+
* Provide default options for Better Chests.
39+
40+
### Fixed
41+
42+
* Fixed garbage cans dropping infinite special items.
43+
44+
## 3.1.7 (April 12, 2024)
45+
46+
### Changed
47+
48+
* Initialize GarbageDay DI container on Entry.
49+
50+
## 3.1.6 (April 9, 2024)
51+
52+
### Changed
53+
54+
* Updated for FauxCore api changes.
55+
56+
## 3.1.5 (April 6, 2024)
57+
58+
### Fixed
59+
60+
* Add toolbar icon integration on game launched.
61+
62+
## 3.1.4 (April 4, 2024)
63+
64+
### Fixed
65+
66+
* Garbage cans can now be loaded by default when the config option is set.
67+
68+
## 3.1.3 (April 2, 2024)
69+
70+
### Changed
71+
72+
* Added logging for debugging purposes.
73+
74+
## 3.1.2 (March 25, 2024)
75+
76+
### Fixed
77+
78+
* Fixed error that occurs when custom maps are installed.
79+
* Fixed api integration with Toolbar Icons.
80+
81+
## 3.1.1 (March 19, 2024)
82+
83+
### Changed
84+
85+
* Rebuild against final SDV 1.6 and SMAPI 4.0.0.
86+
87+
## 3.1.0 (March 19, 2024)
88+
89+
### Changed
90+
91+
* Updated for SDV 1.6 and .NET 6
92+
93+
## 3.0.1 (August 21, 2022)
94+
95+
### Changed
96+
97+
* Open the Garbage Can lid when a farmer is nearby.
98+
99+
## 3.0.0 ( August 20, 2022)
100+
101+
### Added
102+
103+
* Added console command:
104+
* `garbage_hat` - Next Garbage Can will drop a hat.
105+
106+
### Changed
107+
108+
* Updated to SMAPI 3.15.
109+
* No longer depends on any other mods.
110+
111+
## 2.1.0-beta.5
112+
113+
### Changed
114+
115+
* Added support for more types of custom loot
116+
* Fixed RNG being too low
117+
118+
## 2.1.0-beta.1
119+
120+
### Changed
121+
122+
* Updated from Expanded Storage (Legacy) to XSLite+XSPlus
123+
124+
## 2.0.1
125+
126+
### Changed
127+
128+
* Allow adding Garbage Cans using "Garbage": "ID" tile property
129+
* Update to SMAPI 3.12
130+
131+
## 2.0.0
132+
133+
### Changed
134+
135+
* Preliminary 64-bit support
136+
* Simplified map integrations
137+
138+
## 1.0.3
139+
140+
### Added
141+
142+
* Added config option to hide Garbage Cans from Chests Anywhere
143+
144+
## 1.0.2
145+
146+
### Added
147+
148+
* Added console commands:
149+
* `garbage_fill` - Adds loot to all garbage cans.
150+
* `garbage_kill` - Removes all garbage cans.
151+
* Added Open when Farmer Nearby
152+
* Added color based on items
153+
154+
### Changed
155+
156+
* Fixed MacOS support
157+
158+
## 1.0.1
159+
160+
### Added
161+
162+
* Added Content Pack Format
163+
* Added API
164+
165+
## 1.0.0
166+
167+
* Initial Release

CarryChests.sln

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
Microsoft Visual Studio Solution File, Format Version 12.00
2+
# Visual Studio Version 17
3+
VisualStudioVersion = 17.13.35617.110
4+
MinimumVisualStudioVersion = 10.0.40219.1
5+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarryChests", "CarryChests\CarryChests.csproj", "{F6D6E894-EEB9-4D16-9BEC-C0FAF955AB88}"
6+
EndProject
7+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}"
8+
ProjectSection(SolutionItems) = preProject
9+
LICENSE.txt = LICENSE.txt
10+
README.md = README.md
11+
EndProjectSection
12+
EndProject
13+
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = ".Common", "FauxCore\FauxCommon\.Common.shproj", "{966B9495-8681-44DA-9F8E-0838E5EB1A42}"
14+
EndProject
15+
Global
16+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
17+
Debug|Any CPU = Debug|Any CPU
18+
Release|Any CPU = Release|Any CPU
19+
EndGlobalSection
20+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
21+
{F6D6E894-EEB9-4D16-9BEC-C0FAF955AB88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
22+
{F6D6E894-EEB9-4D16-9BEC-C0FAF955AB88}.Debug|Any CPU.Build.0 = Debug|Any CPU
23+
{F6D6E894-EEB9-4D16-9BEC-C0FAF955AB88}.Release|Any CPU.ActiveCfg = Release|Any CPU
24+
{F6D6E894-EEB9-4D16-9BEC-C0FAF955AB88}.Release|Any CPU.Build.0 = Release|Any CPU
25+
EndGlobalSection
26+
GlobalSection(SolutionProperties) = preSolution
27+
HideSolutionNode = FALSE
28+
EndGlobalSection
29+
GlobalSection(ExtensibilityGlobals) = postSolution
30+
SolutionGuid = {73E2B706-7FCD-40D7-B8F8-5E2B8A27AD6E}
31+
EndGlobalSection
32+
GlobalSection(SharedMSBuildProjectFiles) = preSolution
33+
FauxCore\FauxCommon\FauxCommon.projitems*{966b9495-8681-44da-9f8e-0838e5eb1a42}*SharedItemsImports = 13
34+
FauxCore\FauxCommon\FauxCommon.projitems*{f6d6e894-eeb9-4d16-9bec-c0faf955ab88}*SharedItemsImports = 5
35+
EndGlobalSection
36+
EndGlobal

CarryChests/CarryChests.csproj

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<Import Project="..\FauxCore\FauxCommon\Common.targets" />
4+
<Import Project="..\FauxCore\FauxCommon\FauxCommon.projitems" Label="Shared" />
5+
6+
<PropertyGroup>
7+
<Name>Carry Chests</Name>
8+
<Description>Allows you to pick up placed chests with items.</Description>
9+
<Version>1.0.0-beta.1</Version>
10+
<EnableHarmony>true</EnableHarmony>
11+
<RootNamespace>LeFauxMods.CarryChest</RootNamespace>
12+
<UniqueId>furyx639.CarryChest</UniqueId>
13+
<UpdateKeys>GitHub:LeFauxMatt/CarryChest</UpdateKeys>
14+
<RepositoryUrl>https://github.com/LeFauxMatt/CarryChest</RepositoryUrl>
15+
<RepositoryType>git</RepositoryType>
16+
</PropertyGroup>
17+
18+
<ItemGroup>
19+
<PackageReference Include="Pathoschild.Stardew.ModTranslationClassBuilder" Version="2.2.0" />
20+
</ItemGroup>
21+
22+
<ItemGroup>
23+
<SMAPIDependency Include="spacechase0.GenericModConfigMenu" Version="1.14.1" required="false" />
24+
</ItemGroup>
25+
26+
</Project>

CarryChests/Constants.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
namespace LeFauxMods.CarryChest;
2+
3+
internal static class Constants
4+
{
5+
public const string ModId = "furyx639.CarryChests";
6+
7+
public const string SlowEffectKey = ModId + "/Slow";
8+
}

CarryChests/ModConfig.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using LeFauxMods.Common.Interface;
2+
using LeFauxMods.Common.Models;
3+
4+
namespace LeFauxMods.CarryChest;
5+
6+
/// <summary>Represents the mod configuration.</summary>
7+
internal class ModConfig : IConfigWithLogAmount
8+
{
9+
/// <inheritdoc />
10+
public LogAmount LogAmount { get; set; }
11+
12+
/// <summary>Gets or sets the amount the player will be slowed when carrying chests above the limit.</summary>
13+
public float SlownessAmount { get; set; } = -1f;
14+
15+
/// <summary>Gets or sets the maximum number of chests the player can hold before being slowed.</summary>
16+
public int SlownessLimit { get; set; } = 1;
17+
18+
/// <summary>Gets or sets the number of chests the player can carry.</summary>
19+
public int TotalLimit { get; set; } = 3;
20+
21+
/// <summary>
22+
/// Copies the values from this instance to another instance.
23+
/// </summary>
24+
/// <param name="other">The other config instance.</param>
25+
public void CopyTo(ModConfig other)
26+
{
27+
other.LogAmount = this.LogAmount;
28+
other.SlownessAmount = this.SlownessAmount;
29+
other.SlownessLimit = this.SlownessLimit;
30+
other.TotalLimit = this.TotalLimit;
31+
}
32+
}

0 commit comments

Comments
 (0)