Open-source web player for Rublox games, dual-licensed under AGPL-3.0 + Commercial. Highlights: - Babylon.js 7 + React 18 + Vite 5 stack - Self-contained engine (~46k lines): BlockManager, ModelManager, PlayerController, ScriptSandboxWorker, MultiplayerSync, 30+ GD gamemodes - Configurable backend via VITE_API_BASE and friends — works against staging (dev-api.rublox.pro) out of the box - Standalone mode (VITE_STANDALONE=true) loads a bundled sample game for first-run without any backend - Full docs: README, ARCHITECTURE, CONTRIBUTING, SECURITY, CHANGELOG - Lint + format scaffolding (ESLint + Prettier + EditorConfig) - Legal: LICENSE (AGPL-3.0), LICENSE-COMMERCIAL.md, CLA.md, COPYRIGHT.md - Issue templates: bug_report, feature_request, security_disclosure Removed before public release: - frontend_deploy.py (contained production SSH credentials) - ~27 admin endpoints (kept in private repo) - Hard-coded internal URLs and IPs - All previous git history (clean repo init)
940 lines
103 KiB
JavaScript
940 lines
103 KiB
JavaScript
/**
|
||
* ModelTypes — реестр 3D-моделей (GLB) для Рублокс-редактора.
|
||
*
|
||
* Все модели — Kenney CC0, лежат в /public/kubikon-assets/models/<pack>/
|
||
* где pack ∈ {dungeon, platformer, characters}.
|
||
* GLB файл ссылается на ./Textures/colormap.png — поэтому каждый pack лежит
|
||
* в своей подпапке со своей колормапой.
|
||
*/
|
||
|
||
const M = '/kubikon-assets/models';
|
||
|
||
/**
|
||
* Создать запись о модели.
|
||
* pack — имя подпапки ('dungeon' | 'platformer' | 'characters').
|
||
* file — имя GLB без расширения.
|
||
*/
|
||
const m = (id, name, category, pack, file, opts = {}) => ({
|
||
id, name, category,
|
||
file: `${M}/${pack}/${file}.glb`,
|
||
scale: opts.scale ?? 1,
|
||
yOffset: opts.yOffset ?? 0,
|
||
...opts,
|
||
});
|
||
|
||
/**
|
||
* Создать запись о модели с произвольным URL (вне kubikon-assets).
|
||
* url — полный путь от корня сайта, например '/playground-kit/slide.glb'.
|
||
*/
|
||
const mu = (id, name, category, url, opts = {}) => ({
|
||
id, name, category,
|
||
file: url,
|
||
scale: opts.scale ?? 1,
|
||
yOffset: opts.yOffset ?? 0,
|
||
...opts,
|
||
});
|
||
|
||
/**
|
||
* mc — «compound»-модель из нескольких частей. При постановке создаётся папка
|
||
* и каждая part добавляется внутрь.
|
||
* id, name, category — как у обычных моделей
|
||
* parts: [
|
||
* { kind: 'mesh', model: 'id-простой-модели', dx, dy, dz, ry }
|
||
* { kind: 'primitive', type: 'cube'|'sphere'|..., sx, sy, sz, color, dx, dy, dz, rx, ry, rz }
|
||
* ]
|
||
* Координаты dx/dy/dz — смещение относительно центра компаунда; ry — локальный yaw.
|
||
*/
|
||
const mc = (id, name, category, parts, opts = {}) => ({
|
||
id, name, category,
|
||
file: null, // нет основного GLB — модель собирается из частей
|
||
scale: 1,
|
||
parts,
|
||
isCompound: true,
|
||
...opts,
|
||
});
|
||
|
||
export const MODEL_TYPES = [
|
||
// === ПРИРОДА (platformer pack) ===
|
||
m('tree', 'Дерево', 'Природа', 'platformer', 'tree', { targetHeight: 1.5 }),
|
||
m('tree-pine', 'Сосна', 'Природа', 'platformer', 'tree-pine', { targetHeight: 4 }),
|
||
m('tree-pine-small', 'Молодая сосна', 'Природа', 'platformer', 'tree-pine-small', { targetHeight: 2.5 }),
|
||
m('tree-pine-snow', 'Снежная сосна', 'Природа', 'platformer', 'tree-pine-snow', { targetHeight: 4 }),
|
||
m('tree-snow', 'Снежное дерево', 'Природа', 'platformer', 'tree-snow', { targetHeight: 4 }),
|
||
m('flowers', 'Цветы', 'Природа', 'platformer', 'flowers', { targetHeight: 0.6 }),
|
||
m('flowers-tall', 'Высокие цветы', 'Природа', 'platformer', 'flowers-tall', { targetHeight: 0.6 }),
|
||
m('mushrooms', 'Грибы', 'Природа', 'platformer', 'mushrooms', { targetHeight: 0.6 }),
|
||
m('plant', 'Растение', 'Природа', 'platformer', 'plant', { targetHeight: 0.7 }),
|
||
m('grass-model', 'Трава', 'Природа', 'platformer', 'grass', { targetHeight: 0.7 }),
|
||
m('hedge', 'Куст', 'Природа', 'platformer', 'hedge', { targetHeight: 0.7 }),
|
||
m('rocks-platformer','Камни', 'Природа', 'platformer', 'rocks', { targetHeight: 1.5 }),
|
||
m('rocks-dungeon', 'Скалы', 'Природа', 'dungeon', 'rocks', { targetHeight: 1.5 }),
|
||
m('stones', 'Булыжники', 'Природа', 'dungeon', 'stones', { targetHeight: 0.8 }),
|
||
|
||
// === ДВЕРИ И ВОРОТА ===
|
||
m('door-rotate', 'Дверь', 'Двери', 'platformer', 'door-rotate', { targetHeight: 1.8 }),
|
||
m('door-rotate-large', 'Большая дверь', 'Двери', 'platformer', 'door-rotate-large', { targetHeight: 1.8 }),
|
||
m('door-open', 'Открытая дверь', 'Двери', 'platformer', 'door-open', { targetHeight: 1.8 }),
|
||
m('door-large-open', 'Откр. бол. дверь','Двери', 'platformer', 'door-large-open', { targetHeight: 1.8 }),
|
||
m('gate', 'Ворота', 'Двери', 'dungeon', 'gate', { targetHeight: 1.8 }),
|
||
|
||
// === ЗАБОРЫ (platformer) ===
|
||
m('fence-straight', 'Забор', 'Заборы', 'platformer', 'fence-straight', { targetHeight: 1.2 }),
|
||
m('fence-corner', 'Угол забора', 'Заборы', 'platformer', 'fence-corner', { targetHeight: 1.2 }),
|
||
m('fence-broken', 'Сломанный забор', 'Заборы', 'platformer', 'fence-broken', { targetHeight: 1.2 }),
|
||
m('fence-rope', 'Верёвочный забор','Заборы', 'platformer', 'fence-rope', { targetHeight: 1.2 }),
|
||
m('fence-low-straight', 'Низкий забор', 'Заборы', 'platformer', 'fence-low-straight', { targetHeight: 1.2 }),
|
||
|
||
// === МЕБЕЛЬ И ИНТЕРЬЕР ===
|
||
m('chest', 'Сундук', 'Мебель', 'dungeon', 'chest', { targetHeight: 1.2 }),
|
||
m('barrel', 'Бочка', 'Мебель', 'dungeon', 'barrel', { targetHeight: 1.2 }),
|
||
m('crate', 'Ящик', 'Мебель', 'platformer', 'crate', { targetHeight: 1.2 }),
|
||
m('column', 'Колонна', 'Мебель', 'dungeon', 'column', { targetHeight: 1.2 }),
|
||
m('banner', 'Знамя', 'Мебель', 'dungeon', 'banner', { targetHeight: 1.2 }),
|
||
m('flag', 'Флаг', 'Мебель', 'platformer', 'flag', { targetHeight: 1.2 }),
|
||
m('sign', 'Табличка', 'Мебель', 'platformer', 'sign', { targetHeight: 1.2 }),
|
||
m('ladder', 'Лестница', 'Мебель', 'platformer', 'ladder', { targetHeight: 1.2 }),
|
||
m('ladder-long', 'Длин. лестница', 'Мебель', 'platformer', 'ladder-long', { targetHeight: 1.2 }),
|
||
m('ladder-broken', 'Слом. лестница', 'Мебель', 'platformer', 'ladder-broken', { targetHeight: 1.2 }),
|
||
m('stairs', 'Ступеньки', 'Мебель', 'dungeon', 'stairs', { targetHeight: 1.2 }),
|
||
m('wood-structure', 'Дерев. конструкция','Мебель','dungeon', 'wood-structure', { targetHeight: 1.2 }),
|
||
m('wood-support', 'Дерев. опора', 'Мебель', 'dungeon', 'wood-support', { targetHeight: 1.2 }),
|
||
m('wall', 'Стена', 'Мебель', 'dungeon', 'wall', { targetHeight: 1.2 }),
|
||
m('wall-half', 'Половина стены', 'Мебель', 'dungeon', 'wall-half', { targetHeight: 1.2 }),
|
||
m('wall-narrow', 'Узкая стена', 'Мебель', 'dungeon', 'wall-narrow', { targetHeight: 1.2 }),
|
||
m('wall-opening', 'Стена с проёмом', 'Мебель', 'dungeon', 'wall-opening', { targetHeight: 1.2 }),
|
||
m('floor', 'Пол', 'Мебель', 'dungeon', 'floor', { targetHeight: 1.2 }),
|
||
m('floor-detail', 'Узорный пол', 'Мебель', 'dungeon', 'floor-detail', { targetHeight: 1.2 }),
|
||
|
||
// === МЕХАНИЗМЫ (platformer) ===
|
||
m('lever', 'Рычаг', 'Механизмы', 'platformer', 'lever', { targetHeight: 1 }),
|
||
m('button-round', 'Кнопка круглая', 'Механизмы', 'platformer', 'button-round', { targetHeight: 1 }),
|
||
m('button-square', 'Кнопка квадратная','Механизмы','platformer', 'button-square', { targetHeight: 1 }),
|
||
m('spring', 'Пружина', 'Механизмы', 'platformer', 'spring', { targetHeight: 1 }),
|
||
m('saw', 'Пила', 'Механизмы', 'platformer', 'saw', { targetHeight: 1 }),
|
||
m('trap-dungeon', 'Ловушка', 'Механизмы', 'dungeon', 'trap', { targetHeight: 1 }),
|
||
m('trap-spikes', 'Шипы', 'Механизмы', 'platformer', 'trap-spikes', { targetHeight: 1 }),
|
||
m('trap-spikes-large', 'Большие шипы', 'Механизмы', 'platformer', 'trap-spikes-large', { targetHeight: 1 }),
|
||
m('spike-block', 'Шипастый блок', 'Механизмы', 'platformer', 'spike-block', { targetHeight: 1 }),
|
||
m('pipe', 'Труба', 'Механизмы', 'platformer', 'pipe', { targetHeight: 1 }),
|
||
m('poles', 'Столбы', 'Механизмы', 'platformer', 'poles', { targetHeight: 1 }),
|
||
m('bomb', 'Бомба', 'Механизмы', 'platformer', 'bomb', { targetHeight: 1 }),
|
||
|
||
// === ПРЕДМЕТЫ ===
|
||
m('coin', 'Монета', 'Предметы', 'dungeon', 'coin', { targetHeight: 0.6 }),
|
||
m('coin-gold', 'Золотая монета', 'Предметы', 'platformer', 'coin-gold', { targetHeight: 0.6 }),
|
||
m('coin-silver', 'Серебр. монета', 'Предметы', 'platformer', 'coin-silver', { targetHeight: 0.6 }),
|
||
m('coin-bronze', 'Бронз. монета', 'Предметы', 'platformer', 'coin-bronze', { targetHeight: 0.6 }),
|
||
m('jewel', 'Драгоценность', 'Предметы', 'platformer', 'jewel', { targetHeight: 0.6 }),
|
||
m('star', 'Звезда', 'Предметы', 'platformer', 'star', { targetHeight: 0.6 }),
|
||
m('heart', 'Сердце', 'Предметы', 'platformer', 'heart', { targetHeight: 0.6 }),
|
||
m('key', 'Ключ', 'Предметы', 'platformer', 'key', { targetHeight: 0.6 }),
|
||
m('lock', 'Замок', 'Предметы', 'platformer', 'lock', { targetHeight: 0.6 }),
|
||
m('arrow', 'Стрела', 'Предметы', 'platformer', 'arrow', { targetHeight: 0.6 }),
|
||
|
||
// === ОРУЖИЕ (dungeon) ===
|
||
m('weapon-sword', 'Меч', 'Оружие', 'dungeon', 'weapon-sword', { targetHeight: 1 }),
|
||
m('weapon-spear', 'Копьё', 'Оружие', 'dungeon', 'weapon-spear', { targetHeight: 1.2 }),
|
||
m('shield-round', 'Круглый щит', 'Оружие', 'dungeon', 'shield-round', { targetHeight: 1 }),
|
||
m('shield-rectangle', 'Прямоуг. щит', 'Оружие', 'dungeon', 'shield-rectangle', { targetHeight: 1 }),
|
||
|
||
// === ВРАГИ (со встроенным AI) ===
|
||
// Эти объекты имеют поведение в Play-режиме: AI, спавн, урон.
|
||
// gameplay содержит description для tooltip и defaultParams — настройки
|
||
// которые можно менять в Inspector.
|
||
m('zombie', 'Зомби', 'Враги', 'characters', 'character-c', {
|
||
targetHeight: 1.7,
|
||
// Скрыт из палитры — одиночный AI-зомби нестабилен (нерешённый баг с
|
||
// y-провалом на GLB-террейне, см. feedback_babylon про оптимизации).
|
||
// Используйте «Спавнер зомби» вместо одиночной модели.
|
||
hidden: true,
|
||
gameplay: {
|
||
type: 'zombie',
|
||
isZombie: true,
|
||
description: 'Враг с AI: бродит по миру, атакует игрока при приближении.',
|
||
defaultParams: {
|
||
hp: 50,
|
||
speed: 2.2, // м/с в погоне
|
||
wanderSpeed: 1.3, // м/с при патрулировании
|
||
detectionRadius: 16, // дистанция обнаружения игрока
|
||
attackRange: 1.8, // дистанция атаки
|
||
attackDamage: 10, // урон за удар
|
||
attackCooldown: 1.0, // секунд между ударами
|
||
wanderRadius: 14, // радиус патрулирования
|
||
},
|
||
},
|
||
}),
|
||
// Спавнер — синтетическая модель: вместо GLB ModelManager рисует диск-цилиндр.
|
||
// file=null + synthetic=true распознаётся в ModelManager._buildSyntheticInstance.
|
||
m('zombie-spawner', 'Спавнер зомби', 'Враги', 'characters', 'character-d', {
|
||
targetHeight: 0.3,
|
||
synthetic: 'spawner-disk',
|
||
gameplay: {
|
||
type: 'zombie-spawner',
|
||
isZombieSpawner: true,
|
||
description: 'Спавнит зомби с заданным интервалом, поддерживая лимит живых.',
|
||
defaultParams: {
|
||
maxAlive: 10,
|
||
spawnInterval: 10,
|
||
radius: 1, // 1 блок
|
||
zombieModelType: 'character-c',
|
||
zombieHp: 50,
|
||
zombieSpeed: 2.2,
|
||
zombieDamage: 10,
|
||
},
|
||
},
|
||
}),
|
||
|
||
// === ПЕРСОНАЖИ ===
|
||
m('character-a', 'Стив', 'Персонажи', 'characters', 'character-a', { targetHeight: 1.7 }),
|
||
m('character-b', 'Алекс', 'Персонажи', 'characters', 'character-b', { targetHeight: 1.7 }),
|
||
m('character-c', 'Виктор', 'Персонажи', 'characters', 'character-c', { targetHeight: 1.7 }),
|
||
m('character-d', 'Ирина', 'Персонажи', 'characters', 'character-d', { targetHeight: 1.7 }),
|
||
m('character-e', 'Паша', 'Персонажи', 'characters', 'character-e', { targetHeight: 1.7 }),
|
||
m('character-f', 'Юля', 'Персонажи', 'characters', 'character-f', { targetHeight: 1.7 }),
|
||
m('character-g', 'Андрей', 'Персонажи', 'characters', 'character-g', { targetHeight: 1.7 }),
|
||
|
||
// === KENNEY PACKS — auto-generated ===
|
||
// === Природа === (50)
|
||
m('nature-bridge-center-stone', 'Мост центр Камень', 'Природа', 'nature-kit', 'bridge_center_stone', { targetHeight: 1.5 }),
|
||
m('nature-bridge-center-stoneround', 'Мост центр кам. круглый', 'Природа', 'nature-kit', 'bridge_center_stoneRound', { targetHeight: 1.5 }),
|
||
m('nature-bridge-center-wood', 'Середина деревянного моста', 'Природа', 'nature-kit', 'bridge_center_wood', { targetHeight: 1.5 }),
|
||
m('nature-bridge-center-woodround', 'Мост центр дер. круглый', 'Природа', 'nature-kit', 'bridge_center_woodRound', { targetHeight: 1.5 }),
|
||
m('nature-bridge-side-stone', 'Мост бок Камень', 'Природа', 'nature-kit', 'bridge_side_stone', { targetHeight: 1.5 }),
|
||
m('nature-bridge-side-stoneround', 'Мост бок кам. круглый', 'Природа', 'nature-kit', 'bridge_side_stoneRound', { targetHeight: 1.5 }),
|
||
m('nature-bridge-side-wood', 'Край деревянного моста', 'Природа', 'nature-kit', 'bridge_side_wood', { targetHeight: 1.5 }),
|
||
m('nature-bridge-side-woodround', 'Мост бок дер. круглый', 'Природа', 'nature-kit', 'bridge_side_woodRound', { targetHeight: 1.5 }),
|
||
m('nature-bridge-stone', 'Мост Камень', 'Природа', 'nature-kit', 'bridge_stone', { targetHeight: 1.5 }),
|
||
m('nature-bridge-stonenarrow', 'Каменный узкий мост', 'Природа', 'nature-kit', 'bridge_stoneNarrow', { targetHeight: 1.5 }),
|
||
m('nature-bridge-stoneround', 'Каменный круглый мост', 'Природа', 'nature-kit', 'bridge_stoneRound', { targetHeight: 1.5 }),
|
||
m('nature-bridge-stoneroundnarrow', 'Каменный круглый узкий мост', 'Природа', 'nature-kit', 'bridge_stoneRoundNarrow', { targetHeight: 1.5 }),
|
||
m('nature-bridge-wood', 'Деревянный мост', 'Природа', 'nature-kit', 'bridge_wood', { targetHeight: 1.5 }),
|
||
m('nature-bridge-woodnarrow', 'Деревянный узкий мост', 'Природа', 'nature-kit', 'bridge_woodNarrow', { targetHeight: 1.5 }),
|
||
m('nature-bridge-woodround', 'Деревянный круглый мост', 'Природа', 'nature-kit', 'bridge_woodRound', { targetHeight: 1.5 }),
|
||
m('nature-bridge-woodroundnarrow', 'Деревянный круглый узкий мост', 'Природа', 'nature-kit', 'bridge_woodRoundNarrow', { targetHeight: 1.5 }),
|
||
m('nature-cactus-short', 'Кактус низкий', 'Природа', 'nature-kit', 'cactus_short', { targetHeight: 1.5 }),
|
||
m('nature-cactus-tall', 'Кактус высокий', 'Природа', 'nature-kit', 'cactus_tall', { targetHeight: 2.5 }),
|
||
m('nature-campfire-logs', 'Костёр (дрова)', 'Природа', 'nature-kit', 'campfire_logs', { targetHeight: 0.6 }),
|
||
m('nature-campfire-stones', 'Костёр Булыжники', 'Природа', 'nature-kit', 'campfire_stones', { targetHeight: 0.6 }),
|
||
m('nature-cliff-blockcave-rock', 'Скала пещерный блок Камень', 'Природа', 'nature-kit', 'cliff_blockCave_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockcave-stone', 'Скала пещерный блок Камень', 'Природа', 'nature-kit', 'cliff_blockCave_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockdiagonal-rock', 'Скала диагональный блок Камень', 'Природа', 'nature-kit', 'cliff_blockDiagonal_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockdiagonal-stone', 'Скала диагональный блок Камень', 'Природа', 'nature-kit', 'cliff_blockDiagonal_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockhalf-rock', 'Скала полублок Камень', 'Природа', 'nature-kit', 'cliff_blockHalf_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockhalf-stone', 'Скала полублок Камень', 'Природа', 'nature-kit', 'cliff_blockHalf_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockquarter-rock', 'Скала четверть-блок Камень', 'Природа', 'nature-kit', 'cliff_blockQuarter_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockquarter-stone', 'Скала четверть-блок Камень', 'Природа', 'nature-kit', 'cliff_blockQuarter_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockslopehalfwalls-rock', 'Скала наклон полублок со стенами Камень', 'Природа', 'nature-kit', 'cliff_blockSlopeHalfWalls_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockslopehalfwalls-stone', 'Скала наклон полублок со стенами Камень', 'Природа', 'nature-kit', 'cliff_blockSlopeHalfWalls_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockslopewalls-rock', 'Скала наклон блок со стенами Камень', 'Природа', 'nature-kit', 'cliff_blockSlopeWalls_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockslopewalls-stone', 'Скала наклон блок со стенами Камень', 'Природа', 'nature-kit', 'cliff_blockSlopeWalls_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockslope-rock', 'Скала наклон Камень', 'Природа', 'nature-kit', 'cliff_blockSlope_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-blockslope-stone', 'Скала наклон Камень', 'Природа', 'nature-kit', 'cliff_blockSlope_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-block-rock', 'Скала блок Камень', 'Природа', 'nature-kit', 'cliff_block_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-block-stone', 'Скала блок Камень', 'Природа', 'nature-kit', 'cliff_block_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cave-rock', 'Скала пещера Камень', 'Природа', 'nature-kit', 'cliff_cave_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cave-stone', 'Скала пещера Камень', 'Природа', 'nature-kit', 'cliff_cave_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cornerinnerlarge-rock', 'Скала внутр. угол большой Камень', 'Природа', 'nature-kit', 'cliff_cornerInnerLarge_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cornerinnerlarge-stone', 'Скала внутр. угол большой Камень', 'Природа', 'nature-kit', 'cliff_cornerInnerLarge_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cornerinnertop-rock', 'Скала внутр. верхний угол Камень', 'Природа', 'nature-kit', 'cliff_cornerInnerTop_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cornerinnertop-stone', 'Скала внутр. верхний угол Камень', 'Природа', 'nature-kit', 'cliff_cornerInnerTop_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cornerinner-rock', 'Скала внутр. угол Камень', 'Природа', 'nature-kit', 'cliff_cornerInner_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cornerinner-stone', 'Скала внутр. угол Камень', 'Природа', 'nature-kit', 'cliff_cornerInner_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cornerlarge-rock', 'Скала угол большой Камень', 'Природа', 'nature-kit', 'cliff_cornerLarge_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cornerlarge-stone', 'Скала угол большой Камень', 'Природа', 'nature-kit', 'cliff_cornerLarge_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cornertop-rock', 'Скала верхний угол Камень', 'Природа', 'nature-kit', 'cliff_cornerTop_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-cornertop-stone', 'Скала верхний угол Камень', 'Природа', 'nature-kit', 'cliff_cornerTop_stone', { targetHeight: 1.5 }),
|
||
m('nature-cliff-corner-rock', 'Скала угол Камень', 'Природа', 'nature-kit', 'cliff_corner_rock', { targetHeight: 1.5 }),
|
||
m('nature-cliff-corner-stone', 'Скала угол Камень', 'Природа', 'nature-kit', 'cliff_corner_stone', { targetHeight: 1.5 }),
|
||
|
||
// === Транспорт === (47)
|
||
m('car-ambulance', 'Скорая', 'Транспорт', 'car-kit', 'ambulance', { targetHeight: 2.5 }),
|
||
m('car-delivery-flat', 'Доставка плоская', 'Транспорт', 'car-kit', 'delivery-flat', { targetHeight: 2.2 }),
|
||
m('car-delivery', 'Фургон', 'Транспорт', 'car-kit', 'delivery', { targetHeight: 2.2 }),
|
||
m('car-firetruck', 'Пожарная', 'Транспорт', 'car-kit', 'firetruck', { targetHeight: 2.5 }),
|
||
m('car-garbage-truck', 'Мусоровоз', 'Транспорт', 'car-kit', 'garbage-truck', { targetHeight: 2.5 }),
|
||
m('car-hatchback-sports', 'Хэтчбек спорт', 'Транспорт', 'car-kit', 'hatchback-sports', { targetHeight: 1.5 }),
|
||
m('car-kart-oobi', 'Карт ооби', 'Транспорт', 'car-kit', 'kart-oobi', { targetHeight: 1.2 }),
|
||
m('car-kart-oodi', 'Карт ооди', 'Транспорт', 'car-kit', 'kart-oodi', { targetHeight: 1.2 }),
|
||
m('car-kart-ooli', 'Карт ооли', 'Транспорт', 'car-kit', 'kart-ooli', { targetHeight: 1.2 }),
|
||
m('car-kart-oopi', 'Карт оопи', 'Транспорт', 'car-kit', 'kart-oopi', { targetHeight: 1.2 }),
|
||
m('car-kart-oozi', 'Карт оози', 'Транспорт', 'car-kit', 'kart-oozi', { targetHeight: 1.2 }),
|
||
m('car-police', 'Полицейская', 'Транспорт', 'car-kit', 'police', { targetHeight: 1.5 }),
|
||
m('car-race-future', 'Болид будущего', 'Транспорт', 'car-kit', 'race-future', { targetHeight: 1.5 }),
|
||
m('car-race', 'Гоночная', 'Транспорт', 'car-kit', 'race', { targetHeight: 1.5 }),
|
||
m('car-sedan-sports', 'Седан спорт', 'Транспорт', 'car-kit', 'sedan-sports', { targetHeight: 1.5 }),
|
||
m('car-sedan', 'Седан', 'Транспорт', 'car-kit', 'sedan', { targetHeight: 1.5 }),
|
||
m('car-suv-luxury', 'Внедорожник люкс', 'Транспорт', 'car-kit', 'suv-luxury', { targetHeight: 1.8 }),
|
||
m('car-suv', 'Внедорожник', 'Транспорт', 'car-kit', 'suv', { targetHeight: 1.8 }),
|
||
m('car-taxi', 'Такси', 'Транспорт', 'car-kit', 'taxi', { targetHeight: 1.5 }),
|
||
m('car-tractor-police', 'Трактор полиции', 'Транспорт', 'car-kit', 'tractor-police', { targetHeight: 2.2 }),
|
||
m('car-tractor-shovel', 'Трактор-погрузчик', 'Транспорт', 'car-kit', 'tractor-shovel', { targetHeight: 2.2 }),
|
||
m('car-tractor', 'Трактор', 'Транспорт', 'car-kit', 'tractor', { targetHeight: 2.2 }),
|
||
m('car-truck-flat', 'Грузовик плоский', 'Транспорт', 'car-kit', 'truck-flat', { targetHeight: 2.2 }),
|
||
m('car-truck', 'Грузовик', 'Транспорт', 'car-kit', 'truck', { targetHeight: 2.2 }),
|
||
m('car-van', 'Минивэн', 'Транспорт', 'car-kit', 'van', { targetHeight: 1.8 }),
|
||
m('car-wheel-dark', 'Колесо тёмное', 'Транспорт', 'car-kit', 'wheel-dark', { targetHeight: 0.5 }),
|
||
m('car-wheel-default', 'Колесо обычное', 'Транспорт', 'car-kit', 'wheel-default', { targetHeight: 0.5 }),
|
||
m('car-wheel-racing', 'Колесо гоночное', 'Транспорт', 'car-kit', 'wheel-racing', { targetHeight: 0.5 }),
|
||
m('car-wheel-tractor-back', 'Колесо Трактор зад', 'Транспорт', 'car-kit', 'wheel-tractor-back', { targetHeight: 2.2 }),
|
||
m('car-wheel-tractor-dark-back', 'Колесо Трактор тёмный зад', 'Транспорт', 'car-kit', 'wheel-tractor-dark-back', { targetHeight: 2.2 }),
|
||
m('car-wheel-tractor-dark-front', 'Колесо Трактор тёмный перед', 'Транспорт', 'car-kit', 'wheel-tractor-dark-front', { targetHeight: 2.2 }),
|
||
m('car-wheel-tractor-front', 'Колесо Трактор перед', 'Транспорт', 'car-kit', 'wheel-tractor-front', { targetHeight: 2.2 }),
|
||
m('car-wheel-truck', 'Колесо Грузовик', 'Транспорт', 'car-kit', 'wheel-truck', { targetHeight: 2.2 }),
|
||
m('toy-car-vehicle-drag-racer', 'Vehicle тяга гонщик', 'Транспорт', 'toy-car-kit', 'vehicle-drag-racer', { targetHeight: 1.5 }),
|
||
m('toy-car-vehicle-monster-truck', 'Vehicle monster Грузовик', 'Транспорт', 'toy-car-kit', 'vehicle-monster-truck', { targetHeight: 2.2 }),
|
||
m('toy-car-vehicle-racer-low', 'Vehicle гонщик низкий', 'Транспорт', 'toy-car-kit', 'vehicle-racer-low', { targetHeight: 1.5 }),
|
||
m('toy-car-vehicle-racer', 'Vehicle гонщик', 'Транспорт', 'toy-car-kit', 'vehicle-racer', { targetHeight: 1.5 }),
|
||
m('toy-car-vehicle-suv', 'Vehicle Внедорожник', 'Транспорт', 'toy-car-kit', 'vehicle-suv', { targetHeight: 1.8 }),
|
||
m('toy-car-vehicle-truck', 'Vehicle Грузовик', 'Транспорт', 'toy-car-kit', 'vehicle-truck', { targetHeight: 2.2 }),
|
||
m('toy-car-vehicle-vintage-racer', 'Vehicle vintage гонщик', 'Транспорт', 'toy-car-kit', 'vehicle-vintage-racer', { targetHeight: 1.5 }),
|
||
m('toy-car-wheel-large', 'Колесо большой', 'Транспорт', 'toy-car-kit', 'wheel-large', { targetHeight: 0.5 }),
|
||
m('toy-car-wheel-medium', 'Колесо средний', 'Транспорт', 'toy-car-kit', 'wheel-medium', { targetHeight: 0.5 }),
|
||
m('toy-car-wheel-small', 'Колесо маленький', 'Транспорт', 'toy-car-kit', 'wheel-small', { targetHeight: 0.5 }),
|
||
m('racing-racecargreen', 'Гоночная машина зелёный', 'Транспорт', 'racing-kit', 'raceCarGreen', { targetHeight: 1.5 }),
|
||
m('racing-racecarorange', 'Гоночная машина оранжевый', 'Транспорт', 'racing-kit', 'raceCarOrange', { targetHeight: 1.5 }),
|
||
m('racing-racecarred', 'Гоночная машина красный', 'Транспорт', 'racing-kit', 'raceCarRed', { targetHeight: 1.5 }),
|
||
m('racing-racecarwhite', 'Гоночная машина белый', 'Транспорт', 'racing-kit', 'raceCarWhite', { targetHeight: 1.5 }),
|
||
|
||
// === Лодки === (43)
|
||
m('watercraft-boat-fan', 'Воздушная лодка', 'Лодки', 'watercraft-kit', 'boat-fan', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-fishing-small', 'Маленькая рыболовная лодка', 'Лодки', 'watercraft-kit', 'boat-fishing-small', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-house-a', 'Плавучий дом А', 'Лодки', 'watercraft-kit', 'boat-house-a', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-house-b', 'Плавучий дом Б', 'Лодки', 'watercraft-kit', 'boat-house-b', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-house-c', 'Плавучий дом В', 'Лодки', 'watercraft-kit', 'boat-house-c', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-house-d', 'Плавучий дом Г', 'Лодки', 'watercraft-kit', 'boat-house-d', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-row-large', 'Большая гребная лодка', 'Лодки', 'watercraft-kit', 'boat-row-large', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-row-small', 'Маленькая гребная лодка', 'Лодки', 'watercraft-kit', 'boat-row-small', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-sail-a', 'Парусник «Галеон»', 'Лодки', 'watercraft-kit', 'boat-sail-a', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-sail-b', 'Парусник «Бриг»', 'Лодки', 'watercraft-kit', 'boat-sail-b', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-speed-a', 'Скоростной катер «Молния»', 'Лодки', 'watercraft-kit', 'boat-speed-a', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-speed-b', 'Скоростной катер «Шторм»', 'Лодки', 'watercraft-kit', 'boat-speed-b', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-speed-c', 'Скоростной катер «Акула»', 'Лодки', 'watercraft-kit', 'boat-speed-c', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-speed-d', 'Скоростной катер «Барракуда»', 'Лодки', 'watercraft-kit', 'boat-speed-d', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-speed-e', 'Скоростной катер «Дельфин»', 'Лодки', 'watercraft-kit', 'boat-speed-e', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-speed-f', 'Скоростной катер «Стрела»', 'Лодки', 'watercraft-kit', 'boat-speed-f', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-speed-g', 'Скоростной катер «Орка»', 'Лодки', 'watercraft-kit', 'boat-speed-g', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-speed-h', 'Скоростной катер «Кит»', 'Лодки', 'watercraft-kit', 'boat-speed-h', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-speed-i', 'Скоростной катер «Парус»', 'Лодки', 'watercraft-kit', 'boat-speed-i', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-speed-j', 'Скоростной катер «Нептун»', 'Лодки', 'watercraft-kit', 'boat-speed-j', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-tow-a', 'Лодка tow a', 'Лодки', 'watercraft-kit', 'boat-tow-a', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-tow-b', 'Лодка tow b', 'Лодки', 'watercraft-kit', 'boat-tow-b', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-tug-a', 'Лодка tug a', 'Лодки', 'watercraft-kit', 'boat-tug-a', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-tug-b', 'Лодка tug b', 'Лодки', 'watercraft-kit', 'boat-tug-b', { targetHeight: 1.8 }),
|
||
m('watercraft-boat-tug-c', 'Лодка tug c', 'Лодки', 'watercraft-kit', 'boat-tug-c', { targetHeight: 1.8 }),
|
||
m('watercraft-ship-cargo-a', 'Корабль грузовой a', 'Лодки', 'watercraft-kit', 'ship-cargo-a', { targetHeight: 4 }),
|
||
m('watercraft-ship-cargo-b', 'Корабль грузовой b', 'Лодки', 'watercraft-kit', 'ship-cargo-b', { targetHeight: 4 }),
|
||
m('watercraft-ship-cargo-c', 'Корабль грузовой c', 'Лодки', 'watercraft-kit', 'ship-cargo-c', { targetHeight: 4 }),
|
||
m('watercraft-ship-large', 'Корабль большой', 'Лодки', 'watercraft-kit', 'ship-large', { targetHeight: 4 }),
|
||
m('watercraft-ship-ocean-liner-small', 'Корабль ocean liner маленький', 'Лодки', 'watercraft-kit', 'ship-ocean-liner-small', { targetHeight: 4 }),
|
||
m('watercraft-ship-ocean-liner', 'Корабль ocean liner', 'Лодки', 'watercraft-kit', 'ship-ocean-liner', { targetHeight: 4 }),
|
||
m('watercraft-ship-small-ghost', 'Корабль маленький Призрак', 'Лодки', 'watercraft-kit', 'ship-small-ghost', { targetHeight: 4 }),
|
||
m('watercraft-ship-small', 'Корабль маленький', 'Лодки', 'watercraft-kit', 'ship-small', { targetHeight: 4 }),
|
||
m('pirate-boat-row-large', 'Большая гребная лодка', 'Лодки', 'pirate-kit', 'boat-row-large', { targetHeight: 1.8 }),
|
||
m('pirate-boat-row-small', 'Маленькая гребная лодка', 'Лодки', 'pirate-kit', 'boat-row-small', { targetHeight: 1.8 }),
|
||
m('pirate-ship-ghost', 'Корабль Призрак', 'Лодки', 'pirate-kit', 'ship-ghost', { targetHeight: 4 }),
|
||
m('pirate-ship-large', 'Корабль большой', 'Лодки', 'pirate-kit', 'ship-large', { targetHeight: 4 }),
|
||
m('pirate-ship-medium', 'Корабль средний', 'Лодки', 'pirate-kit', 'ship-medium', { targetHeight: 4 }),
|
||
m('pirate-ship-pirate-large', 'Пиратский корабль большой', 'Лодки', 'pirate-kit', 'ship-pirate-large', { targetHeight: 4 }),
|
||
m('pirate-ship-pirate-medium', 'Пиратский корабль средний', 'Лодки', 'pirate-kit', 'ship-pirate-medium', { targetHeight: 4 }),
|
||
m('pirate-ship-pirate-small', 'Пиратский корабль маленький', 'Лодки', 'pirate-kit', 'ship-pirate-small', { targetHeight: 4 }),
|
||
m('pirate-ship-small', 'Корабль маленький', 'Лодки', 'pirate-kit', 'ship-small', { targetHeight: 4 }),
|
||
m('pirate-ship-wreck', 'Корабль Обломок', 'Лодки', 'pirate-kit', 'ship-wreck', { targetHeight: 4 }),
|
||
|
||
// === Sci-Fi === (50)
|
||
m('space-alien', 'Пришелец', 'Sci-Fi', 'space-kit', 'alien', { targetHeight: 1.7 }),
|
||
m('space-astronauta', 'Космонавт А', 'Sci-Fi', 'space-kit', 'astronautA', { targetHeight: 1.7 }),
|
||
m('space-astronautb', 'Космонавт Б', 'Sci-Fi', 'space-kit', 'astronautB', { targetHeight: 1.7 }),
|
||
m('space-barrel', 'Бочка', 'Sci-Fi', 'space-kit', 'barrel', { targetHeight: 1 }),
|
||
m('space-barrels', 'Бочки', 'Sci-Fi', 'space-kit', 'barrels', { targetHeight: 1 }),
|
||
m('space-barrels-rail', 'Бочки Рельс', 'Sci-Fi', 'space-kit', 'barrels_rail', { targetHeight: 1 }),
|
||
m('space-bones', 'Кости', 'Sci-Fi', 'space-kit', 'bones', { targetHeight: 2 }),
|
||
m('space-chimney', 'Дымоход', 'Sci-Fi', 'space-kit', 'chimney', { targetHeight: 2 }),
|
||
m('space-chimney-detailed', 'Дымоход детальный', 'Sci-Fi', 'space-kit', 'chimney_detailed', { targetHeight: 2 }),
|
||
m('space-corridor', 'Коридор', 'Sci-Fi', 'space-kit', 'corridor', { targetHeight: 2 }),
|
||
m('space-corridor-corner', 'Коридор угол', 'Sci-Fi', 'space-kit', 'corridor_corner', { targetHeight: 2 }),
|
||
m('space-corridor-cornerround', 'Коридор угол круглый', 'Sci-Fi', 'space-kit', 'corridor_cornerRound', { targetHeight: 2 }),
|
||
m('space-corridor-cornerroundwindow', 'Коридор угол круглый Окно', 'Sci-Fi', 'space-kit', 'corridor_cornerRoundWindow', { targetHeight: 2 }),
|
||
m('space-corridor-cross', 'Коридор крест', 'Sci-Fi', 'space-kit', 'corridor_cross', { targetHeight: 2 }),
|
||
m('space-corridor-detailed', 'Коридор детальный', 'Sci-Fi', 'space-kit', 'corridor_detailed', { targetHeight: 2 }),
|
||
m('space-corridor-end', 'Коридор конец', 'Sci-Fi', 'space-kit', 'corridor_end', { targetHeight: 2 }),
|
||
m('space-corridor-open', 'Коридор открытый', 'Sci-Fi', 'space-kit', 'corridor_open', { targetHeight: 2 }),
|
||
m('space-corridor-roof', 'Коридор Крыша', 'Sci-Fi', 'space-kit', 'corridor_roof', { targetHeight: 2 }),
|
||
m('space-corridor-split', 'Коридор split', 'Sci-Fi', 'space-kit', 'corridor_split', { targetHeight: 2 }),
|
||
m('space-corridor-wall', 'Коридор Стена', 'Sci-Fi', 'space-kit', 'corridor_wall', { targetHeight: 2 }),
|
||
m('space-corridor-wallcorner', 'Коридор Стена угол', 'Sci-Fi', 'space-kit', 'corridor_wallCorner', { targetHeight: 2 }),
|
||
m('space-corridor-window', 'Коридор Окно', 'Sci-Fi', 'space-kit', 'corridor_window', { targetHeight: 2 }),
|
||
m('space-corridor-windowclosed', 'Коридор Окно закрытый', 'Sci-Fi', 'space-kit', 'corridor_windowClosed', { targetHeight: 2 }),
|
||
m('space-craft-cargoa', 'Корабль грузовой A', 'Sci-Fi', 'space-kit', 'craft_cargoA', { targetHeight: 3 }),
|
||
m('space-craft-cargob', 'Корабль грузовой B', 'Sci-Fi', 'space-kit', 'craft_cargoB', { targetHeight: 3 }),
|
||
m('space-craft-miner', 'Рудный корабль', 'Sci-Fi', 'space-kit', 'craft_miner', { targetHeight: 3 }),
|
||
m('space-craft-racer', 'Гоночный корабль', 'Sci-Fi', 'space-kit', 'craft_racer', { targetHeight: 3 }),
|
||
m('space-craft-speedera', 'Корабль Спидер A', 'Sci-Fi', 'space-kit', 'craft_speederA', { targetHeight: 3 }),
|
||
m('space-craft-speederb', 'Корабль Спидер B', 'Sci-Fi', 'space-kit', 'craft_speederB', { targetHeight: 3 }),
|
||
m('space-craft-speederc', 'Корабль Спидер C', 'Sci-Fi', 'space-kit', 'craft_speederC', { targetHeight: 3 }),
|
||
m('space-craft-speederd', 'Корабль Спидер D', 'Sci-Fi', 'space-kit', 'craft_speederD', { targetHeight: 3 }),
|
||
m('space-crater', 'Кратер', 'Sci-Fi', 'space-kit', 'crater', { targetHeight: 2 }),
|
||
m('space-craterlarge', 'Кратер большой', 'Sci-Fi', 'space-kit', 'craterLarge', { targetHeight: 2 }),
|
||
m('space-desk-chair', 'Письменный стол Стул', 'Sci-Fi', 'space-kit', 'desk_chair', { targetHeight: 2 }),
|
||
m('space-desk-chairarms', 'Письменный стол Стул Arms', 'Sci-Fi', 'space-kit', 'desk_chairArms', { targetHeight: 2 }),
|
||
m('space-desk-chairstool', 'Письменный стол Стул Табурет', 'Sci-Fi', 'space-kit', 'desk_chairStool', { targetHeight: 2 }),
|
||
m('space-desk-computer', 'Письменный стол Компьютер', 'Sci-Fi', 'space-kit', 'desk_computer', { targetHeight: 2 }),
|
||
m('space-desk-computercorner', 'Письменный стол Компьютер угол', 'Sci-Fi', 'space-kit', 'desk_computerCorner', { targetHeight: 2 }),
|
||
m('space-desk-computerscreen', 'Письменный стол Компьютер Screen', 'Sci-Fi', 'space-kit', 'desk_computerScreen', { targetHeight: 2 }),
|
||
m('space-gate-complex', 'Ворота сложный', 'Sci-Fi', 'space-kit', 'gate_complex', { targetHeight: 2 }),
|
||
m('space-gate-simple', 'Ворота simple', 'Sci-Fi', 'space-kit', 'gate_simple', { targetHeight: 2 }),
|
||
m('space-hangar-largea', 'Ангар большой A', 'Sci-Fi', 'space-kit', 'hangar_largeA', { targetHeight: 5 }),
|
||
m('space-hangar-largeb', 'Ангар большой B', 'Sci-Fi', 'space-kit', 'hangar_largeB', { targetHeight: 5 }),
|
||
m('space-hangar-rounda', 'Ангар круглый A', 'Sci-Fi', 'space-kit', 'hangar_roundA', { targetHeight: 5 }),
|
||
m('space-hangar-roundb', 'Ангар круглый B', 'Sci-Fi', 'space-kit', 'hangar_roundB', { targetHeight: 5 }),
|
||
m('space-hangar-roundglass', 'Ангар круглый Стакан', 'Sci-Fi', 'space-kit', 'hangar_roundGlass', { targetHeight: 5 }),
|
||
m('space-hangar-smalla', 'Ангар маленький A', 'Sci-Fi', 'space-kit', 'hangar_smallA', { targetHeight: 5 }),
|
||
m('space-hangar-smallb', 'Ангар маленький B', 'Sci-Fi', 'space-kit', 'hangar_smallB', { targetHeight: 5 }),
|
||
m('space-machine-barrel', 'Машина Бочка', 'Sci-Fi', 'space-kit', 'machine_barrel', { targetHeight: 1 }),
|
||
m('space-machine-barrellarge', 'Машина Бочка большой', 'Sci-Fi', 'space-kit', 'machine_barrelLarge', { targetHeight: 1 }),
|
||
|
||
// === Здания === (21)
|
||
m('city-suburban-building-type-a', 'Жёлтый дом', 'Здания', 'city-kit-suburban', 'building-type-a', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-b', 'Особняк с гаражом', 'Здания', 'city-kit-suburban', 'building-type-b', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-c', 'Дом с террасой', 'Здания', 'city-kit-suburban', 'building-type-c', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-d', 'Двухэтажный коттедж', 'Здания', 'city-kit-suburban', 'building-type-d', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-e', 'Дом с мансардой', 'Здания', 'city-kit-suburban', 'building-type-e', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-f', 'Современный дом', 'Здания', 'city-kit-suburban', 'building-type-f', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-g', 'Кирпичный дом', 'Здания', 'city-kit-suburban', 'building-type-g', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-h', 'Бунгало', 'Здания', 'city-kit-suburban', 'building-type-h', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-i', 'Викторианский дом', 'Здания', 'city-kit-suburban', 'building-type-i', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-j', 'Угловой дом', 'Здания', 'city-kit-suburban', 'building-type-j', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-k', 'Дом с балконом', 'Здания', 'city-kit-suburban', 'building-type-k', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-l', 'Загородный дом', 'Здания', 'city-kit-suburban', 'building-type-l', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-m', 'Дом с крыльцом', 'Здания', 'city-kit-suburban', 'building-type-m', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-n', 'Дом с башенкой', 'Здания', 'city-kit-suburban', 'building-type-n', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-o', 'Семейный дом', 'Здания', 'city-kit-suburban', 'building-type-o', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-p', 'Дом-шале', 'Здания', 'city-kit-suburban', 'building-type-p', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-q', 'Дом с эркером', 'Здания', 'city-kit-suburban', 'building-type-q', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-r', 'Городской дом', 'Здания', 'city-kit-suburban', 'building-type-r', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-s', 'Дом-куб', 'Здания', 'city-kit-suburban', 'building-type-s', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-t', 'Просторный дом', 'Здания', 'city-kit-suburban', 'building-type-t', { targetHeight: 8 }),
|
||
m('city-suburban-building-type-u', 'Загородная вилла', 'Здания', 'city-kit-suburban', 'building-type-u', { targetHeight: 8 }),
|
||
|
||
// === Дороги === (50)
|
||
m('city-roads-bridge-pillar-wide', 'Мост Широкая колонна', 'Дороги', 'city-kit-roads', 'bridge-pillar-wide'),
|
||
m('city-roads-bridge-pillar', 'Мост Колонна', 'Дороги', 'city-kit-roads', 'bridge-pillar'),
|
||
m('city-roads-construction-barrier', 'Стройка барьер', 'Дороги', 'city-kit-roads', 'construction-barrier'),
|
||
m('city-roads-construction-cone', 'Стройка Конус', 'Дороги', 'city-kit-roads', 'construction-cone'),
|
||
m('city-roads-construction-light', 'Стройка свет', 'Дороги', 'city-kit-roads', 'construction-light'),
|
||
m('city-roads-light-curved-cross', 'Свет поворот d крест', 'Дороги', 'city-kit-roads', 'light-curved-cross'),
|
||
m('city-roads-light-curved-double', 'Свет поворот d двойной', 'Дороги', 'city-kit-roads', 'light-curved-double'),
|
||
m('city-roads-light-curved', 'Свет поворот d', 'Дороги', 'city-kit-roads', 'light-curved'),
|
||
m('city-roads-light-square-cross', 'Свет квадратный крест', 'Дороги', 'city-kit-roads', 'light-square-cross'),
|
||
m('city-roads-light-square-double', 'Свет квадратный двойной', 'Дороги', 'city-kit-roads', 'light-square-double'),
|
||
m('city-roads-light-square', 'Свет квадратный', 'Дороги', 'city-kit-roads', 'light-square'),
|
||
m('city-roads-road-bend-barrier', 'Дорога b конец барьер', 'Дороги', 'city-kit-roads', 'road-bend-barrier'),
|
||
m('city-roads-road-bend-sidewalk', 'Дорога b конец Тротуар', 'Дороги', 'city-kit-roads', 'road-bend-sidewalk'),
|
||
m('city-roads-road-bend-square-barrier', 'Дорога b конец квадратный барьер', 'Дороги', 'city-kit-roads', 'road-bend-square-barrier'),
|
||
m('city-roads-road-bend-square', 'Дорога b конец квадратный', 'Дороги', 'city-kit-roads', 'road-bend-square'),
|
||
m('city-roads-road-bend', 'Дорога b конец', 'Дороги', 'city-kit-roads', 'road-bend'),
|
||
m('city-roads-road-bridge', 'Дорога Мост', 'Дороги', 'city-kit-roads', 'road-bridge'),
|
||
m('city-roads-road-crossing', 'Дорога Переход', 'Дороги', 'city-kit-roads', 'road-crossing'),
|
||
m('city-roads-road-crossroad-barrier', 'Дорога Перекрёсток барьер', 'Дороги', 'city-kit-roads', 'road-crossroad-barrier'),
|
||
m('city-roads-road-crossroad-line', 'Дорога Перекрёсток линия', 'Дороги', 'city-kit-roads', 'road-crossroad-line'),
|
||
m('city-roads-road-crossroad-path', 'Дорога Перекрёсток Тропа', 'Дороги', 'city-kit-roads', 'road-crossroad-path'),
|
||
m('city-roads-road-crossroad', 'Дорога Перекрёсток', 'Дороги', 'city-kit-roads', 'road-crossroad'),
|
||
m('city-roads-road-curve-barrier', 'Дорога Поворот барьер', 'Дороги', 'city-kit-roads', 'road-curve-barrier'),
|
||
m('city-roads-road-curve-intersection-barrier', 'Дорога Поворот Перекрёсток барьер', 'Дороги', 'city-kit-roads', 'road-curve-intersection-barrier'),
|
||
m('city-roads-road-curve-intersection', 'Дорога Поворот Перекрёсток', 'Дороги', 'city-kit-roads', 'road-curve-intersection'),
|
||
m('city-roads-road-curve-pavement', 'Дорога Поворот pavement', 'Дороги', 'city-kit-roads', 'road-curve-pavement'),
|
||
m('city-roads-road-curve', 'Дорога Поворот', 'Дороги', 'city-kit-roads', 'road-curve'),
|
||
m('city-roads-road-driveway-double-barrier', 'Дорога въезд двойной барьер', 'Дороги', 'city-kit-roads', 'road-driveway-double-barrier'),
|
||
m('city-roads-road-driveway-double', 'Дорога въезд двойной', 'Дороги', 'city-kit-roads', 'road-driveway-double'),
|
||
m('city-roads-road-driveway-single-barrier', 'Дорога въезд одинарный барьер', 'Дороги', 'city-kit-roads', 'road-driveway-single-barrier'),
|
||
m('city-roads-road-driveway-single', 'Дорога въезд одинарный', 'Дороги', 'city-kit-roads', 'road-driveway-single'),
|
||
m('city-roads-road-end-barrier', 'Дорога конец барьер', 'Дороги', 'city-kit-roads', 'road-end-barrier'),
|
||
m('city-roads-road-end-round-barrier', 'Дорога конец круглый барьер', 'Дороги', 'city-kit-roads', 'road-end-round-barrier'),
|
||
m('city-roads-road-end-round', 'Дорога конец круглый', 'Дороги', 'city-kit-roads', 'road-end-round'),
|
||
m('city-roads-road-end', 'Дорога конец', 'Дороги', 'city-kit-roads', 'road-end'),
|
||
m('city-roads-road-intersection-barrier', 'Дорога Перекрёсток барьер', 'Дороги', 'city-kit-roads', 'road-intersection-barrier'),
|
||
m('city-roads-road-intersection-line', 'Дорога Перекрёсток линия', 'Дороги', 'city-kit-roads', 'road-intersection-line'),
|
||
m('city-roads-road-intersection-path', 'Дорога Перекрёсток Тропа', 'Дороги', 'city-kit-roads', 'road-intersection-path'),
|
||
m('city-roads-road-intersection', 'Дорога Перекрёсток', 'Дороги', 'city-kit-roads', 'road-intersection'),
|
||
m('city-roads-road-roundabout-barrier', 'Дорога круговое движение барьер', 'Дороги', 'city-kit-roads', 'road-roundabout-barrier'),
|
||
m('city-roads-road-roundabout', 'Дорога круговое движение', 'Дороги', 'city-kit-roads', 'road-roundabout'),
|
||
m('city-roads-road-side-barrier', 'Дорога бок барьер', 'Дороги', 'city-kit-roads', 'road-side-barrier'),
|
||
m('city-roads-road-side-entry-barrier', 'Дорога бок вход барьер', 'Дороги', 'city-kit-roads', 'road-side-entry-barrier'),
|
||
m('city-roads-road-side-entry', 'Дорога бок вход', 'Дороги', 'city-kit-roads', 'road-side-entry'),
|
||
m('city-roads-road-side-exit-barrier', 'Дорога бок выход барьер', 'Дороги', 'city-kit-roads', 'road-side-exit-barrier'),
|
||
m('city-roads-road-side-exit', 'Дорога бок выход', 'Дороги', 'city-kit-roads', 'road-side-exit'),
|
||
m('city-roads-road-side', 'Дорога бок', 'Дороги', 'city-kit-roads', 'road-side'),
|
||
m('city-roads-road-slant-barrier', 'Дорога slant барьер', 'Дороги', 'city-kit-roads', 'road-slant-barrier'),
|
||
m('city-roads-road-slant-curve-barrier', 'Дорога slant Поворот барьер', 'Дороги', 'city-kit-roads', 'road-slant-curve-barrier'),
|
||
m('city-roads-road-slant-curve', 'Дорога slant Поворот', 'Дороги', 'city-kit-roads', 'road-slant-curve'),
|
||
|
||
// === Замки === (50)
|
||
m('tower-defense-detail-crystal-large', 'Деталь Кристалл большой', 'Замки', 'tower-defense-kit', 'detail-crystal-large', { targetHeight: 0.8 }),
|
||
m('tower-defense-detail-crystal', 'Деталь Кристалл', 'Замки', 'tower-defense-kit', 'detail-crystal', { targetHeight: 0.8 }),
|
||
m('tower-defense-detail-dirt-large', 'Земля (декор) большой', 'Замки', 'tower-defense-kit', 'detail-dirt-large', { targetHeight: 1 }),
|
||
m('tower-defense-detail-dirt', 'Земля (декор)', 'Замки', 'tower-defense-kit', 'detail-dirt', { targetHeight: 1 }),
|
||
m('tower-defense-detail-rocks-large', 'Деталь Камни большой', 'Замки', 'tower-defense-kit', 'detail-rocks-large', { targetHeight: 1 }),
|
||
m('tower-defense-detail-rocks', 'Деталь Камни', 'Замки', 'tower-defense-kit', 'detail-rocks', { targetHeight: 1 }),
|
||
m('tower-defense-detail-tree-large', 'Деталь Большое дерево', 'Замки', 'tower-defense-kit', 'detail-tree-large', { targetHeight: 3 }),
|
||
m('tower-defense-detail-tree', 'Деталь Дерево', 'Замки', 'tower-defense-kit', 'detail-tree', { targetHeight: 3 }),
|
||
m('tower-defense-enemy-ufo-a-weapon', 'Враг НЛО a Оружие', 'Замки', 'tower-defense-kit', 'enemy-ufo-a-weapon', { targetHeight: 1.7 }),
|
||
m('tower-defense-enemy-ufo-a', 'Враг НЛО a', 'Замки', 'tower-defense-kit', 'enemy-ufo-a', { targetHeight: 1.7 }),
|
||
m('tower-defense-enemy-ufo-b-weapon', 'Враг НЛО b Оружие', 'Замки', 'tower-defense-kit', 'enemy-ufo-b-weapon', { targetHeight: 1.7 }),
|
||
m('tower-defense-enemy-ufo-b', 'Враг НЛО b', 'Замки', 'tower-defense-kit', 'enemy-ufo-b', { targetHeight: 1.7 }),
|
||
m('tower-defense-enemy-ufo-beam-burst', 'Враг НЛО beam burst', 'Замки', 'tower-defense-kit', 'enemy-ufo-beam-burst', { targetHeight: 1.7 }),
|
||
m('tower-defense-enemy-ufo-beam', 'Враг НЛО beam', 'Замки', 'tower-defense-kit', 'enemy-ufo-beam', { targetHeight: 1.7 }),
|
||
m('tower-defense-enemy-ufo-c-weapon', 'Враг НЛО c Оружие', 'Замки', 'tower-defense-kit', 'enemy-ufo-c-weapon', { targetHeight: 1.7 }),
|
||
m('tower-defense-enemy-ufo-c', 'Враг НЛО c', 'Замки', 'tower-defense-kit', 'enemy-ufo-c', { targetHeight: 1.7 }),
|
||
m('tower-defense-enemy-ufo-d-weapon', 'Враг НЛО d Оружие', 'Замки', 'tower-defense-kit', 'enemy-ufo-d-weapon', { targetHeight: 1.7 }),
|
||
m('tower-defense-enemy-ufo-d', 'Враг НЛО d', 'Замки', 'tower-defense-kit', 'enemy-ufo-d', { targetHeight: 1.7 }),
|
||
m('tower-defense-selection-a', 'Выделение А', 'Замки', 'tower-defense-kit', 'selection-a', { targetHeight: 0.2 }),
|
||
m('tower-defense-selection-b', 'Выделение Б', 'Замки', 'tower-defense-kit', 'selection-b', { targetHeight: 0.2 }),
|
||
m('tower-defense-snow-detail-crystal-large', 'Снег Деталь Кристалл большой', 'Замки', 'tower-defense-kit', 'snow-detail-crystal-large', { targetHeight: 0.8 }),
|
||
m('tower-defense-snow-detail-crystal', 'Снег Деталь Кристалл', 'Замки', 'tower-defense-kit', 'snow-detail-crystal', { targetHeight: 0.8 }),
|
||
m('tower-defense-snow-detail-dirt-large', 'Снег Земля (декор) большой', 'Замки', 'tower-defense-kit', 'snow-detail-dirt-large', { targetHeight: 1 }),
|
||
m('tower-defense-snow-detail-dirt', 'Снег Земля (декор)', 'Замки', 'tower-defense-kit', 'snow-detail-dirt', { targetHeight: 1 }),
|
||
m('tower-defense-snow-detail-rocks-large', 'Снег Деталь Камни большой', 'Замки', 'tower-defense-kit', 'snow-detail-rocks-large', { targetHeight: 1 }),
|
||
m('tower-defense-snow-detail-rocks', 'Снег Деталь Камни', 'Замки', 'tower-defense-kit', 'snow-detail-rocks', { targetHeight: 1 }),
|
||
m('tower-defense-snow-detail-tree-large', 'Снег Деталь Большое дерево', 'Замки', 'tower-defense-kit', 'snow-detail-tree-large', { targetHeight: 3 }),
|
||
m('tower-defense-snow-detail-tree', 'Снег Деталь Дерево', 'Замки', 'tower-defense-kit', 'snow-detail-tree', { targetHeight: 3 }),
|
||
m('tower-defense-snow-tile-bump', 'Снег Плитка кочка', 'Замки', 'tower-defense-kit', 'snow-tile-bump', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-corner-inner', 'Снег Плитка угол внутр.', 'Замки', 'tower-defense-kit', 'snow-tile-corner-inner', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-corner-large', 'Снег Плитка угол большой', 'Замки', 'tower-defense-kit', 'snow-tile-corner-large', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-corner-outer', 'Снег Плитка угол внеш.', 'Замки', 'tower-defense-kit', 'snow-tile-corner-outer', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-corner-round', 'Снег Плитка угол круглый', 'Замки', 'tower-defense-kit', 'snow-tile-corner-round', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-corner-square', 'Снег Плитка угол квадратный', 'Замки', 'tower-defense-kit', 'snow-tile-corner-square', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-crossing', 'Снег Плитка Переход', 'Замки', 'tower-defense-kit', 'snow-tile-crossing', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-crystal', 'Снег Плитка Кристалл', 'Замки', 'tower-defense-kit', 'snow-tile-crystal', { targetHeight: 0.8 }),
|
||
m('tower-defense-snow-tile-dirt', 'Снег Плитка земли', 'Замки', 'tower-defense-kit', 'snow-tile-dirt', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-end-round', 'Снег Плитка конец круглый', 'Замки', 'tower-defense-kit', 'snow-tile-end-round', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-end', 'Снег Плитка конец', 'Замки', 'tower-defense-kit', 'snow-tile-end', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-hill', 'Снег Плитка холм', 'Замки', 'tower-defense-kit', 'snow-tile-hill', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-river-bridge', 'Снег Плитка river Мост', 'Замки', 'tower-defense-kit', 'snow-tile-river-bridge', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-river-corner', 'Снег Плитка river угол', 'Замки', 'tower-defense-kit', 'snow-tile-river-corner', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-river-slope-large', 'Снег Плитка river наклон большой', 'Замки', 'tower-defense-kit', 'snow-tile-river-slope-large', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-river-slope', 'Снег Плитка river наклон', 'Замки', 'tower-defense-kit', 'snow-tile-river-slope', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-river-straight', 'Снег Плитка river Прямой участок', 'Замки', 'tower-defense-kit', 'snow-tile-river-straight', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-river-transition', 'Снег Плитка river transition', 'Замки', 'tower-defense-kit', 'snow-tile-river-transition', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-river-waterfall', 'Снег Плитка river waterfall', 'Замки', 'tower-defense-kit', 'snow-tile-river-waterfall', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-rock', 'Снег Плитка Камень', 'Замки', 'tower-defense-kit', 'snow-tile-rock', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-slope', 'Снег Плитка наклон', 'Замки', 'tower-defense-kit', 'snow-tile-slope', { targetHeight: 0.4 }),
|
||
m('tower-defense-snow-tile-spawn-end-round', 'Снег Плитка spawn конец круглый', 'Замки', 'tower-defense-kit', 'snow-tile-spawn-end-round', { targetHeight: 0.4 }),
|
||
|
||
// === Мебель === (50)
|
||
m('furniture-bathroomcabinet', 'Шкафчик ванной', 'Мебель', 'furniture-kit', 'bathroomCabinet', { targetHeight: 2.2 }),
|
||
m('furniture-bathroomcabinetdrawer', 'Тумба ванной с ящиком', 'Мебель', 'furniture-kit', 'bathroomCabinetDrawer', { targetHeight: 2.2 }),
|
||
m('furniture-bathroommirror', 'Ванная Зеркало', 'Мебель', 'furniture-kit', 'bathroomMirror', { targetHeight: 1 }),
|
||
m('furniture-bathroomsink', 'Ванная Раковина', 'Мебель', 'furniture-kit', 'bathroomSink', { targetHeight: 1.2 }),
|
||
m('furniture-bathroomsinksquare', 'Ванная Раковина квадратный', 'Мебель', 'furniture-kit', 'bathroomSinkSquare', { targetHeight: 1.2 }),
|
||
m('furniture-bathtub', 'Ванна', 'Мебель', 'furniture-kit', 'bathtub', { targetHeight: 1.2 }),
|
||
m('furniture-bear', 'Медведь', 'Мебель', 'furniture-kit', 'bear', { targetHeight: 1.2 }),
|
||
m('furniture-bedbunk', 'Кровать Bunk', 'Мебель', 'furniture-kit', 'bedBunk', { targetHeight: 1 }),
|
||
m('furniture-beddouble', 'Кровать двуспальная', 'Мебель', 'furniture-kit', 'bedDouble', { targetHeight: 1 }),
|
||
m('furniture-bedsingle', 'Кровать односпальная', 'Мебель', 'furniture-kit', 'bedSingle', { targetHeight: 1 }),
|
||
m('furniture-bench', 'Скамейка', 'Мебель', 'furniture-kit', 'bench', { targetHeight: 1.2 }),
|
||
m('furniture-benchcushion', 'Скамейка подушка', 'Мебель', 'furniture-kit', 'benchCushion', { targetHeight: 1.2 }),
|
||
m('furniture-benchcushionlow', 'Скамейка подушка низкий', 'Мебель', 'furniture-kit', 'benchCushionLow', { targetHeight: 1.2 }),
|
||
m('furniture-bookcaseclosed', 'Книжный шкаф закрытый', 'Мебель', 'furniture-kit', 'bookcaseClosed', { targetHeight: 2.2 }),
|
||
m('furniture-bookcasecloseddoors', 'Книжный шкаф закрытый Doors', 'Мебель', 'furniture-kit', 'bookcaseClosedDoors', { targetHeight: 2.2 }),
|
||
m('furniture-bookcaseclosedwide', 'Книжный шкаф закрытый широкий', 'Мебель', 'furniture-kit', 'bookcaseClosedWide', { targetHeight: 2.2 }),
|
||
m('furniture-bookcaseopen', 'Книжный шкаф открытый', 'Мебель', 'furniture-kit', 'bookcaseOpen', { targetHeight: 2.2 }),
|
||
m('furniture-bookcaseopenlow', 'Книжный шкаф открытый низкий', 'Мебель', 'furniture-kit', 'bookcaseOpenLow', { targetHeight: 2.2 }),
|
||
m('furniture-books', 'Книги', 'Мебель', 'furniture-kit', 'books', { targetHeight: 1.2 }),
|
||
m('furniture-cabinetbed', 'Шкафчик Кровать', 'Мебель', 'furniture-kit', 'cabinetBed', { targetHeight: 2.2 }),
|
||
m('furniture-cabinetbeddrawer', 'Шкафчик Кровать ящик', 'Мебель', 'furniture-kit', 'cabinetBedDrawer', { targetHeight: 2.2 }),
|
||
m('furniture-cabinetbeddrawertable', 'Шкафчик Кровать ящик Стол', 'Мебель', 'furniture-kit', 'cabinetBedDrawerTable', { targetHeight: 2.2 }),
|
||
m('furniture-cabinettelevision', 'Шкафчик Телевизор', 'Мебель', 'furniture-kit', 'cabinetTelevision', { targetHeight: 0.8 }),
|
||
m('furniture-cabinettelevisiondoors', 'Шкафчик Телевизор Doors', 'Мебель', 'furniture-kit', 'cabinetTelevisionDoors', { targetHeight: 0.8 }),
|
||
m('furniture-cardboardboxclosed', 'Картон Коробка закрытый', 'Мебель', 'furniture-kit', 'cardboardBoxClosed', { targetHeight: 1.2 }),
|
||
m('furniture-cardboardboxopen', 'Картон Коробка открытый', 'Мебель', 'furniture-kit', 'cardboardBoxOpen', { targetHeight: 1.2 }),
|
||
m('furniture-ceilingfan', 'Потолок вентилятор', 'Мебель', 'furniture-kit', 'ceilingFan', { targetHeight: 1.2 }),
|
||
m('furniture-chair', 'Стул', 'Мебель', 'furniture-kit', 'chair', { targetHeight: 1.2 }),
|
||
m('furniture-chaircushion', 'Стул подушка', 'Мебель', 'furniture-kit', 'chairCushion', { targetHeight: 1.2 }),
|
||
m('furniture-chairdesk', 'Стул Письменный стол', 'Мебель', 'furniture-kit', 'chairDesk', { targetHeight: 1.2 }),
|
||
m('furniture-chairmoderncushion', 'Стул современный подушка', 'Мебель', 'furniture-kit', 'chairModernCushion', { targetHeight: 1.2 }),
|
||
m('furniture-chairmodernframecushion', 'Стул современный Рамка подушка', 'Мебель', 'furniture-kit', 'chairModernFrameCushion', { targetHeight: 1.2 }),
|
||
m('furniture-chairrounded', 'Стул Rounded', 'Мебель', 'furniture-kit', 'chairRounded', { targetHeight: 1.2 }),
|
||
m('furniture-coatrack', 'Пальто стойка', 'Мебель', 'furniture-kit', 'coatRack', { targetHeight: 1.2 }),
|
||
m('furniture-coatrackstanding', 'Пальто стойка Standing', 'Мебель', 'furniture-kit', 'coatRackStanding', { targetHeight: 1.2 }),
|
||
m('furniture-computerkeyboard', 'Компьютер Keyboard', 'Мебель', 'furniture-kit', 'computerKeyboard', { targetHeight: 0.8 }),
|
||
m('furniture-computermouse', 'Компьютер Mouse', 'Мебель', 'furniture-kit', 'computerMouse', { targetHeight: 0.8 }),
|
||
m('furniture-computerscreen', 'Компьютер Screen', 'Мебель', 'furniture-kit', 'computerScreen', { targetHeight: 0.8 }),
|
||
m('furniture-desk', 'Письменный стол', 'Мебель', 'furniture-kit', 'desk', { targetHeight: 1.2 }),
|
||
m('furniture-deskcorner', 'Письменный стол угол', 'Мебель', 'furniture-kit', 'deskCorner', { targetHeight: 1.2 }),
|
||
m('furniture-doorway', 'Проём', 'Мебель', 'furniture-kit', 'doorway', { targetHeight: 1.2 }),
|
||
m('furniture-doorwayfront', 'Проём перед', 'Мебель', 'furniture-kit', 'doorwayFront', { targetHeight: 1.2 }),
|
||
m('furniture-doorwayopen', 'Проём открытый', 'Мебель', 'furniture-kit', 'doorwayOpen', { targetHeight: 1.2 }),
|
||
m('furniture-dryer', 'Сушилка', 'Мебель', 'furniture-kit', 'dryer', { targetHeight: 1.2 }),
|
||
m('furniture-floorcorner', 'Пол угол', 'Мебель', 'furniture-kit', 'floorCorner', { targetHeight: 1.2 }),
|
||
m('furniture-floorcornerround', 'Пол угол круглый', 'Мебель', 'furniture-kit', 'floorCornerRound', { targetHeight: 1.2 }),
|
||
m('furniture-floorfull', 'Пол полный', 'Мебель', 'furniture-kit', 'floorFull', { targetHeight: 1.2 }),
|
||
m('furniture-floorhalf', 'Пол половина', 'Мебель', 'furniture-kit', 'floorHalf', { targetHeight: 1.2 }),
|
||
m('furniture-hoodlarge', 'Hood большой', 'Мебель', 'furniture-kit', 'hoodLarge', { targetHeight: 1.2 }),
|
||
m('furniture-hoodmodern', 'Hood современный', 'Мебель', 'furniture-kit', 'hoodModern', { targetHeight: 1.2 }),
|
||
|
||
// === Еда === (50)
|
||
m('food-advocado-half', 'Авокадо (половинка)', 'Еда', 'food-kit', 'advocado-half', { targetHeight: 0.5 }),
|
||
m('food-apple-half', 'Яблоко (половинка)', 'Еда', 'food-kit', 'apple-half', { targetHeight: 0.4 }),
|
||
m('food-apple', 'Яблоко', 'Еда', 'food-kit', 'apple', { targetHeight: 0.4 }),
|
||
m('food-avocado', 'Авокадо', 'Еда', 'food-kit', 'avocado', { targetHeight: 0.5 }),
|
||
m('food-bacon-raw', 'Сырой бекон', 'Еда', 'food-kit', 'bacon-raw', { targetHeight: 0.5 }),
|
||
m('food-bacon', 'Бекон', 'Еда', 'food-kit', 'bacon', { targetHeight: 0.5 }),
|
||
m('food-bag-flat', 'Пакет плоский', 'Еда', 'food-kit', 'bag-flat', { targetHeight: 0.5 }),
|
||
m('food-bag', 'Пакет', 'Еда', 'food-kit', 'bag', { targetHeight: 0.5 }),
|
||
m('food-banana', 'Банан', 'Еда', 'food-kit', 'banana', { targetHeight: 0.4 }),
|
||
m('food-barrel', 'Бочка', 'Еда', 'food-kit', 'barrel', { targetHeight: 0.5 }),
|
||
m('food-beet', 'Свёкла', 'Еда', 'food-kit', 'beet', { targetHeight: 0.4 }),
|
||
m('food-bottle-ketchup', 'Кетчуп', 'Еда', 'food-kit', 'bottle-ketchup', { targetHeight: 0.7 }),
|
||
m('food-bottle-musterd', 'Горчица', 'Еда', 'food-kit', 'bottle-musterd', { targetHeight: 0.7 }),
|
||
m('food-bottle-oil', 'Масло', 'Еда', 'food-kit', 'bottle-oil', { targetHeight: 0.7 }),
|
||
m('food-bowl-broth', 'Тарелка с бульоном', 'Еда', 'food-kit', 'bowl-broth', { targetHeight: 0.3 }),
|
||
m('food-bowl-cereal', 'Тарелка с хлопьями', 'Еда', 'food-kit', 'bowl-cereal', { targetHeight: 0.3 }),
|
||
m('food-bowl-soup', 'Миска Суп', 'Еда', 'food-kit', 'bowl-soup', { targetHeight: 0.3 }),
|
||
m('food-bowl', 'Миска', 'Еда', 'food-kit', 'bowl', { targetHeight: 0.3 }),
|
||
m('food-bread', 'Хлеб', 'Еда', 'food-kit', 'bread', { targetHeight: 0.5 }),
|
||
m('food-broccoli', 'Брокколи', 'Еда', 'food-kit', 'broccoli', { targetHeight: 0.5 }),
|
||
m('food-burger-cheese-double', 'Бургер Сыр двойной', 'Еда', 'food-kit', 'burger-cheese-double', { targetHeight: 0.5 }),
|
||
m('food-burger-cheese', 'Бургер Сыр', 'Еда', 'food-kit', 'burger-cheese', { targetHeight: 0.5 }),
|
||
m('food-burger-double', 'Бургер двойной', 'Еда', 'food-kit', 'burger-double', { targetHeight: 0.5 }),
|
||
m('food-burger', 'Бургер', 'Еда', 'food-kit', 'burger', { targetHeight: 0.5 }),
|
||
m('food-cabbage', 'Капуста', 'Еда', 'food-kit', 'cabbage', { targetHeight: 0.5 }),
|
||
m('food-cake-birthday', 'Торт день рождения', 'Еда', 'food-kit', 'cake-birthday', { targetHeight: 0.7 }),
|
||
m('food-cake-slicer', 'Торт кусок', 'Еда', 'food-kit', 'cake-slicer', { targetHeight: 0.7 }),
|
||
m('food-cake', 'Торт', 'Еда', 'food-kit', 'cake', { targetHeight: 0.7 }),
|
||
m('food-can-open', 'Банка открытый', 'Еда', 'food-kit', 'can-open', { targetHeight: 0.5 }),
|
||
m('food-can-small', 'Банка маленький', 'Еда', 'food-kit', 'can-small', { targetHeight: 0.5 }),
|
||
m('food-can', 'Банка', 'Еда', 'food-kit', 'can', { targetHeight: 0.5 }),
|
||
m('food-candy-bar-wrapper', 'Конфета батончик обёртка', 'Еда', 'food-kit', 'candy-bar-wrapper', { targetHeight: 0.5 }),
|
||
m('food-candy-bar', 'Конфета батончик', 'Еда', 'food-kit', 'candy-bar', { targetHeight: 0.5 }),
|
||
m('food-carrot', 'Морковь', 'Еда', 'food-kit', 'carrot', { targetHeight: 0.4 }),
|
||
m('food-carton-small', 'Пакет маленький', 'Еда', 'food-kit', 'carton-small', { targetHeight: 0.5 }),
|
||
m('food-carton', 'Пакет', 'Еда', 'food-kit', 'carton', { targetHeight: 0.5 }),
|
||
m('food-cauliflower', 'Цветная капуста', 'Еда', 'food-kit', 'cauliflower', { targetHeight: 0.5 }),
|
||
m('food-celery-stick', 'Сельдерей Палка', 'Еда', 'food-kit', 'celery-stick', { targetHeight: 0.5 }),
|
||
m('food-cheese-cut', 'Сыр cut', 'Еда', 'food-kit', 'cheese-cut', { targetHeight: 0.5 }),
|
||
m('food-cheese-slicer', 'Сыр кусок', 'Еда', 'food-kit', 'cheese-slicer', { targetHeight: 0.5 }),
|
||
m('food-cheese', 'Сыр', 'Еда', 'food-kit', 'cheese', { targetHeight: 0.5 }),
|
||
m('food-cherries', 'Черешня', 'Еда', 'food-kit', 'cherries', { targetHeight: 0.5 }),
|
||
m('food-chinese', 'Chinese', 'Еда', 'food-kit', 'chinese', { targetHeight: 0.5 }),
|
||
m('food-chocolate-wrapper', 'Шоколад обёртка', 'Еда', 'food-kit', 'chocolate-wrapper', { targetHeight: 0.5 }),
|
||
m('food-chocolate', 'Шоколад', 'Еда', 'food-kit', 'chocolate', { targetHeight: 0.5 }),
|
||
m('food-chopstic-decorative', 'Chopstic декоративный', 'Еда', 'food-kit', 'chopstic-decorative', { targetHeight: 0.5 }),
|
||
m('food-chopstick', 'Палочка', 'Еда', 'food-kit', 'chopstick', { targetHeight: 0.5 }),
|
||
m('food-cocktail', 'Коктейль', 'Еда', 'food-kit', 'cocktail', { targetHeight: 0.5 }),
|
||
m('food-coconut-half', 'Половинка кокоса', 'Еда', 'food-kit', 'coconut-half', { targetHeight: 0.5 }),
|
||
m('food-coconut', 'Кокос', 'Еда', 'food-kit', 'coconut', { targetHeight: 0.5 }),
|
||
|
||
// === Оружие === (40)
|
||
m('blaster-blaster-a', 'Бластер a', 'Оружие', 'blaster-kit', 'blaster-a', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-b', 'Бластер b', 'Оружие', 'blaster-kit', 'blaster-b', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-c', 'Бластер c', 'Оружие', 'blaster-kit', 'blaster-c', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-d', 'Бластер d', 'Оружие', 'blaster-kit', 'blaster-d', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-e', 'Бластер e', 'Оружие', 'blaster-kit', 'blaster-e', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-f', 'Бластер f', 'Оружие', 'blaster-kit', 'blaster-f', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-g', 'Бластер g', 'Оружие', 'blaster-kit', 'blaster-g', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-h', 'Бластер h', 'Оружие', 'blaster-kit', 'blaster-h', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-i', 'Бластер i', 'Оружие', 'blaster-kit', 'blaster-i', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-j', 'Бластер j', 'Оружие', 'blaster-kit', 'blaster-j', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-k', 'Бластер k', 'Оружие', 'blaster-kit', 'blaster-k', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-l', 'Бластер l', 'Оружие', 'blaster-kit', 'blaster-l', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-m', 'Бластер m', 'Оружие', 'blaster-kit', 'blaster-m', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-n', 'Бластер n', 'Оружие', 'blaster-kit', 'blaster-n', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-o', 'Бластер o', 'Оружие', 'blaster-kit', 'blaster-o', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-p', 'Бластер p', 'Оружие', 'blaster-kit', 'blaster-p', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-q', 'Бластер q', 'Оружие', 'blaster-kit', 'blaster-q', { targetHeight: 1.2 }),
|
||
m('blaster-blaster-r', 'Бластер r', 'Оружие', 'blaster-kit', 'blaster-r', { targetHeight: 1.2 }),
|
||
m('blaster-bullet-foam-thick', 'Толстая пенопл. пуля', 'Оружие', 'blaster-kit', 'bullet-foam-thick', { targetHeight: 0.4 }),
|
||
m('blaster-bullet-foam-tip-thick', 'Толстая пенопл. пуля с наконеч.', 'Оружие', 'blaster-kit', 'bullet-foam-tip-thick', { targetHeight: 0.4 }),
|
||
m('blaster-bullet-foam-tip', 'Пенопл. пуля с наконеч.', 'Оружие', 'blaster-kit', 'bullet-foam-tip', { targetHeight: 0.4 }),
|
||
m('blaster-bullet-foam', 'Пенопл. пуля', 'Оружие', 'blaster-kit', 'bullet-foam', { targetHeight: 0.4 }),
|
||
m('blaster-clip-large', 'Скрепка большой', 'Оружие', 'blaster-kit', 'clip-large', { targetHeight: 1 }),
|
||
m('blaster-clip-small', 'Скрепка маленький', 'Оружие', 'blaster-kit', 'clip-small', { targetHeight: 1 }),
|
||
m('blaster-crate-medium', 'Ящик средний', 'Оружие', 'blaster-kit', 'crate-medium', { targetHeight: 1 }),
|
||
m('blaster-crate-small', 'Ящик маленький', 'Оружие', 'blaster-kit', 'crate-small', { targetHeight: 1 }),
|
||
m('blaster-crate-wide', 'Ящик широкий', 'Оружие', 'blaster-kit', 'crate-wide', { targetHeight: 1 }),
|
||
m('blaster-grenade-a', 'Граната a', 'Оружие', 'blaster-kit', 'grenade-a', { targetHeight: 0.6 }),
|
||
m('blaster-grenade-b', 'Граната b', 'Оружие', 'blaster-kit', 'grenade-b', { targetHeight: 0.6 }),
|
||
m('blaster-scope-large-a', 'Scope большой a', 'Оружие', 'blaster-kit', 'scope-large-a', { targetHeight: 1 }),
|
||
m('blaster-scope-large-b', 'Scope большой b', 'Оружие', 'blaster-kit', 'scope-large-b', { targetHeight: 1 }),
|
||
m('blaster-scope-small', 'Scope маленький', 'Оружие', 'blaster-kit', 'scope-small', { targetHeight: 1 }),
|
||
m('blaster-silencer-larger', 'Silencer larger', 'Оружие', 'blaster-kit', 'silencer-larger', { targetHeight: 1 }),
|
||
m('blaster-silencer-small', 'Silencer маленький', 'Оружие', 'blaster-kit', 'silencer-small', { targetHeight: 1 }),
|
||
m('blaster-smoke', 'Дым', 'Оружие', 'blaster-kit', 'smoke', { targetHeight: 1 }),
|
||
m('blaster-target-detail', 'Мишень Деталь', 'Оружие', 'blaster-kit', 'target-detail', { targetHeight: 1 }),
|
||
m('blaster-target-fragment-large', 'Мишень фрагмент большой', 'Оружие', 'blaster-kit', 'target-fragment-large', { targetHeight: 1 }),
|
||
m('blaster-target-fragment-small', 'Мишень фрагмент маленький', 'Оружие', 'blaster-kit', 'target-fragment-small', { targetHeight: 1 }),
|
||
m('blaster-target-large', 'Мишень большой', 'Оружие', 'blaster-kit', 'target-large', { targetHeight: 1 }),
|
||
m('blaster-target-small', 'Мишень маленький', 'Оружие', 'blaster-kit', 'target-small', { targetHeight: 1 }),
|
||
|
||
// === Праздники === (50)
|
||
m('holiday-bench-short', 'Скамейка короткий', 'Праздники', 'holiday-kit', 'bench-short', { targetHeight: 1.5 }),
|
||
m('holiday-bench', 'Скамейка', 'Праздники', 'holiday-kit', 'bench', { targetHeight: 1.5 }),
|
||
m('holiday-cabin-corner-bottom', 'Хижина угол низ', 'Праздники', 'holiday-kit', 'cabin-corner-bottom', { targetHeight: 5 }),
|
||
m('holiday-cabin-corner-logs', 'Хижина угол брёвна', 'Праздники', 'holiday-kit', 'cabin-corner-logs', { targetHeight: 5 }),
|
||
m('holiday-cabin-corner', 'Хижина угол', 'Праздники', 'holiday-kit', 'cabin-corner', { targetHeight: 5 }),
|
||
m('holiday-cabin-door-rotate', 'Хижина Дверь', 'Праздники', 'holiday-kit', 'cabin-door-rotate', { targetHeight: 5 }),
|
||
m('holiday-cabin-doorway-center', 'Хижина проём центр', 'Праздники', 'holiday-kit', 'cabin-doorway-center', { targetHeight: 5 }),
|
||
m('holiday-cabin-doorway-left', 'Хижина проём лев.', 'Праздники', 'holiday-kit', 'cabin-doorway-left', { targetHeight: 5 }),
|
||
m('holiday-cabin-doorway-right', 'Хижина проём прав.', 'Праздники', 'holiday-kit', 'cabin-doorway-right', { targetHeight: 5 }),
|
||
m('holiday-cabin-doorway', 'Хижина проём', 'Праздники', 'holiday-kit', 'cabin-doorway', { targetHeight: 5 }),
|
||
m('holiday-cabin-fence', 'Хижина Забор', 'Праздники', 'holiday-kit', 'cabin-fence', { targetHeight: 5 }),
|
||
m('holiday-cabin-overhang-door-rotate', 'Хижина с навесом Дверь', 'Праздники', 'holiday-kit', 'cabin-overhang-door-rotate', { targetHeight: 5 }),
|
||
m('holiday-cabin-overhang-doorway', 'Хижина с навесом проём', 'Праздники', 'holiday-kit', 'cabin-overhang-doorway', { targetHeight: 5 }),
|
||
m('holiday-cabin-roof-chimney', 'Хижина Крыша Дымоход', 'Праздники', 'holiday-kit', 'cabin-roof-chimney', { targetHeight: 5 }),
|
||
m('holiday-cabin-roof-corner', 'Хижина Крыша угол', 'Праздники', 'holiday-kit', 'cabin-roof-corner', { targetHeight: 5 }),
|
||
m('holiday-cabin-roof-dormer', 'Хижина Крыша мансарда', 'Праздники', 'holiday-kit', 'cabin-roof-dormer', { targetHeight: 5 }),
|
||
m('holiday-cabin-roof-point', 'Хижина Крыша остриё', 'Праздники', 'holiday-kit', 'cabin-roof-point', { targetHeight: 5 }),
|
||
m('holiday-cabin-roof-snow-chimney', 'Хижина Крыша Снег Дымоход', 'Праздники', 'holiday-kit', 'cabin-roof-snow-chimney', { targetHeight: 5 }),
|
||
m('holiday-cabin-roof-snow-corner', 'Хижина Крыша Снег угол', 'Праздники', 'holiday-kit', 'cabin-roof-snow-corner', { targetHeight: 5 }),
|
||
m('holiday-cabin-roof-snow-dormer', 'Хижина Крыша Снег мансарда', 'Праздники', 'holiday-kit', 'cabin-roof-snow-dormer', { targetHeight: 5 }),
|
||
m('holiday-cabin-roof-snow-point', 'Хижина Крыша Снег остриё', 'Праздники', 'holiday-kit', 'cabin-roof-snow-point', { targetHeight: 5 }),
|
||
m('holiday-cabin-roof-snow', 'Хижина Крыша Снег', 'Праздники', 'holiday-kit', 'cabin-roof-snow', { targetHeight: 5 }),
|
||
m('holiday-cabin-roof-top', 'Хижина Крыша верх', 'Праздники', 'holiday-kit', 'cabin-roof-top', { targetHeight: 5 }),
|
||
m('holiday-cabin-roof', 'Хижина Крыша', 'Праздники', 'holiday-kit', 'cabin-roof', { targetHeight: 5 }),
|
||
m('holiday-cabin-wall-low', 'Хижина Стена низкий', 'Праздники', 'holiday-kit', 'cabin-wall-low', { targetHeight: 5 }),
|
||
m('holiday-cabin-wall-roof-center', 'Хижина Стена Крыша центр', 'Праздники', 'holiday-kit', 'cabin-wall-roof-center', { targetHeight: 5 }),
|
||
m('holiday-cabin-wall-roof', 'Хижина Стена Крыша', 'Праздники', 'holiday-kit', 'cabin-wall-roof', { targetHeight: 5 }),
|
||
m('holiday-cabin-wall-wreath', 'Хижина Стена венок', 'Праздники', 'holiday-kit', 'cabin-wall-wreath', { targetHeight: 5 }),
|
||
m('holiday-cabin-wall', 'Хижина Стена', 'Праздники', 'holiday-kit', 'cabin-wall', { targetHeight: 5 }),
|
||
m('holiday-cabin-window-a', 'Хижина Окно a', 'Праздники', 'holiday-kit', 'cabin-window-a', { targetHeight: 5 }),
|
||
m('holiday-cabin-window-b', 'Хижина Окно b', 'Праздники', 'holiday-kit', 'cabin-window-b', { targetHeight: 5 }),
|
||
m('holiday-cabin-window-c', 'Хижина Окно c', 'Праздники', 'holiday-kit', 'cabin-window-c', { targetHeight: 5 }),
|
||
m('holiday-cabin-window-large', 'Хижина Окно большой', 'Праздники', 'holiday-kit', 'cabin-window-large', { targetHeight: 5 }),
|
||
m('holiday-candy-cane-green', 'Конфета cane зелёный', 'Праздники', 'holiday-kit', 'candy-cane-green', { targetHeight: 1.5 }),
|
||
m('holiday-candy-cane-red', 'Конфета cane красный', 'Праздники', 'holiday-kit', 'candy-cane-red', { targetHeight: 1.5 }),
|
||
m('holiday-festivus-pole', 'Festivus pole', 'Праздники', 'holiday-kit', 'festivus-pole', { targetHeight: 1.5 }),
|
||
m('holiday-floor-stone', 'Пол Камень', 'Праздники', 'holiday-kit', 'floor-stone', { targetHeight: 1.5 }),
|
||
m('holiday-floor-wood-snow', 'Пол дерево Снег', 'Праздники', 'holiday-kit', 'floor-wood-snow', { targetHeight: 0.8 }),
|
||
m('holiday-floor-wood', 'Пол дерево', 'Праздники', 'holiday-kit', 'floor-wood', { targetHeight: 1.5 }),
|
||
m('holiday-gingerbread-man', 'Имбирный пряник man', 'Праздники', 'holiday-kit', 'gingerbread-man', { targetHeight: 1.5 }),
|
||
m('holiday-gingerbread-woman', 'Имбирный пряник woman', 'Праздники', 'holiday-kit', 'gingerbread-woman', { targetHeight: 1.5 }),
|
||
m('holiday-hanukkah-dreidel', 'Ханука дрейдл', 'Праздники', 'holiday-kit', 'hanukkah-dreidel', { targetHeight: 1.5 }),
|
||
m('holiday-hanukkah-menorah-candles', 'Ханука менора candles', 'Праздники', 'holiday-kit', 'hanukkah-menorah-candles', { targetHeight: 0.6 }),
|
||
m('holiday-hanukkah-menorah', 'Ханука менора', 'Праздники', 'holiday-kit', 'hanukkah-menorah', { targetHeight: 1.5 }),
|
||
m('holiday-kwanzaa-kikombe', 'Kwanzaa kikombe', 'Праздники', 'holiday-kit', 'kwanzaa-kikombe', { targetHeight: 1.5 }),
|
||
m('holiday-kwanzaa-kinara-alternative', 'Kwanzaa kinara alternative', 'Праздники', 'holiday-kit', 'kwanzaa-kinara-alternative', { targetHeight: 1.5 }),
|
||
m('holiday-kwanzaa-kinara', 'Kwanzaa kinara', 'Праздники', 'holiday-kit', 'kwanzaa-kinara', { targetHeight: 1.5 }),
|
||
m('holiday-lantern-hanging', 'Фонарь подвесной', 'Праздники', 'holiday-kit', 'lantern-hanging', { targetHeight: 1.5 }),
|
||
m('holiday-lantern', 'Фонарь', 'Праздники', 'holiday-kit', 'lantern', { targetHeight: 1.5 }),
|
||
m('holiday-lights-colored', 'Свет цветной', 'Праздники', 'holiday-kit', 'lights-colored', { targetHeight: 1.5 }),
|
||
|
||
// === Поезд === (модели holiday-kit: локомотив, вагоны, рельсы.
|
||
// GLB-файлы уже в kubikon-assets/models/holiday-kit/ — регистрируем
|
||
// в каталоге, чтобы можно было ставить на сцену и в раннер-играх).
|
||
m('train-locomotive', 'Поезд: локомотив', 'Поезд', 'holiday-kit', 'train-locomotive', { targetHeight: 3 }),
|
||
m('train-tender', 'Поезд: тендер', 'Поезд', 'holiday-kit', 'train-tender', { targetHeight: 3 }),
|
||
m('train-wagon', 'Поезд: вагон', 'Поезд', 'holiday-kit', 'train-wagon', { targetHeight: 3 }),
|
||
m('train-wagon-short', 'Поезд: вагон короткий', 'Поезд', 'holiday-kit', 'train-wagon-short', { targetHeight: 3 }),
|
||
m('train-wagon-flat', 'Поезд: платформа', 'Поезд', 'holiday-kit', 'train-wagon-flat', { targetHeight: 2 }),
|
||
m('train-wagon-flat-short', 'Поезд: платформа короткая', 'Поезд', 'holiday-kit', 'train-wagon-flat-short', { targetHeight: 2 }),
|
||
m('train-wagon-logs', 'Поезд: вагон с брёвнами', 'Поезд', 'holiday-kit', 'train-wagon-logs', { targetHeight: 3 }),
|
||
m('trainset-rail-straight', 'Рельсы прямые', 'Поезд', 'holiday-kit', 'trainset-rail-straight', { targetHeight: 0.4 }),
|
||
m('trainset-rail-detailed-straight', 'Рельсы прямые детальные', 'Поезд', 'holiday-kit', 'trainset-rail-detailed-straight', { targetHeight: 0.4 }),
|
||
m('trainset-rail-bend', 'Рельсы поворот', 'Поезд', 'holiday-kit', 'trainset-rail-bend', { targetHeight: 0.4 }),
|
||
m('trainset-rail-corner', 'Рельсы угол', 'Поезд', 'holiday-kit', 'trainset-rail-corner', { targetHeight: 0.4 }),
|
||
|
||
// === Выживание === (50)
|
||
m('survival-barrel-open', 'Бочка открытый', 'Выживание', 'survival-kit', 'barrel-open', { targetHeight: 1 }),
|
||
m('survival-barrel', 'Бочка', 'Выживание', 'survival-kit', 'barrel', { targetHeight: 1 }),
|
||
m('survival-bedroll-frame', 'Спальник рама', 'Выживание', 'survival-kit', 'bedroll-frame', { targetHeight: 1 }),
|
||
m('survival-bedroll-packed', 'Свёрнутый коврик', 'Выживание', 'survival-kit', 'bedroll-packed', { targetHeight: 1 }),
|
||
m('survival-bedroll', 'Спальник', 'Выживание', 'survival-kit', 'bedroll', { targetHeight: 1 }),
|
||
m('survival-bottle-large', 'Бутылка большой', 'Выживание', 'survival-kit', 'bottle-large', { targetHeight: 1 }),
|
||
m('survival-bottle', 'Бутылка', 'Выживание', 'survival-kit', 'bottle', { targetHeight: 1 }),
|
||
m('survival-box-large-open', 'Коробка большой открытый', 'Выживание', 'survival-kit', 'box-large-open', { targetHeight: 0.8 }),
|
||
m('survival-box-large', 'Коробка большой', 'Выживание', 'survival-kit', 'box-large', { targetHeight: 0.8 }),
|
||
m('survival-box-open', 'Коробка открытый', 'Выживание', 'survival-kit', 'box-open', { targetHeight: 0.8 }),
|
||
m('survival-box', 'Коробка', 'Выживание', 'survival-kit', 'box', { targetHeight: 0.8 }),
|
||
m('survival-bucket', 'Ведро', 'Выживание', 'survival-kit', 'bucket', { targetHeight: 0.8 }),
|
||
m('survival-campfire-fishing-stand', 'Костёр рыболов. Подставка', 'Выживание', 'survival-kit', 'campfire-fishing-stand', { targetHeight: 1 }),
|
||
m('survival-campfire-pit', 'Костёр яма', 'Выживание', 'survival-kit', 'campfire-pit', { targetHeight: 1 }),
|
||
m('survival-campfire-stand', 'Костёр Подставка', 'Выживание', 'survival-kit', 'campfire-stand', { targetHeight: 1 }),
|
||
m('survival-chest', 'Сундук', 'Выживание', 'survival-kit', 'chest', { targetHeight: 0.8 }),
|
||
m('survival-fence-doorway', 'Забор проём', 'Выживание', 'survival-kit', 'fence-doorway', { targetHeight: 1 }),
|
||
m('survival-fence-fortified', 'Забор укреплённый', 'Выживание', 'survival-kit', 'fence-fortified', { targetHeight: 1 }),
|
||
m('survival-fence', 'Забор', 'Выживание', 'survival-kit', 'fence', { targetHeight: 1 }),
|
||
m('survival-fish-large', 'Рыба большой', 'Выживание', 'survival-kit', 'fish-large', { targetHeight: 1 }),
|
||
m('survival-fish', 'Рыба', 'Выживание', 'survival-kit', 'fish', { targetHeight: 1 }),
|
||
m('survival-floor-hole', 'Дыра в полу', 'Выживание', 'survival-kit', 'floor-hole', { targetHeight: 1 }),
|
||
m('survival-floor-old', 'Пол старый', 'Выживание', 'survival-kit', 'floor-old', { targetHeight: 1 }),
|
||
m('survival-floor', 'Пол', 'Выживание', 'survival-kit', 'floor', { targetHeight: 1 }),
|
||
m('survival-grass-large', 'Высокая трава', 'Выживание', 'survival-kit', 'grass-large', { targetHeight: 1 }),
|
||
m('survival-grass', 'Трава', 'Выживание', 'survival-kit', 'grass', { targetHeight: 1 }),
|
||
m('survival-metal-panel-narrow', 'Metal panel узкий', 'Выживание', 'survival-kit', 'metal-panel-narrow', { targetHeight: 1 }),
|
||
m('survival-metal-panel-screws-half', 'Metal panel screws половина', 'Выживание', 'survival-kit', 'metal-panel-screws-half', { targetHeight: 1 }),
|
||
m('survival-metal-panel-screws-narrow', 'Metal panel screws узкий', 'Выживание', 'survival-kit', 'metal-panel-screws-narrow', { targetHeight: 1 }),
|
||
m('survival-metal-panel-screws', 'Metal panel screws', 'Выживание', 'survival-kit', 'metal-panel-screws', { targetHeight: 1 }),
|
||
m('survival-metal-panel', 'Metal panel', 'Выживание', 'survival-kit', 'metal-panel', { targetHeight: 1 }),
|
||
m('survival-patch-grass-large', 'Patch Высокая трава', 'Выживание', 'survival-kit', 'patch-grass-large', { targetHeight: 1 }),
|
||
m('survival-patch-grass', 'Patch Трава', 'Выживание', 'survival-kit', 'patch-grass', { targetHeight: 1 }),
|
||
m('survival-resource-planks', 'Resource planks', 'Выживание', 'survival-kit', 'resource-planks', { targetHeight: 1 }),
|
||
m('survival-resource-stone-large', 'Resource Камень большой', 'Выживание', 'survival-kit', 'resource-stone-large', { targetHeight: 1 }),
|
||
m('survival-resource-stone', 'Resource Камень', 'Выживание', 'survival-kit', 'resource-stone', { targetHeight: 1 }),
|
||
m('survival-resource-wood', 'Resource дерево', 'Выживание', 'survival-kit', 'resource-wood', { targetHeight: 1 }),
|
||
m('survival-rock-a', 'Камень a', 'Выживание', 'survival-kit', 'rock-a', { targetHeight: 1 }),
|
||
m('survival-rock-b', 'Камень b', 'Выживание', 'survival-kit', 'rock-b', { targetHeight: 1 }),
|
||
m('survival-rock-c', 'Камень c', 'Выживание', 'survival-kit', 'rock-c', { targetHeight: 1 }),
|
||
m('survival-rock-flat-grass', 'Камень плоский Трава', 'Выживание', 'survival-kit', 'rock-flat-grass', { targetHeight: 1 }),
|
||
m('survival-rock-flat', 'Камень плоский', 'Выживание', 'survival-kit', 'rock-flat', { targetHeight: 1 }),
|
||
m('survival-rock-sand-a', 'Камень Песок a', 'Выживание', 'survival-kit', 'rock-sand-a', { targetHeight: 1 }),
|
||
m('survival-rock-sand-b', 'Камень Песок b', 'Выживание', 'survival-kit', 'rock-sand-b', { targetHeight: 1 }),
|
||
m('survival-rock-sand-c', 'Камень Песок c', 'Выживание', 'survival-kit', 'rock-sand-c', { targetHeight: 1 }),
|
||
m('survival-signpost-single', 'Signpost одинарный', 'Выживание', 'survival-kit', 'signpost-single', { targetHeight: 1 }),
|
||
m('survival-signpost', 'Signpost', 'Выживание', 'survival-kit', 'signpost', { targetHeight: 1 }),
|
||
m('survival-structure-canvas', 'Structure canvas', 'Выживание', 'survival-kit', 'structure-canvas', { targetHeight: 1 }),
|
||
m('survival-structure-floor', 'Structure пол', 'Выживание', 'survival-kit', 'structure-floor', { targetHeight: 1 }),
|
||
m('survival-structure-metal-doorway', 'Structure metal проём', 'Выживание', 'survival-kit', 'structure-metal-doorway', { targetHeight: 1 }),
|
||
|
||
// === Арена === (50)
|
||
m('mini-arena-banner', 'Знамя', 'Арена', 'mini-arena', 'banner', { targetHeight: 1.5 }),
|
||
m('mini-arena-block', 'Блок', 'Арена', 'mini-arena', 'block', { targetHeight: 1.2 }),
|
||
m('mini-arena-border-corner', 'Бордюр угол', 'Арена', 'mini-arena', 'border-corner', { targetHeight: 1.2 }),
|
||
m('mini-arena-border-straight', 'Бордюр Прямой участок', 'Арена', 'mini-arena', 'border-straight', { targetHeight: 1.2 }),
|
||
m('mini-arena-bricks', 'Кирпичи', 'Арена', 'mini-arena', 'bricks', { targetHeight: 1.2 }),
|
||
m('mini-arena-character-soldier', 'Персонаж Солдат', 'Арена', 'mini-arena', 'character-soldier', { targetHeight: 1.2 }),
|
||
m('mini-arena-column-damaged', 'Колонна повреждённый', 'Арена', 'mini-arena', 'column-damaged', { targetHeight: 2 }),
|
||
m('mini-arena-column', 'Колонна', 'Арена', 'mini-arena', 'column', { targetHeight: 2 }),
|
||
m('mini-arena-floor-detail', 'Пол Деталь', 'Арена', 'mini-arena', 'floor-detail', { targetHeight: 0.4 }),
|
||
m('mini-arena-floor', 'Пол', 'Арена', 'mini-arena', 'floor', { targetHeight: 0.4 }),
|
||
m('mini-arena-stairs-corner-inner', 'Лестница угол внутр.', 'Арена', 'mini-arena', 'stairs-corner-inner', { targetHeight: 1 }),
|
||
m('mini-arena-stairs-corner', 'Лестница угол', 'Арена', 'mini-arena', 'stairs-corner', { targetHeight: 1 }),
|
||
m('mini-arena-stairs', 'Лестница', 'Арена', 'mini-arena', 'stairs', { targetHeight: 1 }),
|
||
m('mini-arena-statue', 'Статуя', 'Арена', 'mini-arena', 'statue', { targetHeight: 3 }),
|
||
m('mini-arena-tree', 'Дерево', 'Арена', 'mini-arena', 'tree', { targetHeight: 1.2 }),
|
||
m('mini-arena-trophy', 'Кубок', 'Арена', 'mini-arena', 'trophy', { targetHeight: 1 }),
|
||
m('mini-arena-wall-corner', 'Стена угол', 'Арена', 'mini-arena', 'wall-corner', { targetHeight: 2 }),
|
||
m('mini-arena-wall-gate', 'Стена Ворота', 'Арена', 'mini-arena', 'wall-gate', { targetHeight: 2 }),
|
||
m('mini-arena-wall', 'Стена', 'Арена', 'mini-arena', 'wall', { targetHeight: 2 }),
|
||
m('mini-arena-weapon-rack', 'Оружие стойка', 'Арена', 'mini-arena', 'weapon-rack', { targetHeight: 1.5 }),
|
||
m('mini-arena-weapon-spear', 'Оружие Копьё', 'Арена', 'mini-arena', 'weapon-spear', { targetHeight: 1.5 }),
|
||
m('mini-arena-weapon-sword', 'Оружие Меч', 'Арена', 'mini-arena', 'weapon-sword', { targetHeight: 1.5 }),
|
||
m('conveyor-arrow-basic-rounded', 'Стрела basic rounded', 'Арена', 'conveyor-kit', 'arrow-basic-rounded', { targetHeight: 0.6 }),
|
||
m('conveyor-arrow-basic', 'Стрела basic', 'Арена', 'conveyor-kit', 'arrow-basic', { targetHeight: 0.6 }),
|
||
m('conveyor-arrow-rounded', 'Стрела rounded', 'Арена', 'conveyor-kit', 'arrow-rounded', { targetHeight: 0.6 }),
|
||
m('conveyor-arrow', 'Стрела', 'Арена', 'conveyor-kit', 'arrow', { targetHeight: 0.6 }),
|
||
m('conveyor-box-large', 'Коробка большой', 'Арена', 'conveyor-kit', 'box-large', { targetHeight: 1 }),
|
||
m('conveyor-box-long', 'Коробка длинный', 'Арена', 'conveyor-kit', 'box-long', { targetHeight: 1 }),
|
||
m('conveyor-box-small', 'Коробка маленький', 'Арена', 'conveyor-kit', 'box-small', { targetHeight: 1 }),
|
||
m('conveyor-box-wide', 'Коробка широкий', 'Арена', 'conveyor-kit', 'box-wide', { targetHeight: 1 }),
|
||
m('conveyor-conveyor-bars-fence', 'Конвейер bars Забор', 'Арена', 'conveyor-kit', 'conveyor-bars-fence', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-bars-high', 'Конвейер bars высокий', 'Арена', 'conveyor-kit', 'conveyor-bars-high', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-bars-sides', 'Конвейер bars sides', 'Арена', 'conveyor-kit', 'conveyor-bars-sides', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-bars-stripe-fence', 'Конвейер bars stripe Забор', 'Арена', 'conveyor-kit', 'conveyor-bars-stripe-fence', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-bars-stripe-high', 'Конвейер bars stripe высокий', 'Арена', 'conveyor-kit', 'conveyor-bars-stripe-high', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-bars-stripe-side', 'Конвейер bars stripe бок', 'Арена', 'conveyor-kit', 'conveyor-bars-stripe-side', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-bars-stripe', 'Конвейер bars stripe', 'Арена', 'conveyor-kit', 'conveyor-bars-stripe', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-bars', 'Конвейер bars', 'Арена', 'conveyor-kit', 'conveyor-bars', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-cross', 'Конвейер крест', 'Арена', 'conveyor-kit', 'conveyor-cross', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-junction-t', 'Конвейер Развилка t', 'Арена', 'conveyor-kit', 'conveyor-junction-t', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-long-part-end', 'Конвейер длинный part конец', 'Арена', 'conveyor-kit', 'conveyor-long-part-end', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-long-part-middle', 'Конвейер длинный part middle', 'Арена', 'conveyor-kit', 'conveyor-long-part-middle', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-long-sides-part-end', 'Конвейер длинный sides part конец', 'Арена', 'conveyor-kit', 'conveyor-long-sides-part-end', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-long-sides-part-middle', 'Конвейер длинный sides part middle', 'Арена', 'conveyor-kit', 'conveyor-long-sides-part-middle', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-long-sides', 'Конвейер длинный sides', 'Арена', 'conveyor-kit', 'conveyor-long-sides', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-long-stripe-sides-part-end', 'Конвейер длинный stripe sides part конец', 'Арена', 'conveyor-kit', 'conveyor-long-stripe-sides-part-end', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-long-stripe-sides-part-middle', 'Конвейер длинный stripe sides part middle', 'Арена', 'conveyor-kit', 'conveyor-long-stripe-sides-part-middle', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-long-stripe-sides', 'Конвейер длинный stripe sides', 'Арена', 'conveyor-kit', 'conveyor-long-stripe-sides', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-long-stripe', 'Конвейер длинный stripe', 'Арена', 'conveyor-kit', 'conveyor-long-stripe', { targetHeight: 0.4 }),
|
||
m('conveyor-conveyor-long', 'Конвейер длинный', 'Арена', 'conveyor-kit', 'conveyor-long', { targetHeight: 0.4 }),
|
||
|
||
// === Персонажи === (33)
|
||
m('mini-characters-character-female-a', 'Аня', 'Персонажи', 'mini-characters', 'character-female-a', { targetHeight: 1.7 }),
|
||
m('mini-characters-character-female-b', 'Маша', 'Персонажи', 'mini-characters', 'character-female-b', { targetHeight: 1.7 }),
|
||
m('mini-characters-character-female-c', 'Лена', 'Персонажи', 'mini-characters', 'character-female-c', { targetHeight: 1.7 }),
|
||
m('mini-characters-character-female-d', 'Катя', 'Персонажи', 'mini-characters', 'character-female-d', { targetHeight: 1.7 }),
|
||
m('mini-characters-character-female-e', 'Оля', 'Персонажи', 'mini-characters', 'character-female-e', { targetHeight: 1.7 }),
|
||
m('mini-characters-character-female-f', 'Настя', 'Персонажи', 'mini-characters', 'character-female-f', { targetHeight: 1.7 }),
|
||
m('mini-characters-character-male-a', 'Костя', 'Персонажи', 'mini-characters', 'character-male-a', { targetHeight: 1.7 }),
|
||
m('mini-characters-character-male-b', 'Максим', 'Персонажи', 'mini-characters', 'character-male-b', { targetHeight: 1.7 }),
|
||
m('mini-characters-character-male-c', 'Дима', 'Персонажи', 'mini-characters', 'character-male-c', { targetHeight: 1.7 }),
|
||
m('mini-characters-character-male-d', 'Саша', 'Персонажи', 'mini-characters', 'character-male-d', { targetHeight: 1.7 }),
|
||
m('mini-characters-character-male-e', 'Артём', 'Персонажи', 'mini-characters', 'character-male-e', { targetHeight: 1.7 }),
|
||
m('mini-characters-character-male-f', 'Лёша', 'Персонажи', 'mini-characters', 'character-male-f', { targetHeight: 1.7 }),
|
||
|
||
// === ДЕТСКАЯ ПЛОЩАДКА (Poly Pizza, CC-BY 3.0) ===
|
||
// Используются в L2 «Игры в кальмара» (Дальгона). Атрибуция авторов
|
||
// в /public/playground-kit/CREDITS.txt.
|
||
mu('pg-slide-google', 'Горка (Poly)', 'Площадка',
|
||
'/playground-kit/slide_google.glb', { targetHeight: 4 }),
|
||
mu('pg-swing-google', 'Качели (Google)', 'Площадка',
|
||
'/playground-kit/swing_set_google.glb', { targetHeight: 3.5 }),
|
||
mu('pg-seesaw', 'Качели-балансир', 'Площадка',
|
||
'/playground-kit/seesaw_2.glb', { targetHeight: 1.5 }),
|
||
mu('pg-carousel', 'Карусель', 'Площадка',
|
||
'/playground-kit/merry_go_round.glb', { targetHeight: 2.5 }),
|
||
mu('pg-jungle-gym', 'Лазалка-комплекс', 'Площадка',
|
||
'/playground-kit/jungle_gym.glb', { targetHeight: 4 }),
|
||
// Kenney CC0 — старинная скамейка с кладбища (выбрана МИНом)
|
||
m('pg-bench', 'Скамья парковая', 'Площадка', 'graveyard-kit', 'bench',
|
||
{ targetHeight: 1.2 }),
|
||
// Двойной фонарь с кладбища
|
||
m('pg-lamp-double', 'Фонарь двойной', 'Площадка', 'graveyard-kit', 'lightpost-double',
|
||
{ targetHeight: 4 }),
|
||
// Детальное дерево из nature-kit
|
||
m('pg-tree-detailed', 'Дерево детальное', 'Площадка', 'nature-kit', 'tree_detailed',
|
||
{ targetHeight: 4 }),
|
||
// Куст детальный
|
||
m('pg-bush-detailed', 'Куст', 'Площадка', 'nature-kit', 'plant_bushDetailed',
|
||
{ targetHeight: 1.2 }),
|
||
// Забор из досок
|
||
m('pg-fence-planks', 'Забор', 'Площадка', 'nature-kit', 'fence_planks',
|
||
{ targetHeight: 1.5 }),
|
||
|
||
// TOTAL: 644
|
||
|
||
];
|
||
|
||
// Авто-проставляем gameplay для всех моделей в категории «Оружие» —
|
||
// бластеры (ranged), мечи/копья (melee), щиты пропускаем.
|
||
for (const m of MODEL_TYPES) {
|
||
if (m.category !== 'Оружие') continue;
|
||
if (m.gameplay) continue; // уже задан вручную
|
||
const id = m.id;
|
||
if (id.startsWith('shield')) continue;
|
||
if (id.startsWith('blaster-blaster-')) {
|
||
m.gameplay = {
|
||
type: 'weapon-ranged',
|
||
isWeapon: true,
|
||
weaponKind: 'ranged',
|
||
description: 'Дальнобойное оружие. Нажми «Добавить в инвентарь» чтобы выдать игроку.',
|
||
defaultParams: {
|
||
damage: 25, fireRate: 0.18, range: 80,
|
||
magazine: 30, reserve: 120, reloadTime: 1.6, auto: true,
|
||
},
|
||
// Базовые настройки. Подкручиваются через window.weapon3rd(...).
|
||
viewModel: {
|
||
scale3rd: 1.2, scale1st: 0.7,
|
||
position3rd: { x: 0, y: 0, z: 0 },
|
||
rotation3rd: { x: 0, y: 0, z: 0 },
|
||
},
|
||
};
|
||
} else if (id === 'weapon-sword') {
|
||
m.gameplay = {
|
||
type: 'weapon-melee', isWeapon: true, weaponKind: 'melee',
|
||
description: 'Меч. ЛКМ — широкий взмах.',
|
||
defaultParams: { damage: 40, fireRate: 0.55, range: 2.4, meleeArc: 1.2, auto: false },
|
||
viewModel: {
|
||
scale3rd: 1.4, scale1st: 1.0,
|
||
position3rd: { x: 0, y: 0, z: 0 },
|
||
rotation3rd: { x: 0, y: 0, z: 0 },
|
||
},
|
||
};
|
||
} else if (id === 'weapon-spear') {
|
||
m.gameplay = {
|
||
type: 'weapon-melee', isWeapon: true, weaponKind: 'melee',
|
||
description: 'Копьё. ЛКМ — выпад вперёд.',
|
||
defaultParams: { damage: 55, fireRate: 0.85, range: 3.2, meleeArc: 0.6, auto: false },
|
||
viewModel: {
|
||
scale3rd: 1.4, scale1st: 1.0,
|
||
position3rd: { x: 0, y: 0, z: 0 },
|
||
rotation3rd: { x: 0, y: 0, z: 0 },
|
||
},
|
||
};
|
||
}
|
||
}
|
||
|
||
export const MODEL_CATEGORIES = Array.from(new Set(MODEL_TYPES.map(m => m.category)));
|
||
|
||
export function getModelType(id) {
|
||
return MODEL_TYPES.find(m => m.id === id) || null;
|
||
}
|