Fixed sector pref clearing

This commit is contained in:
Anuken 2018-10-06 22:53:12 -04:00
parent 916a4cfc73
commit c1ccf4fceb
4 changed files with 72 additions and 26 deletions

View File

@ -37,7 +37,7 @@ public class Mechs implements ContentList{
alpha = new Mech("alpha-mech", false){ alpha = new Mech("alpha-mech", false){
int maxDrones = 3; int maxDrones = 3;
float buildTime = 100f; float buildTime = 200f;
{ {
drillPower = 1; drillPower = 1;

View File

@ -3,8 +3,7 @@ package io.anuke.mindustry.maps;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.content.Items; import io.anuke.mindustry.content.Items;
import io.anuke.mindustry.content.Mechs; import io.anuke.mindustry.content.Mechs;
import io.anuke.mindustry.content.blocks.UnitBlocks; import io.anuke.mindustry.content.blocks.*;
import io.anuke.mindustry.content.blocks.UpgradeBlocks;
import io.anuke.mindustry.entities.units.UnitCommand; import io.anuke.mindustry.entities.units.UnitCommand;
import io.anuke.mindustry.maps.missions.*; import io.anuke.mindustry.maps.missions.*;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
@ -14,29 +13,61 @@ import io.anuke.ucore.util.Structs;
import static io.anuke.mindustry.Vars.mobile; import static io.anuke.mindustry.Vars.mobile;
public class SectorPresets{ public class SectorPresets{
private final GridMap<SectorPreset> presets = new GridMap<SectorPreset>(){{ private final GridMap<SectorPreset> presets = new GridMap<>();
private final GridMap<Array<Item>> orePresets = new GridMap<>();
public SectorPresets(){
//base tutorial mission //base tutorial mission
put(0, 0, new SectorPreset(TutorialSector.getMissions(), 1)); add(new SectorPreset(0, 0,
TutorialSector.getMissions(),
Array.with(),
1));
//water mission //water mission
put(-2, 0, new SectorPreset(Array.with(), 1)); add(new SectorPreset(-2, 0,
//command center mission Structs.array(
//TODO generate enemy base Missions.blockRecipe(LiquidBlocks.mechanicalPump),
//TODO make 2x2 Missions.blockRecipe(ProductionBlocks.cultivator)
//TODO more gen info ),
put(0, 1, new SectorPreset(Structs.array(new BlockMission(UnitBlocks.daggerFactory), Missions.blockRecipe(UnitBlocks.commandCenter), Array.with(Items.copper, Items.lead, Items.copper),
new CommandMission(UnitCommand.retreat), new CommandMission(UnitCommand.attack), new BattleMission()), 2)); 2));
//reconstructor mission
put(0, -1, new SectorPreset(Structs.array(Missions.blockRecipe(mobile ? UpgradeBlocks.tridentPad : UpgradeBlocks.deltaPad),
new MechMission(Mechs.delta)), 1));
//oil mission
put(1, 0, new SectorPreset(Array.with(), 1));
}};
private final GridMap<Array<Item>> orePresets = new GridMap<Array<Item>>(){{ //command center mission
put(0, 0, Array.with(Items.copper)); add(new SectorPreset(2, 0,
put(1, 0, Array.with(Items.copper, Items.lead, Items.coal)); Structs.array(
}}; new BlockMission(UnitBlocks.daggerFactory),
Missions.blockRecipe(UnitBlocks.commandCenter),
new CommandMission(UnitCommand.retreat),
new CommandMission(UnitCommand.attack),
new BattleMission()
),
Array.with(Items.copper, Items.lead, Items.copper),
2));
//reconstructor mission
add(new SectorPreset(0, -2,
Structs.array(
Missions.blockRecipe(mobile ? UpgradeBlocks.tridentPad : UpgradeBlocks.deltaPad),
new MechMission(Mechs.delta),
new WaveMission(15)
),
Array.with(Items.copper, Items.lead, Items.copper, Items.titanium),
2));
//oil mission
add(new SectorPreset(0, 1,
Structs.array(
Missions.blockRecipe(ProductionBlocks.cultivator),
Missions.blockRecipe(CraftingBlocks.biomatterCompressor)
),
Array.with(Items.copper, Items.lead, Items.copper, Items.titanium),
2));
//tutorial ore presets
orePresets.put(0, 0, Array.with(Items.copper));
orePresets.put(1, 0, Array.with(Items.copper, Items.lead, Items.coal));
}
public Array<Item> getOres(int x, int y){ public Array<Item> getOres(int x, int y){
return orePresets.get(x, y); return orePresets.get(x, y);
@ -46,13 +77,26 @@ public class SectorPresets{
return presets.get(x, y); return presets.get(x, y);
} }
private void add(SectorPreset preset){
for(int x = 0; x < preset.size; x++){
for(int y = 0; y < preset.size; y++){
presets.put(x + preset.x, y + preset.y, preset);
orePresets.put(x + preset.x, y + preset.y, preset.ores);
}
}
}
public static class SectorPreset{ public static class SectorPreset{
public final Array<Mission> missions; public final Array<Mission> missions;
public final int size; public final Array<Item> ores;
public final int size, x, y;
public SectorPreset(Array<Mission> missions, int size){ public SectorPreset(int x, int y, Array<Mission> missions, Array<Item> ores, int size){
this.missions = missions; this.missions = missions;
this.size = size; this.size = size;
this.x = x;
this.y = y;
this.ores = ores;
} }
void generate(Sector sector){ void generate(Sector sector){

View File

@ -293,6 +293,8 @@ public class Sectors{
SectorPreset p = presets.get(sector.x, sector.y); SectorPreset p = presets.get(sector.x, sector.y);
sector.missions.addAll(p.missions); sector.missions.addAll(p.missions);
sector.width = sector.height = p.size; sector.width = sector.height = p.size;
sector.x = (short)p.x;
sector.y = (short)p.y;
}else{ }else{
genMissions(sector); genMissions(sector);
} }

View File

@ -151,7 +151,7 @@ public class SettingsMenuDialog extends SettingsDialog{
dialog.addCloseButton(); dialog.addCloseButton();
dialog.content().addButton("$text.settings.clearsectors", "clear", () -> { dialog.content().addButton("$text.settings.clearsectors", "clear", () -> {
ui.showConfirm("$text.confirm", "$text.settings.clear.confirm", () -> { ui.showConfirm("$text.confirm", "$text.settings.clear.confirm", () -> {
Settings.putString("sectors", "{}"); Settings.clearBytes("sectors");
Settings.save(); Settings.save();
world.sectors().load(); world.sectors().load();
dialog.hide(); dialog.hide();
@ -160,7 +160,7 @@ public class SettingsMenuDialog extends SettingsDialog{
dialog.content().row(); dialog.content().row();
dialog.content().addButton("$text.settings.clearunlocks", "clear", () -> { dialog.content().addButton("$text.settings.clearunlocks", "clear", () -> {
ui.showConfirm("$text.confirm", "$text.settings.clear.confirm", () -> { ui.showConfirm("$text.confirm", "$text.settings.clear.confirm", () -> {
Settings.putString("unlocks", "{}"); Settings.clearBytes("unlocks");
Settings.save(); Settings.save();
dialog.hide(); dialog.hide();
}); });