UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

140 lines (139 loc) 5.89 kB
"use strict"; import { setObjectBoolean, getObjectBoolean, getObjectString, setObjectString, setObjectNumber, getObjectNumber } from "../geometry/AttributeUtils"; import { WFC_ALL_HORIZONTAL_SIDES } from "./WFCCommon"; import { TypeAssert } from "../../engine/poly/Assert"; export var WFCQuadAttribute = /* @__PURE__ */ ((WFCQuadAttribute2) => { WFCQuadAttribute2["QUAD_ID"] = "quadId"; WFCQuadAttribute2["FLOOR_INDEX"] = "floorIndex"; WFCQuadAttribute2["TILE_ID"] = "tileId"; WFCQuadAttribute2["SOLVE_ALLOWED"] = "solveAllowed"; WFCQuadAttribute2["SOLVED_TILE_CONFIGS"] = "solvedTileConfigs"; return WFCQuadAttribute2; })(WFCQuadAttribute || {}); export var WFCTileAttribute = /* @__PURE__ */ ((WFCTileAttribute2) => { WFCTileAttribute2["TILE_ID"] = "WFCTileAttribute_tileId"; WFCTileAttribute2["ROTATION_Y_ALLOWED"] = "WFCTileAttribute_rotationYAllowed"; WFCTileAttribute2["WEIGHT"] = "WFCTileAttribute_weight"; WFCTileAttribute2["IS_ERROR_TILE"] = "WFCTileAttribute_isErrorTile"; WFCTileAttribute2["IS_UNRESOLVED_TILE"] = "WFCTileAttribute_isUnresolvedTile"; WFCTileAttribute2["SIDE_NAME_S"] = "WFCTileAttribute_sideNameS"; WFCTileAttribute2["SIDE_NAME_N"] = "WFCTileAttribute_sideNameN"; WFCTileAttribute2["SIDE_NAME_W"] = "WFCTileAttribute_sideNameW"; WFCTileAttribute2["SIDE_NAME_E"] = "WFCTileAttribute_sideNameE"; WFCTileAttribute2["SIDE_NAME_H"] = "WFCTileAttribute_sideNameAllHorizontalSides"; WFCTileAttribute2["SIDE_NAME_B"] = "WFCTileAttribute_sideNameB"; WFCTileAttribute2["SIDE_NAME_T"] = "WFCTileAttribute_sideNameT"; return WFCTileAttribute2; })(WFCTileAttribute || {}); export var WFCConnectionAttribute = /* @__PURE__ */ ((WFCConnectionAttribute2) => { WFCConnectionAttribute2["ID0"] = "WFCTileAttribute_tileId0"; WFCConnectionAttribute2["ID1"] = "WFCTileAttribute_tileId1"; WFCConnectionAttribute2["SIDE0"] = "WFCTileAttribute_tileSide0"; WFCConnectionAttribute2["SIDE1"] = "WFCTileAttribute_tileSide1"; return WFCConnectionAttribute2; })(WFCConnectionAttribute || {}); function _sideNameAttribute(side) { switch (side) { case "n": return "WFCTileAttribute_sideNameN" /* SIDE_NAME_N */; case "s": return "WFCTileAttribute_sideNameS" /* SIDE_NAME_S */; case "w": return "WFCTileAttribute_sideNameW" /* SIDE_NAME_W */; case "e": return "WFCTileAttribute_sideNameE" /* SIDE_NAME_E */; case WFC_ALL_HORIZONTAL_SIDES: return "WFCTileAttribute_sideNameAllHorizontalSides" /* SIDE_NAME_H */; case "b": return "WFCTileAttribute_sideNameB" /* SIDE_NAME_B */; case "t": return "WFCTileAttribute_sideNameT" /* SIDE_NAME_T */; } TypeAssert.unreachable(side); } export class CoreWFCTileAttribute { // static setIsTile(object: ObjectContent<CoreObjectType>, value: boolean) { // setObjectBoolean(object, WFCTileAttribute.IS_TILE, value); // } static getIsTile(object) { return this.getTileId(object) != null; } static setTileId(object, value) { setObjectString(object, "WFCTileAttribute_tileId" /* TILE_ID */, value); } static getTileId(object) { return getObjectString(object, "WFCTileAttribute_tileId" /* TILE_ID */); } static setRotationYAllowed(object, value) { setObjectBoolean(object, "WFCTileAttribute_rotationYAllowed" /* ROTATION_Y_ALLOWED */, value); } static getRotationYAllowed(object) { return getObjectBoolean(object, "WFCTileAttribute_rotationYAllowed" /* ROTATION_Y_ALLOWED */, false); } static setWeight(object, value) { setObjectNumber(object, "WFCTileAttribute_weight" /* WEIGHT */, value); } static getWeight(object) { return getObjectNumber(object, "WFCTileAttribute_weight" /* WEIGHT */, 1); } static setIsErrorTile(object, value) { setObjectBoolean(object, "WFCTileAttribute_isErrorTile" /* IS_ERROR_TILE */, value); } static getIsErrorTile(object) { return getObjectBoolean(object, "WFCTileAttribute_isErrorTile" /* IS_ERROR_TILE */, false); } static setIsUnresolvedTile(object, value) { setObjectBoolean(object, "WFCTileAttribute_isUnresolvedTile" /* IS_UNRESOLVED_TILE */, value); } static getIsUnresolvedTile(object) { return getObjectBoolean(object, "WFCTileAttribute_isUnresolvedTile" /* IS_UNRESOLVED_TILE */, false); } // static setEntropy(object: ObjectContent<CoreObjectType>, value: number) { // setObjectNumber(object, WFCTileAttribute.ENTROPY, value); // } static getSideName(object, side) { return getObjectString(object, _sideNameAttribute(side)); } static setSideName(object, side, value) { setObjectString(object, _sideNameAttribute(side), value); } } export class CoreWFCRuleAttribute { // static setIsConnection(object: ObjectContent<CoreObjectType>, value: boolean) { // setObjectBoolean(object, WFCConnectionAttribute.IS_CONNECTION, value); // } static getIsConnection(object) { return this.getId0(object) && this.getId1(object) && this.getSide0(object) && this.getSide1(object); } static setId0(object, value) { setObjectString(object, "WFCTileAttribute_tileId0" /* ID0 */, value); } static getId0(object) { return getObjectString(object, "WFCTileAttribute_tileId0" /* ID0 */); } static setId1(object, value) { setObjectString(object, "WFCTileAttribute_tileId1" /* ID1 */, value); } static getId1(object) { return getObjectString(object, "WFCTileAttribute_tileId1" /* ID1 */); } static setSide0(object, value) { setObjectString(object, "WFCTileAttribute_tileSide0" /* SIDE0 */, value); } static getSide0(object) { return getObjectString(object, "WFCTileAttribute_tileSide0" /* SIDE0 */); } static setSide1(object, value) { setObjectString(object, "WFCTileAttribute_tileSide1" /* SIDE1 */, value); } static getSide1(object) { return getObjectString(object, "WFCTileAttribute_tileSide1" /* SIDE1 */); } }