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){
int maxDrones = 3;
float buildTime = 100f;
float buildTime = 200f;
{
drillPower = 1;

View File

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

View File

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

View File

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