mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-01 17:33:26 +00:00
fixed
This commit is contained in:
@@ -1,52 +1,18 @@
|
||||
{
|
||||
"patterns": {
|
||||
"stripes_v": {
|
||||
"patternBase64": "AQACAAIACKA="
|
||||
},
|
||||
"stripes_h": {
|
||||
"patternBase64": "AQACAAIACMA="
|
||||
},
|
||||
"checkerboard": {
|
||||
"patternBase64": "AQACAAIACJA="
|
||||
},
|
||||
"diagonal": {
|
||||
"patternBase64": "AQAQABAAAYAAQAAgABAACAAEAAIAAQAAgABAACAAEAAIAAQAAgAB"
|
||||
},
|
||||
"cross": {
|
||||
"patternBase64": "AQAQABAAAYABQAIgBBAICBAEIAJAAYABgAJABCAIEBAIIARAAoAB"
|
||||
},
|
||||
"mini_cross": {
|
||||
"patternBase64": "AQAQAAgAAcADMAwMMAPAA8AMMDAMwAM="
|
||||
},
|
||||
"horizontal_stripes": {
|
||||
"patternBase64": "AQAQABAAAf//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA"
|
||||
},
|
||||
"sparse_dots": {
|
||||
"patternBase64": "AQAQABAAAYCAAAAAAAAAAAAAAAAAAACAgAAAAAAAAAAAAAAAAAAA"
|
||||
},
|
||||
"evan": {
|
||||
"patternBase64": "AQAYAAcABQAAAHkjEkEkmnEnlkDEknjEkgAAAA=="
|
||||
},
|
||||
"diagonal_stripe": {
|
||||
"patternBase64": "AQAQAAgAAYABQAIgBBAICBAEIAJAAYA="
|
||||
},
|
||||
"mountain_ridge": {
|
||||
"patternBase64": "AQAQAAgAAQAAGBg8PH5+//9+fjw8GBg="
|
||||
},
|
||||
"scattered_dots": {
|
||||
"patternBase64": "AQAQAAgAAQAAQAQAAAAAAAAAABAIAAA="
|
||||
},
|
||||
"circuit_board": {
|
||||
"patternBase64": "AQAQAAgAAcPDw8MwMDAwDDAMMMPDw8M="
|
||||
},
|
||||
"vertical_bars": {
|
||||
"patternBase64": "AQAQAAgAAZJJkkmSSZJJkkmSSZJJkkk="
|
||||
},
|
||||
".w.": {
|
||||
"patternBase64": "AQAQAAgAAQAAAAAAAEACQYIiRHQuaBY="
|
||||
},
|
||||
"openfront": {
|
||||
"patternBase64": "AQBCAAoABQAAAAAAAAAAAAAAAAAAAAABw4+RD54cRfCJEgZCBEiZECJEgVCBEiVECJ48TDx4iTECJAgRCBQiRECJAgRCBIiREBxA+RCBEcREAAAAAAAAAAAA"
|
||||
}
|
||||
}
|
||||
"stripes_v": "AQACAAIACKA=",
|
||||
"stripes_h": "AQACAAIACMA=",
|
||||
"checkerboard": "AQACAAIACJA=",
|
||||
"diagonal": "AQAQABAAAYAAQAAgABAACAAEAAIAAQAAgABAACAAEAAIAAQAAgAB",
|
||||
"cross": "AQAQABAAAYABQAIgBBAICBAEIAJAAYABgAJABCAIEBAIIARAAoAB",
|
||||
"mini_cross": "AQAQAAgAAcADMAwMMAPAA8AMMDAMwAM=",
|
||||
"horizontal_stripes": "AQAQABAAAf//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA",
|
||||
"sparse_dots": "AQAQABAAAYCAAAAAAAAAAAAAAAAAAACAgAAAAAAAAAAAAAAAAAAA",
|
||||
"evan": "AQAYAAcABQAAAHkjEkEkmnEnlkDEknjEkgAAAA==",
|
||||
"diagonal_stripe": "AQAQAAgAAYABQAIgBBAICBAEIAJAAYA=",
|
||||
"mountain_ridge": "AQAQAAgAAQAAGBg8PH5+//9+fjw8GBg=",
|
||||
"scattered_dots": "AQAQAAgAAQAAQAQAAAAAAAAAABAIAAA=",
|
||||
"circuit_board": "AQAQAAgAAcPDw8MwMDAwDDAMMMPDw8M=",
|
||||
"vertical_bars": "AQAQAAgAAZJJkkmSSZJJkkmSSZJJkkk=",
|
||||
".w.": "AQAQAAgAAQAAAAAAAEACQYIiRHQuaBY=",
|
||||
"openfront": "AQBCAAoABQAAAAAAAAAAAAAAAAAAAAABw4+RD54cRfCJEgZCBEiZECJEgVCBEiVECJ48TDx4iTECJAgRCBQiRECJAgRCBIiREBxA+RCBEcREAAAAAAAAAAAA"
|
||||
}
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
import { z } from "zod";
|
||||
import rawTerritoryPatterns from "../../resources/territory_patterns.json";
|
||||
|
||||
const PatternSchema = z.object({
|
||||
patternBase64: z.string().optional(),
|
||||
});
|
||||
|
||||
const TerritoryPatternsSchema = z.object({
|
||||
patterns: z.record(PatternSchema),
|
||||
});
|
||||
export const TerritoryPatternsSchema = z.record(
|
||||
z.string(),
|
||||
z.string().base64(),
|
||||
);
|
||||
|
||||
export const territoryPatterns =
|
||||
TerritoryPatternsSchema.parse(rawTerritoryPatterns);
|
||||
|
||||
@@ -82,7 +82,7 @@ export class territoryPatternsModal extends LitElement {
|
||||
class="flex flex-wrap gap-4 p-2"
|
||||
style="justify-content: center; align-items: flex-start;"
|
||||
>
|
||||
${Object.entries(territoryPatterns.patterns).map(([key, pattern]) => {
|
||||
${Object.entries(territoryPatterns ?? {}).map(([key, pattern]) => {
|
||||
const isLocked = this.isPatternLocked(key);
|
||||
const reason = this.lockedReasons[key] || "Locked";
|
||||
|
||||
@@ -114,7 +114,7 @@ export class territoryPatternsModal extends LitElement {
|
||||
"
|
||||
>
|
||||
${(() => {
|
||||
const decoder = new PatternDecoder(pattern.patternBase64!);
|
||||
const decoder = new PatternDecoder(pattern);
|
||||
const cellCountX = decoder.getTileWidth();
|
||||
const cellCountY = decoder.getTileHeight();
|
||||
const cellSize = Math.floor(
|
||||
@@ -186,12 +186,12 @@ export class territoryPatternsModal extends LitElement {
|
||||
private updatePreview() {
|
||||
if (!this.previewButton || !this.selectedPattern) return;
|
||||
|
||||
const pattern = territoryPatterns.patterns[this.selectedPattern];
|
||||
const pattern = territoryPatterns[this.selectedPattern];
|
||||
if (!pattern) return;
|
||||
|
||||
const fixedHeight = 48;
|
||||
const fixedWidth = 48;
|
||||
const decoder = new PatternDecoder(pattern.patternBase64!);
|
||||
const decoder = new PatternDecoder(pattern);
|
||||
const cellCountX = decoder.getTileWidth();
|
||||
const cellCountY = decoder.getTileHeight();
|
||||
|
||||
|
||||
@@ -299,9 +299,9 @@ export class TerritoryLayer implements Layer {
|
||||
const x = this.game.x(tile);
|
||||
const y = this.game.y(tile);
|
||||
const baseColor = this.theme.territoryColor(owner);
|
||||
const patternConfig = territoryPatterns.patterns[patternName];
|
||||
const patternBase64 = territoryPatterns[patternName];
|
||||
|
||||
const decoder = new PatternDecoder(patternConfig.patternBase64 ?? "");
|
||||
const decoder = new PatternDecoder(patternBase64 ?? "");
|
||||
const bit = decoder.isSet(x, y) ? 1 : 0;
|
||||
const colorToUse = bit ? baseColor.darken(0.2) : baseColor;
|
||||
this.paintCell(x, y, colorToUse, 150);
|
||||
|
||||
Reference in New Issue
Block a user