Fix sprite builder

Fixes sprite builder to not rely on sprite.ts that is generating
This commit is contained in:
2026-03-21 13:28:03 +01:00
parent 1fc21d700e
commit 6380f0bbcc
33 changed files with 143 additions and 3587 deletions
+2 -1
View File
@@ -1,6 +1,6 @@
import { range, compact, escapeRegExp } from 'lodash';
import {
MessageType, ChatType, Expression, Eye, Muzzle, Action, Weather, toAnnouncementMessageType,
MessageType, ChatType, Expression, Eye, Muzzle, Action, toAnnouncementMessageType,
} from '../common/interfaces';
import { hasRole } from '../common/accountUtils';
import { butterfly, bat, firefly, cloud, getEntityType, getEntityTypeName } from '../common/entities';
@@ -34,6 +34,7 @@ import { writeFileAsync } from 'fs';
import { Account } from './db';
import { defaultHouseSave, removeToolbox, restoreToolbox } from './maps/houseMap';
import { getRegionGlobal } from '../common/region';
import { Weather } from '../common/commonInterfaces';
export interface CommandContext {
world: World;
+2 -1
View File
@@ -4,13 +4,14 @@ import { ServerMap, MapUsage, ServerEntity } from '../serverInterfaces';
import { World, goToMap } from '../world';
import { addSpawnPointIndicators } from '../mapUtils';
import { createServerMap, deserializeMap } from '../serverMap';
import { TileType, MapType } from '../../common/interfaces';
import { TileType } from '../../common/interfaces';
import { rect } from '../../common/rect';
import { TorchController, FlyingCritterController } from '../controllers';
import * as entities from '../../common/entities';
import { WallController } from '../controllers/wallController';
import { createBoxOfLanterns, give } from '../controllerUtils';
import { holdItem } from '../playerUtils';
import { MapType } from '../../common/commonInterfaces';
const mapData = JSON.parse(fs.readFileSync(pathTo('src', 'maps', 'cave.json'), 'utf8'));
+2 -1
View File
@@ -1,12 +1,13 @@
import * as fs from 'fs';
import * as entities from '../../common/entities';
import { rect } from '../../common/rect';
import { TileType, MapType } from '../../common/interfaces';
import { TileType } from '../../common/interfaces';
import { createServerMap, deserializeMap } from '../serverMap';
import { World, goToMap } from '../world';
import { createSign } from '../controllerUtils';
import { ServerEntity } from '../serverInterfaces';
import { pathTo } from '../paths';
import { MapType } from '../../common/commonInterfaces';
// load tile data
// To customize the map use in-game editor tools to change tiles, then use `/savemap custom` command,
+2 -1
View File
@@ -3,12 +3,13 @@ import { rect } from '../../common/rect';
import { ServerMap, MapUsage, ServerEntity } from '../serverInterfaces';
import { World, goToMap } from '../world';
import { addSpawnPointIndicators } from '../mapUtils';
import { TileType, MapType, MapFlags, EntityState } from '../../common/interfaces';
import { TileType, EntityState } from '../../common/interfaces';
import { createServerMap, setTile, MapData, saveMap } from '../serverMap';
import { WallController } from '../controllers';
import { resetRegionUpdates } from '../serverRegion';
import { tileHeight, HOUSE_ENTITY_LIMIT } from '../../common/constants';
import { getTile } from '../../common/tileUtils';
import { MapFlags, MapType } from '../../common/commonInterfaces';
export let defaultHouseSave: MapData | undefined = undefined;
+2 -1
View File
@@ -8,7 +8,7 @@ import {
addSpawnPointIndicators, generateTileIndicesAndColliders, removePonies, worldForTemplates, createBunny
} from '../mapUtils';
import { serverMapInstanceFromTemplate, createServerMap, copyMapTiles, deserializeMap } from '../serverMap';
import { TileType, MapType, Season } from '../../common/interfaces';
import { TileType } from '../../common/interfaces';
import { rect } from '../../common/rect';
import { createAddLight, createSignWithText, createWoodenFenceMaker, createBoxOfLanterns } from '../controllerUtils';
import { setEntityName, updateEntityOptions } from '../entityUtils';
@@ -17,6 +17,7 @@ import { tileWidth, tileHeight } from '../../common/constants';
import { TorchController, UpdateController } from '../controllers';
import { resetRegionUpdates } from '../serverRegion';
import { point } from '../../common/utils';
import { MapType, Season } from '../../common/commonInterfaces';
const islandMapData = JSON.parse(fs.readFileSync(pathTo('src', 'maps', 'island.json'), 'utf8'));
+2 -1
View File
@@ -3,7 +3,7 @@ import { sample, random } from 'lodash';
import { pathTo } from '../paths';
import { World, goToMap } from '../world';
import { createServerMap, deserializeMap, snapshotTiles, setTile, lockTile, lockTiles } from '../serverMap';
import { TileType, Season, MapType, Holiday, MessageType, ServerFlags, MapFlags } from '../../common/interfaces';
import { TileType, MessageType, ServerFlags } from '../../common/interfaces';
import { rect } from '../../common/rect';
import * as entities from '../../common/entities';
import {
@@ -27,6 +27,7 @@ import { toWorldX } from '../../common/positionUtils';
import { deserializeTiles } from '../../common/compress';
import * as ctrl from '../controllers';
import { isNightTime, isDayTime } from '../../common/timeUtils';
import { Holiday, MapFlags, MapType, Season } from '../../common/commonInterfaces';
const mainMapData = JSON.parse(fs.readFileSync(pathTo('src', 'maps', 'main.json'), 'utf8'));
const mainMapTiles = deserializeTiles(mainMapData.tiles);
+2 -1
View File
@@ -1,12 +1,13 @@
import * as entities from '../../common/entities';
import { rect } from '../../common/rect';
import { TileType, MapType } from '../../common/interfaces';
import { TileType } from '../../common/interfaces';
import { createServerMap } from '../serverMap';
import { World, goToMap } from '../world';
import { allEntities } from '../api/account';
import { createSign } from '../controllerUtils';
import { ServerEntity } from '../serverInterfaces';
import { setEntityName } from '../entityUtils';
import { MapType } from '../../common/commonInterfaces';
export function createPaletteMap(world: World) {
const map = createServerMap('palette', MapType.None, 10, 10, TileType.Grass);
+2 -1
View File
@@ -2,7 +2,7 @@ import { Socket, Method, SocketServer, Bin, getMethods } from 'ag-sockets';
import {
PlayerAction, ModAction, ChatType, PonyData, IServerActions, TileType, Action, EditorAction, Entity,
EntityOrPonyOptions, LeaveReason, SupporterInvite, InfoFlags, AccountSettings, FriendStatusFlags,
SelectFlags, UpdateFlags, isValidModTile, isValidTile, MapFlags, EntityState, houseTiles
SelectFlags, UpdateFlags, isValidModTile, isValidTile, EntityState, houseTiles
} from '../common/interfaces';
import { CharacterState, ServerConfig } from '../common/adminInterfaces';
import { PARTY_LIMIT, OFFLINE_PONY, TILE_CHANGE_RANGE, MIN_HIDE_TIME, MAX_HIDE_TIME, PONY_TYPE } from '../common/constants';
@@ -37,6 +37,7 @@ import { isOutsideMap } from '../common/collision';
import { createAnEntity } from '../common/entities';
import { mockPaletteManager } from '../common/ponyInfo';
import { getTile } from '../common/tileUtils';
import { MapFlags } from '../common/commonInterfaces';
interface AddedEntity {
name: string;
+2 -1
View File
@@ -1,11 +1,12 @@
import { ClientExtensions, BinaryWriter } from 'ag-sockets';
import {
Entity, ServerFlags, AccountSettings, NotificationFlags, Expression, Camera, SayData, Region, TileUpdate,
Rect, IMap, MapType, TileType, MapState, UpdateFlags, Action, EntityOrPonyOptions, EntityPlayerState, MapFlags
Rect, IMap, TileType, MapState, UpdateFlags, Action, EntityOrPonyOptions, EntityPlayerState,
} from '../common/interfaces';
import { IAccount, ICharacter, UpdateAccount } from './db';
import { AccountUpdate, CharacterState, GameServerSettings, Suspicious } from '../common/adminInterfaces';
import { ClientActionsTemplate } from '../common/clientActionsTemplte';
import { MapFlags, MapType } from '../common/commonInterfaces';
export interface EntityUpdate {
entity: Entity;
+2 -1
View File
@@ -1,7 +1,7 @@
import { writeFileAsync, readFileAsync, writeFileSync } from 'fs';
import { fromByteArray } from 'base64-js';
import {
TileType, MapInfo, MapState, defaultMapState, Rect, MapType, ServerFlags, EntityFlags, MapFlags, EntityState
TileType, MapInfo, MapState, defaultMapState, Rect, ServerFlags, EntityFlags, EntityState
} from '../common/interfaces';
import { distanceSquaredXY, containsPoint, hasFlag } from '../common/utils';
import { POSITION_MAX } from '../common/movementUtils';
@@ -20,6 +20,7 @@ import { setEntityName } from './entityUtils';
import { WallController } from './controllers/wallController';
import { getTile } from '../common/tileUtils';
import { getRegion, getRegionGlobal } from '../common/region';
import { MapFlags, MapType } from '../common/commonInterfaces';
export interface EntityData {
type: string;
+2 -1
View File
@@ -1,7 +1,7 @@
import { getWriterBuffer } from 'ag-sockets';
import { remove, compact } from 'lodash';
import {
TileType, WorldState, Season, Holiday, WorldStateFlags, LeaveReason, NotificationFlags, UpdateFlags, Action, counterNow,
TileType, WorldState, WorldStateFlags, LeaveReason, NotificationFlags, UpdateFlags, Action, counterNow,
} from '../common/interfaces';
import { removeItem, distance, clamp, randomPoint, includes, fromNow } from '../common/utils';
import { HOUR_LENGTH, DAY_LENGTH } from '../common/timeUtils';
@@ -44,6 +44,7 @@ import { createIslandMap } from './maps/islandMap';
import { createHouseMap } from './maps/houseMap';
import { updateMainMapSeason } from './maps/mainMap';
import { updateWorldPerfStats } from './worldPerfStats';
import { Holiday, Season } from '../common/commonInterfaces';
interface MapSwitch {
map: ServerMap;