Skip to content

Commit

Permalink
refactor(tilemap): move pow2 tilemap code into app/scene
Browse files Browse the repository at this point in the history
 - this is the first part of a refactor to simplify the codebase by removing some layers of abstraction that are only really useful in a general purpose library. Angular RPG started as a general library, but is very specific now to a certain game that runs as an angular app.
  • Loading branch information
justindujardin committed Oct 24, 2022
1 parent 0a2026b commit a01ac65
Show file tree
Hide file tree
Showing 54 changed files with 134 additions and 120 deletions.
Empty file added src/.sink.d.ts
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
limitations under the License.
*/
import * as _ from 'underscore';
import { TickedBehavior } from '../../scene/behaviors/ticked-behavior';
import { TileObject } from '../tile-object';
import { TileObject } from '../scene/tile-object';
import { SpriteComponent } from './sprite.behavior';
import { TickedBehavior } from './ticked-behavior';
export interface AnimatedSpriteComponentOptions {
lengthMS?: number;
spriteName: string;
Expand Down
4 changes: 2 additions & 2 deletions src/app/behaviors/animated.behavior.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { Component } from '@angular/core';
import * as _ from 'underscore';
import { Point } from '../../game/pow-core/point';
import { TickedBehavior } from '../../game/pow2/scene/behaviors/ticked-behavior';
import { TileObject } from '../../game/pow2/tile/tile-object';
import { TileObject } from '../scene/tile-object';
import { TickedBehavior } from './ticked-behavior';

export interface IAnimationConfig {
/**
Expand Down
11 changes: 4 additions & 7 deletions src/app/behaviors/base-player.behavior.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,15 @@
import * as _ from 'underscore';
import { Point } from '../../game/pow-core/point';
import { ITiledLayer } from '../../game/pow-core/resources/tiled/tiled.model';
import {
IMoveDescription,
MovableBehavior,
} from '../../game/pow2/scene/behaviors/movable-behavior';
import { SceneObject } from '../../game/pow2/scene/scene-object';
import { TileMap } from '../../game/pow2/tile/tile-map';
import { TileObject } from '../../game/pow2/tile/tile-object';
import { TileObjectBehavior } from '../../game/pow2/tile/tile-object-behavior';
import {
Headings,
PlayerRenderBehaviorComponent,
} from '../routes/world/behaviors/player-render.behavior';
import { TileMap } from '../scene/tile-map';
import { TileObject } from '../scene/tile-object';
import { TileObjectBehavior } from '../scene/tile-object-behavior';
import { IMoveDescription, MovableBehavior } from './movable-behavior';

export class BasePlayerComponent extends MovableBehavior {
// TODO: Pass in collide types during entity creation, and assert on invalid types.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
See the License for the specific language governing permissions and
limitations under the License.
*/
import { Point } from '../../../pow-core/point';
import { SceneObjectBehavior } from '../scene-object-behavior';
import { SceneView } from '../scene-view';
import { Point } from '../../game/pow-core/point';
import { SceneView } from '../../game/pow2/scene/scene-view';
import { SceneObjectBehavior } from './scene-object-behavior';

export class CameraBehavior extends SceneObjectBehavior {
process(view: SceneView) {
Expand Down
2 changes: 1 addition & 1 deletion src/app/behaviors/collision.behavior.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import { Component } from '@angular/core';
import { Rect } from '../../game/pow-core/rect';
import { SceneObject } from '../../game/pow2/scene/scene-object';
import { SceneObjectBehavior } from '../../game/pow2/scene/scene-object-behavior';
import { SceneObjectBehavior } from './scene-object-behavior';

@Component({
selector: 'collision-behavior',
Expand Down
8 changes: 4 additions & 4 deletions src/app/behaviors/damage.behavior.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
See the License for the specific language governing permissions and
limitations under the License.
*/
import { SoundBehavior } from '../../game/pow2/scene/behaviors/sound-behavior';
import { SceneObjectBehavior } from '../../game/pow2/scene/scene-object-behavior';
import { AnimatedSpriteBehavior } from '../../game/pow2/tile/behaviors/animated-sprite.behavior';
import { SpriteComponent } from '../../game/pow2/tile/behaviors/sprite.behavior';
import { GameEntityObject } from '../scene/game-entity-object';
import { AnimatedSpriteBehavior } from './animated-sprite.behavior';
import { SceneObjectBehavior } from './scene-object-behavior';
import { SoundBehavior } from './sound-behavior';
import { SpriteComponent } from './sprite.behavior';

export class DamageComponent extends SceneObjectBehavior {
host: GameEntityObject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
See the License for the specific language governing permissions and
limitations under the License.
*/
import { CollisionBehaviorComponent } from '../../../../app/behaviors/collision.behavior';
import { Point } from '../../../pow-core/point';
import { KeyCode } from '../../core/input';
import { SceneObject } from '../scene-object';
import { Point } from '../../game/pow-core';
import { KeyCode } from '../../game/pow2/core/input';
import { SceneObject } from '../../game/pow2/scene/scene-object';
import { CollisionBehaviorComponent } from './collision.behavior';
import { TickedBehavior } from './ticked-behavior';
/**
* Describe a move from one point to another.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Behavior } from '../../pow-core/behavior';
import { SceneObject } from './scene-object';
import { Behavior } from '../../game/pow-core/behavior';
import { SceneObject } from '../../game/pow2/scene/scene-object';

/** Simplest component that is hosted by an object in a scene. */
export class SceneObjectBehavior extends Behavior {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
limitations under the License.
*/
import * as _ from 'underscore';
import { GameWorld } from '../../../../app/services/game-world';
import { AudioResource } from '../../../pow-core/resources/audio.resource';
import { SceneObjectBehavior } from '../scene-object-behavior';
import { AudioResource } from '../../game/pow-core';
import { GameWorld } from '../services/game-world';
import { SceneObjectBehavior } from './scene-object-behavior';

export interface SoundComponentOptions {
url: string;
Expand Down
2 changes: 1 addition & 1 deletion src/app/behaviors/sprite-render.behavior.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { distinctUntilChanged, map } from 'rxjs/operators';
import { ImageResource } from '../../game/pow-core/resources/image.resource';
import { ISpriteMeta } from '../../game/pow2/core/api';
import { SceneObjectBehavior } from '../../game/pow2/scene/scene-object-behavior';
import { GameWorld } from '../services/game-world';
import { SceneObjectBehavior } from './scene-object-behavior';

@Component({
selector: 'sprite-render-behavior',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
limitations under the License.
*/
import * as _ from 'underscore';
import { ImageResource } from '../../../pow-core/resources/image.resource';
import { ISpriteMeta } from '../../core/api';
import { SceneObjectBehavior } from '../../scene/scene-object-behavior';
import { TileObject } from '../tile-object';
import { ImageResource } from '../../game/pow-core';
import { ISpriteMeta } from '../../game/pow2/core/api';
import { TileObject } from '../scene/tile-object';
import { SceneObjectBehavior } from './scene-object-behavior';

export interface SpriteComponentOptions {
icon: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
See the License for the specific language governing permissions and
limitations under the License.
*/
import { SceneObjectBehavior } from '../scene-object-behavior';
import { SceneObjectBehavior } from './scene-object-behavior';
/**
* A behavior that receives tick and interpolateTick callbacks
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@
See the License for the specific language governing permissions and
limitations under the License.
*/
import { CameraBehavior } from '../../scene/behaviors/camera-behavior';
import { SceneView } from '../../scene/scene-view';
import { TileMap } from '../tile-map';
import { SceneView } from '../../game/pow2/scene/scene-view';
import { TileMap } from '../scene/tile-map';
import { CameraBehavior } from './camera-behavior';

export class TileMapCameraComponent extends CameraBehavior {
host: TileMap;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
*/
import * as astar from 'javascript-astar';
import * as _ from 'underscore';
import { Point } from '../../../pow-core/point';
import { TileMap } from '../tile-map';
import { TileObjectBehavior } from '../tile-object-behavior';
import { Point } from '../../game/pow-core';
import { TileMap } from '../scene/tile-map';
import { TileObjectBehavior } from '../scene/tile-object-behavior';

/**
* A component that can calculate A-star paths.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import { first, map } from 'rxjs/operators';
import * as _ from 'underscore';
import { ImageResource } from '../../../../../game/pow-core/resources/image.resource';
import { getSoundEffectUrl, ISpriteMeta } from '../../../../../game/pow2/core/api';
import { SoundBehavior } from '../../../../../game/pow2/scene/behaviors/sound-behavior';
import { AnimatedSpriteBehavior } from '../../../../../game/pow2/tile/behaviors/animated-sprite.behavior';
import { SpriteComponent } from '../../../../../game/pow2/tile/behaviors/sprite.behavior';
import { AppState } from '../../../../app.model';
import { AnimatedSpriteBehavior } from '../../../../behaviors/animated-sprite.behavior';
import { DamageComponent } from '../../../../behaviors/damage.behavior';
import { SoundBehavior } from '../../../../behaviors/sound-behavior';
import { SpriteComponent } from '../../../../behaviors/sprite.behavior';
import { CombatAttackAction } from '../../../../models/combat/combat.actions';
import { CombatAttack } from '../../../../models/combat/combat.model';
import { CombatService } from '../../../../models/combat/combat.service';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { Component, Input } from '@angular/core';
import { Store } from '@ngrx/store';
import { CombatPlayerRenderBehaviorComponent } from '..';
import { SoundBehavior } from '../../../../../game/pow2/scene/behaviors/sound-behavior';
import { AnimatedSpriteBehavior } from '../../../../../game/pow2/tile/behaviors/animated-sprite.behavior';
import { SpriteComponent } from '../../../../../game/pow2/tile/behaviors/sprite.behavior';
import { AppState } from '../../../../app.model';
import { AnimatedSpriteBehavior } from '../../../../behaviors/animated-sprite.behavior';
import { SoundBehavior } from '../../../../behaviors/sound-behavior';
import { SpriteComponent } from '../../../../behaviors/sprite.behavior';
import { CombatAttackAction } from '../../../../models/combat/combat.actions';
import { CombatAttack } from '../../../../models/combat/combat.model';
import { GameStateRemoveInventoryAction } from '../../../../models/game-state/game-state.actions';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ import { GameEntityObject } from '../../../../../app/scene/game-entity-object';
import { GameWorld } from '../../../../../app/services/game-world';
import { ImageResource } from '../../../../../game/pow-core';
import { getSoundEffectUrl, ISpriteMeta } from '../../../../../game/pow2/core/api';
import { SoundBehavior } from '../../../../../game/pow2/scene/behaviors/sound-behavior';
import { AnimatedSpriteBehavior } from '../../../../../game/pow2/tile/behaviors/animated-sprite.behavior';
import { SpriteComponent } from '../../../../../game/pow2/tile/behaviors/sprite.behavior';
import { AnimatedSpriteBehavior } from '../../../../behaviors/animated-sprite.behavior';
import { DamageComponent } from '../../../../behaviors/damage.behavior';
import { SoundBehavior } from '../../../../behaviors/sound-behavior';
import { SpriteComponent } from '../../../../behaviors/sprite.behavior';
import { IMagicTargetDelta } from '../../../../models/mechanics';
import { CombatEndTurnStateComponent, IPlayerActionCallback } from '../../states';
import { CombatActionBehavior } from '../combat-action.behavior';
Expand Down
2 changes: 1 addition & 1 deletion src/app/routes/combat/behaviors/combat-action.behavior.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
See the License for the specific language governing permissions and
limitations under the License.
*/
import { SceneObjectBehavior } from '../../../../game/pow2/scene/scene-object-behavior';
import { SceneObjectBehavior } from '../../../behaviors/scene-object-behavior';
import { ITemplateMagic } from '../../../models/game-data/game-data.model';
import { Item } from '../../../models/item';
import { GameEntityObject } from '../../../scene/game-entity-object';
Expand Down
2 changes: 1 addition & 1 deletion src/app/routes/combat/behaviors/combat-camera.behavior.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
*/
import { Component } from '@angular/core';
import { Rect } from '../../../../game/pow-core/rect';
import { CameraBehavior } from '../../../../game/pow2/scene/behaviors/camera-behavior';
import { SceneView } from '../../../../game/pow2/scene/scene-view';
import { CameraBehavior } from '../../../behaviors/camera-behavior';
import { GameTileMap } from '../../../scene/game-tile-map';

@Component({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { Component } from '@angular/core';
import * as _ from 'underscore';
import { Point } from '../../../../game/pow-core/point';
import { TickedBehavior } from '../../../../game/pow2/scene/behaviors/ticked-behavior';
import {
AnimatedBehaviorComponent,
IAnimationConfig,
} from '../../../behaviors/animated.behavior';
import { TickedBehavior } from '../../../behaviors/ticked-behavior';
import { CombatService } from '../../../models/combat/combat.service';
import { GameEntityObject } from '../../../scene/game-entity-object';
import { Headings } from '../../world/behaviors/player-render.behavior';
Expand Down
8 changes: 4 additions & 4 deletions src/app/routes/combat/combat-map.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,8 @@ import { TiledTMXResource } from '../../../game/pow-core/resources/tiled/tiled-t
import { Scene } from '../../../game/pow2/scene/scene';
import { SceneView } from '../../../game/pow2/scene/scene-view';
import { ISceneViewRenderer } from '../../../game/pow2/scene/scene.model';
import { SpriteComponent } from '../../../game/pow2/tile/behaviors/sprite.behavior';
import { TileMapRenderer } from '../../../game/pow2/tile/render/tile-map-renderer';
import { TileObjectRenderer } from '../../../game/pow2/tile/render/tile-object-renderer';
import { TileMapView } from '../../../game/pow2/tile/tile-map-view';
import { AppState } from '../../app.model';
import { SpriteComponent } from '../../behaviors/sprite.behavior';
import { LoadingService } from '../../components/loading/loading.service';
import { CombatantTypes, IEnemy, IPartyMember } from '../../models/base-entity';
import { CombatState } from '../../models/combat/combat.model';
Expand All @@ -33,6 +30,9 @@ import {
sliceCombatState,
} from '../../models/selectors';
import { GameTileMap } from '../../scene/game-tile-map';
import { TileMapRenderer } from '../../scene/tile-map-renderer';
import { TileMapView } from '../../scene/tile-map-view';
import { TileObjectRenderer } from '../../scene/tile-object-renderer';
import { CombatCameraBehaviorComponent } from './behaviors/combat-camera.behavior';
import { CombatEnemyComponent } from './combat-enemy.entity';
import { CombatPlayerComponent } from './combat-player.entity';
Expand Down
2 changes: 1 addition & 1 deletion src/app/routes/combat/combat-player.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
ViewChildren,
} from '@angular/core';
import { Scene } from '../../../game/pow2/scene/scene';
import { SceneObjectBehavior } from '../../../game/pow2/scene/scene-object-behavior';
import { SceneObjectBehavior } from '../../behaviors/scene-object-behavior';
import { IPartyMember } from '../../models/base-entity';
import { GameEntityObject } from '../../scene/game-entity-object';
import { CombatPlayerRenderBehaviorComponent } from './behaviors/combat-player-render.behavior';
Expand Down
2 changes: 1 addition & 1 deletion src/app/routes/combat/combat.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ import { IProcessObject } from '../../../game/pow-core/time';
import { NamedMouseElement, PowInput } from '../../../game/pow2/core/input';
import { Scene } from '../../../game/pow2/scene/scene';
import { SceneObject } from '../../../game/pow2/scene/scene-object';
import { TileMapView } from '../../../game/pow2/tile/tile-map-view';
import { AppState } from '../../app.model';
import { LoadingService } from '../../components/loading/loading.service';
import { NotificationService } from '../../components/notification/notification.service';
import { GameEntityObject } from '../../scene/game-entity-object';
import { TileMapView } from '../../scene/tile-map-view';
import { Animate } from '../../services/animate';
import { GameWorld } from '../../services/game-world';
import { RPGGame } from '../../services/rpg-game';
Expand Down
2 changes: 1 addition & 1 deletion src/app/routes/combat/states/combat.machine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import * as _ from 'underscore';
import { IState } from '../../../../game/pow2/core/state';
import { StateMachine } from '../../../../game/pow2/core/state-machine';
import { Scene } from '../../../../game/pow2/scene/scene';
import { TileMapView } from '../../../../game/pow2/tile/tile-map-view';
import { AppState } from '../../../app.model';
import { CombatEncounter } from '../../../models/combat/combat.model';
import { CombatService } from '../../../models/combat/combat.service';
Expand All @@ -41,6 +40,7 @@ import {
import { Item } from '../../../models/item';
import { getGameInventory } from '../../../models/selectors';
import { GameEntityObject } from '../../../scene/game-entity-object';
import { TileMapView } from '../../../scene/tile-map-view';
import { GameWorld } from '../../../services/game-world';
import { CombatEnemyComponent } from '../combat-enemy.entity';
import { CombatPlayerComponent } from '../combat-player.entity';
Expand Down
4 changes: 2 additions & 2 deletions src/app/routes/world/behaviors/combat-encounter.behavior.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import { List } from 'immutable';
import { Observable } from 'rxjs';
import { map, take } from 'rxjs/operators';
import { IEnemy } from '../../../../app/models/base-entity';
import { IMoveDescription } from '../../../../game/pow2/scene/behaviors/movable-behavior';
import { Scene } from '../../../../game/pow2/scene/scene';
import { SceneObjectBehavior } from '../../../../game/pow2/scene/scene-object-behavior';
import { AppState } from '../../../app.model';
import { IMoveDescription } from '../../../behaviors/movable-behavior';
import { SceneObjectBehavior } from '../../../behaviors/scene-object-behavior';
import { CombatEncounterAction } from '../../../models/combat/combat.actions';
import { CombatEncounter, IZoneMatch } from '../../../models/combat/combat.model';
import { Entity } from '../../../models/entity/entity.model';
Expand Down
4 changes: 2 additions & 2 deletions src/app/routes/world/behaviors/map-feature-input.behavior.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ import { Component, Input } from '@angular/core';
import * as _ from 'underscore';
import { Rect } from '../../../../game/pow-core/rect';
import { NamedMouseElement } from '../../../../game/pow2/core/input';
import { TickedBehavior } from '../../../../game/pow2/scene/behaviors/ticked-behavior';
import { Scene } from '../../../../game/pow2/scene/scene';
import { TileObject } from '../../../../game/pow2/tile/tile-object';
import { TickedBehavior } from '../../../behaviors/ticked-behavior';
import { GameFeatureObject } from '../../../scene/game-feature-object';
import { TileObject } from '../../../scene/tile-object';

@Component({
selector: 'map-feature-input-behavior',
Expand Down
2 changes: 1 addition & 1 deletion src/app/routes/world/behaviors/player-behavior.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ import { Component, EventEmitter, Output } from '@angular/core';
import * as _ from 'underscore';
import { GameTileMap } from '../../../../app/scene/game-tile-map';
import { ITiledLayer } from '../../../../game/pow-core/resources/tiled/tiled.model';
import { IMoveDescription } from '../../../../game/pow2/scene/behaviors/movable-behavior';
import { SceneObject } from '../../../../game/pow2/scene/scene-object';
import { BasePlayerComponent } from '../../../behaviors/base-player.behavior';
import { IMoveDescription } from '../../../behaviors/movable-behavior';
import { GameStateMoveAction } from '../../../models/game-state/game-state.actions';
import { GameEntityObject } from '../../../scene/game-entity-object';
import { GameFeatureObject } from '../../../scene/game-feature-object';
Expand Down
2 changes: 1 addition & 1 deletion src/app/routes/world/behaviors/player-camera.behavior.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
*/
import { Component } from '@angular/core';
import { Point } from '../../../../game/pow-core/point';
import { CameraBehavior } from '../../../../game/pow2/scene/behaviors/camera-behavior';
import { SceneView } from '../../../../game/pow2/scene/scene-view';
import { CameraBehavior } from '../../../behaviors/camera-behavior';
import { GameEntityObject } from '../../../scene/game-entity-object';

@Component({
Expand Down
4 changes: 2 additions & 2 deletions src/app/routes/world/behaviors/player-look.behavior.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
limitations under the License.
*/
import { Component, EventEmitter, Output } from '@angular/core';
import { TickedBehavior } from '../../../../game/pow2/scene/behaviors/ticked-behavior';
import { TileObject } from '../../../../game/pow2/tile/tile-object';
import { CollisionBehaviorComponent } from '../../../behaviors/collision.behavior';
import { TickedBehavior } from '../../../behaviors/ticked-behavior';
import { GameFeatureObject } from '../../../scene/game-feature-object';
import { TileObject } from '../../../scene/tile-object';
import { PlayerBehaviorComponent } from './player-behavior';

/**
Expand Down
Loading

0 comments on commit a01ac65

Please sign in to comment.