Skip to content

Commit f51ca03

Browse files
committed
Farming cleanup
1 parent a81942d commit f51ca03

File tree

26 files changed

+108
-94
lines changed

26 files changed

+108
-94
lines changed

scripts/dataFiles.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { Minigames } from '@/lib/settings/minigames.js';
2525
import Agility from '@/lib/skilling/skills/agility.js';
2626
import Cooking from '@/lib/skilling/skills/cooking/cooking.js';
2727
import Crafting from '@/lib/skilling/skills/crafting/index.js';
28-
import Farming from '@/lib/skilling/skills/farming/index.js';
28+
import { Farming } from '@/lib/skilling/skills/farming/index.js';
2929
import { Fishing } from '@/lib/skilling/skills/fishing/fishing.js';
3030
import Fletching from '@/lib/skilling/skills/fletching/index.js';
3131
import Herblore from '@/lib/skilling/skills/herblore/herblore.js';

src/lib/MUser.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,15 @@ import { handleNewCLItems } from '@/lib/handleNewCLItems.js';
3939
import { marketPriceOfBank } from '@/lib/marketPrices.js';
4040
import backgroundImages from '@/lib/minions/data/bankBackgrounds.js';
4141
import type { CombatOptionsEnum } from '@/lib/minions/data/combatConstants.js';
42-
import { defaultFarmingContract } from '@/lib/minions/farming/index.js';
43-
import type { DetailedFarmingContract, FarmingContract } from '@/lib/minions/farming/types.js';
4442
import { blowpipeDarts, validateBlowpipeData } from '@/lib/minions/functions/blowpipeCommand.js';
4543
import type { AttackStyles } from '@/lib/minions/functions/index.js';
4644
import type { AddXpParams, BlowpipeData, ClueBank } from '@/lib/minions/types.js';
4745
import { getUsersPerkTier } from '@/lib/perkTiers.js';
4846
import { roboChimpUserFetch } from '@/lib/roboChimp.js';
4947
import { type MinigameName, type MinigameScore, Minigames } from '@/lib/settings/minigames.js';
50-
import { getFarmingInfoFromUser } from '@/lib/skilling/functions/getFarmingInfo.js';
51-
import Farming from '@/lib/skilling/skills/farming/index.js';
48+
import { Farming } from '@/lib/skilling/skills/farming/index.js';
49+
import { getFarmingInfoFromUser } from '@/lib/skilling/skills/farming/utils/getFarmingInfo.js';
50+
import type { DetailedFarmingContract, FarmingContract } from '@/lib/skilling/skills/farming/utils/types.js';
5251
import type { BankSortMethod } from '@/lib/sorts.js';
5352
import { ChargeBank } from '@/lib/structures/Bank.js';
5453
import { defaultGear, Gear } from '@/lib/structures/Gear.js';
@@ -784,7 +783,7 @@ Charge your items using ${mentionCommand(globalClient, 'minion', 'charge')}.`
784783
: Farming.Plants.find(i => i.name === currentFarmingContract?.plantToGrow);
785784
const detailed = getFarmingInfoFromUser(this.user);
786785
return {
787-
contract: currentFarmingContract ?? defaultFarmingContract,
786+
contract: currentFarmingContract ?? Farming.defaultFarmingContract,
788787
plant,
789788
matchingPlantedCrop: plant ? detailed.patchesDetailed.find(i => i.plant && i.plant === plant) : undefined
790789
};

src/lib/busyCounterCache.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
export function baseModifyBusyCounter(map: Map<string, number>, userID: string, amount: -1 | 1) {
22
const entry = map.get(userID);
3-
// if (entry) {
4-
// assert(entry >= 1, 'Busy counter should be no less than 1');
5-
// }
6-
// if (amount === -1) {
7-
// assert(entry !== undefined && entry > 0, `Tried to decrement busy counter by 1, when its ${entry}`);
8-
// }
93
if (!entry) {
104
map.set(userID, amount);
115
return amount;
@@ -19,9 +13,11 @@ export function baseModifyBusyCounter(map: Map<string, number>, userID: string,
1913
function getBusyCounter(userID: string) {
2014
return globalClient.busyCounterCache.get(userID) ?? 0;
2115
}
16+
2217
export function modifyBusyCounter(userID: string, amount: -1 | 1) {
2318
return baseModifyBusyCounter(globalClient.busyCounterCache, userID, amount);
2419
}
20+
2521
export function userIsBusy(userID: string) {
2622
return getBusyCounter(userID) > 0;
2723
}

src/lib/canvas/canvasUtil.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
} from 'skia-canvas';
99

1010
import type { IconPackID } from '@/lib/canvas/iconPacks.js';
11-
import type { DetailedFarmingContract } from '@/lib/minions/farming/types.js';
11+
import type { DetailedFarmingContract } from '@/lib/skilling/skills/farming/utils/types.js';
1212
import { assert } from '@/lib/util/logError.js';
1313

1414
export function registerFont(fontFamily: string, fontPath: string) {

src/lib/minions/functions/autoFarm.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { AutoFarmFilterEnum } from '@prisma/client';
22

3-
import type { IPatchDataDetailed } from '@/lib/minions/farming/types.js';
43
import { allFarm, replant } from '@/lib/minions/functions/autoFarmFilters.js';
54
import { plants } from '@/lib/skilling/skills/farming/index.js';
5+
import type { IPatchDataDetailed } from '@/lib/skilling/skills/farming/utils/types.js';
66
import type { Plant } from '@/lib/skilling/types.js';
77
import { farmingPlantCommand } from '@/mahoji/lib/abstracted_commands/farmingCommand.js';
88

src/lib/minions/functions/autoFarmFilters.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { Bank } from 'oldschooljs';
22

33
import type { MUserClass } from '@/lib/MUser.js';
4-
import type { IPatchDataDetailed } from '@/lib/minions/farming/types.js';
5-
import { calcNumOfPatches } from '@/lib/skilling/functions/calcsFarming.js';
4+
import { calcNumOfPatches } from '@/lib/skilling/skills/farming/utils/calcsFarming.js';
5+
import type { IPatchDataDetailed } from '@/lib/skilling/skills/farming/utils/types.js';
66
import type { Plant } from '@/lib/skilling/types.js';
77

88
export function replant(

src/lib/openables.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ import {
2323

2424
import { ClueTiers } from '@/lib/clues/clueTiers.js';
2525
import { cluesRaresCL } from '@/lib/data/CollectionsExport.js';
26-
import { defaultFarmingContract } from '@/lib/minions/farming/index.js';
27-
import type { FarmingContract } from '@/lib/minions/farming/types.js';
2826
import { shadeChestOpenables } from '@/lib/shadesKeys.js';
2927
import { nestTable } from '@/lib/simulation/birdsNest.js';
3028
import {
@@ -34,7 +32,8 @@ import {
3432
CrystalChestTable,
3533
SpoilsOfWarTable
3634
} from '@/lib/simulation/misc.js';
37-
import { openSeedPack } from '@/lib/skilling/functions/calcFarmingContracts.js';
35+
import { Farming } from '@/lib/skilling/skills/farming/index.js';
36+
import type { FarmingContract } from '@/lib/skilling/skills/farming/utils/types.js';
3837

3938
const CacheOfRunesTable = new LootTable()
4039
.add('Death rune', [1000, 1500], 2)
@@ -351,10 +350,10 @@ const osjsOpenables: UnifiedOpenable[] = [
351350
message?: string;
352351
}> => {
353352
const { plantTier } =
354-
(args.user.user.minion_farmingContract as FarmingContract | null) ?? defaultFarmingContract;
353+
(args.user.user.minion_farmingContract as FarmingContract | null) ?? Farming.defaultFarmingContract;
355354
const openLoot = new Bank();
356355
for (let i = 0; i < args.quantity; i++) {
357-
openLoot.add(openSeedPack(plantTier));
356+
openLoot.add(Farming.openSeedPack(plantTier));
358357
}
359358
return { bank: openLoot };
360359
},

src/lib/skilling/skills/farming/index.ts

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,25 @@ import { Emoji } from '@oldschoolgg/toolkit';
22
import { CropUpgradeType } from '@prisma/client';
33
import { Items, itemID } from 'oldschooljs';
44

5+
import { openSeedPack } from '@/lib/skilling/skills/farming/utils/calcFarmingContracts.js';
56
import { defineSkill, type Plant } from '@/lib/skilling/types.js';
67
import allotmentPlants from './allotments.js';
78
import fruitTrees from './fruitTrees.js';
89
import herbPlants from './herbPlants.js';
910
import hopsPlants from './hops.js';
1011
import specialPlants from './specialPlants.js';
1112
import trees from './trees.js';
13+
import { calcNumOfPatches, calcVariableYield } from './utils/calcsFarming.js';
14+
import { defaultFarmingContract, defaultPatches } from './utils/farmingConstants.js';
15+
import {
16+
farmingPatchNames,
17+
findPlant,
18+
getFarmingKeyFromName,
19+
isPatchName,
20+
userGrowingProgressStr
21+
} from './utils/farmingHelpers.js';
22+
import { getFarmingInfo, getFarmingInfoFromUser } from './utils/getFarmingInfo.js';
23+
import * as PatchTypes from './utils/types.js';
1224

1325
export const plants: Plant[] = [
1426
...herbPlants,
@@ -60,14 +72,26 @@ for (const plant of plants) {
6072
}
6173
allFarmingItems.push(itemID('Tangleroot'));
6274

63-
const Farming = defineSkill({
75+
export { PatchTypes };
76+
77+
export const Farming = defineSkill({
6478
aliases: ['farming'],
6579
Plants: plants,
6680
id: 'farming',
6781
emoji: Emoji.Farming,
6882
name: 'Farming',
6983
maleFarmerItems,
70-
femaleFarmerItems
84+
femaleFarmerItems,
85+
defaultFarmingContract,
86+
defaultPatches,
87+
calcNumOfPatches,
88+
calcVariableYield,
89+
userGrowingProgressStr,
90+
findPlant,
91+
getFarmingKeyFromName,
92+
openSeedPack,
93+
farmingPatchNames,
94+
getFarmingInfoFromUser,
95+
getFarmingInfo,
96+
isPatchName
7197
});
72-
73-
export default Farming;

src/lib/skilling/functions/calcFarmingContracts.ts renamed to src/lib/skilling/skills/farming/utils/calcFarmingContracts.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { stringMatches } from '@oldschoolgg/toolkit';
33
import { Bank, LootTable } from 'oldschooljs';
44

55
import { HighSeedPackTable, LowSeedPackTable, MediumSeedPackTable } from '@/lib/data/seedPackTables.js';
6-
import type { PlantTier } from '@/lib/minions/farming/types.js';
6+
import type { PlantTier } from '@/lib/skilling/skills/farming/utils/types.js';
77

88
export function openSeedPack(seedTier: number): Bank {
99
const loot = new Bank();

0 commit comments

Comments
 (0)