This commit is contained in:
33333-33333 2026-07-01 22:59:49 +09:00
commit acf93ec6df
22 changed files with 320 additions and 261 deletions

View file

@ -336,18 +336,38 @@ const RESET_PRESETS = Object.freeze({
addPresetItemsScattered(worldRef, "ball", presetCount(field, 6, 3, 10), center, { pad: 88, reason: "preset-happy-ball" });
}
function addDefaultPresetRobotCleaner(worldRef, presetId = "default") {
if (!worldRef || normalizeResetPresetId(presetId) === "empty") return;
if ((worldRef.items || []).some(item => item && !item.dead && item.type === "robot_cleaner")) return;
const center = { x0: worldRef.w * 0.16, x1: worldRef.w * 0.84, y0: worldRef.h * 0.16, y1: worldRef.h * 0.84 };
addPresetItemsScattered(worldRef, "robot_cleaner", 1, center, {
pad: 112,
reason: `preset-${normalizeResetPresetId(presetId)}-default-robot-cleaner`,
avoidOverlap: true,
avoidAllObstacles: true,
attempts: 140,
maxRadius: 260,
});
if ((worldRef.items || []).some(item => item && !item.dead && item.type === "robot_cleaner")) return;
const p = randPoint(worldRef, 88, center);
addPresetItem(worldRef, "robot_cleaner", p.x, p.y, { reason: `preset-${normalizeResetPresetId(presetId)}-default-robot-cleaner` });
}
function generatePresetWorld(worldRef, field, presetId, seedPopulation) {
switch (normalizeResetPresetId(presetId)) {
const preset = normalizeResetPresetId(presetId);
switch (preset) {
case "empty": return;
case "athletic": return generateAthleticPreset(worldRef, field);
case "crowded": return generateCrowdedPreset(worldRef, field);
case "family": return generateFamilyPreset(worldRef, field);
case "war": return generateWarPreset(worldRef, field);
case "happy": return generateHappyPreset(worldRef, field);
case "athletic": generateAthleticPreset(worldRef, field); break;
case "crowded": generateCrowdedPreset(worldRef, field); break;
case "family": generateFamilyPreset(worldRef, field); break;
case "war": generateWarPreset(worldRef, field); break;
case "happy": generateHappyPreset(worldRef, field); break;
case "default":
default:
return generateDefaultPreset(worldRef, field, seedPopulation);
generateDefaultPreset(worldRef, field, seedPopulation);
break;
}
addDefaultPresetRobotCleaner(worldRef, preset);
}
function groundForResetPreset(presetId = "default") {