mirror of
https://github.com/Terncode/pixel.horse.git
synced 2026-09-24 21:55:52 +02:00
Archive Update 53.1 (#62)
* Normalize BOM and line endings * Archive update 0.53.1
This commit is contained in:
committed by
Eliot Partridge
parent
3599e91bc0
commit
782f8c731c
@@ -1,4 +1,4 @@
|
||||
div(*ngIf="account")
|
||||
div(*ngIf="account")
|
||||
.row
|
||||
.col-md-12
|
||||
h2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ng-template(#searchTooltip)
|
||||
ng-template(#searchTooltip)
|
||||
.text-left.help-tooltip
|
||||
div: em search by:
|
||||
div name:<account_name> #[em - account name]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ng-template(#duplicatesPopover)
|
||||
ng-template(#duplicatesPopover)
|
||||
div(*ngFor="let e of duplicateEntries")
|
||||
| {{e}}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.row(style="margin-top: 100px;")
|
||||
.row(style="margin-top: 100px;")
|
||||
.col-md-6
|
||||
h2 {{ip}} [{{info.origin?.country}}]
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.text-center.pt-5(*ngIf="!stats")
|
||||
.text-center.pt-5(*ngIf="!stats")
|
||||
fa-icon.text-muted([icon]="spinnerIcon" [fixedWidth]="true" [spin]="true" size="3x")
|
||||
|
||||
.row(*ngIf="stats")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ng-template(#searchTooltip)
|
||||
ng-template(#searchTooltip)
|
||||
.text-left.help-tooltip
|
||||
div: em search by:
|
||||
div exact:<name> #[em - exact pony name]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
div(*ngIf="isSuperadmin")
|
||||
div(*ngIf="isSuperadmin")
|
||||
button.btn.btn-sm.btn-default((click)="notifyOfUpdate()")
|
||||
| Notify of update
|
||||
button.btn.btn-sm.btn-default.ml-1((click)="shutdownServers()")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.container-fluid
|
||||
.container-fluid
|
||||
|
||||
.d-flex.justify-content-between
|
||||
.admin-initializing
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ng-template(#notePopover)
|
||||
ng-template(#notePopover)
|
||||
textarea.form-control.note-editor(
|
||||
cols="20" rows="15" agAutoFocus [(ngModel)]="note" (keydown.escape)="blur()" (blur)="blur()")
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
div(*ngIf="open || !canClose")
|
||||
div(*ngIf="open || !canClose")
|
||||
.d-flex.justify-content-between.align-items-center
|
||||
h3
|
||||
| {{title}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
a(*ngIf="auth?.url" [href]="auth?.url" target="_blank" rel="noopener noreferrer" [title]="name")
|
||||
a(*ngIf="auth?.url" [href]="auth?.url" target="_blank" rel="noopener noreferrer" [title]="name")
|
||||
fa-icon([icon]="icon" [fixedWidth]="true")
|
||||
span(*ngIf="!auth?.url" [title]="name")
|
||||
fa-icon([icon]="icon" [fixedWidth]="true")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
table.table.table-fixed.table-striped.table-hover.table-sm.table-ellipsis
|
||||
table.table.table-fixed.table-striped.table-hover.table-sm.table-ellipsis
|
||||
thead
|
||||
tr
|
||||
th.col-time created
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.btn-group.mb-1
|
||||
.btn-group.mb-1
|
||||
button.btn.btn-xs([ngClass]="on ? 'btn-default' : 'btn-danger active'" (click)="onToggle(false)" [disabled]="disabled")
|
||||
b {{offText}}
|
||||
button.btn.btn-xs([ngClass]="on ? 'btn-success active' : 'btn-default'" (click)="onToggle(true)" [disabled]="disabled")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.d-flex.align-items-center(*ngIf="origin")
|
||||
.d-flex.align-items-center(*ngIf="origin")
|
||||
a.origin-info-ip.mr-1([routerLink]="['/origins', origin.ip, origin.country]" [title]="origin.ip")
|
||||
| {{origin.ip}}
|
||||
span([title]="countryName") [{{origin.country}}]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ng-template(#tooltip)
|
||||
ng-template(#tooltip)
|
||||
.character-tooltip(style="position: relative")
|
||||
character-preview([pony]="pony?.ponyInfo" [passive]="true")
|
||||
.character-tooltip-indicator(*ngIf="isBadCM") •
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ng-template(#tooltip)
|
||||
ng-template(#tooltip)
|
||||
div {{time | date:'mediumDate'}}
|
||||
.text-muted {{time | date:'mediumTime'}}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.action-bar(
|
||||
[class.has-scroller]="hasScroller" [class.is-mobile]="mobile" [class.is-blurred]="blurred"
|
||||
#scroller (mousewheel)="scroll($event)" (scroll)="true")
|
||||
#scroller (mousewheel)="scroll($event)" (wheel)="scroll($event)" (scroll)="true")
|
||||
action-button(
|
||||
*ngFor="let a of actions; let i = index"
|
||||
[class.blur-me]="i < blurCount"
|
||||
|
||||
@@ -79,6 +79,11 @@
|
||||
| Clear action bar
|
||||
button.btn.btn-outline-secondary.mr-2.mb-2((click)="undo()")
|
||||
| Undo
|
||||
button.btn.btn-outline-secondary.mr-2.mb-2((click)="export()")
|
||||
| Export actions
|
||||
button.btn.btn-outline-secondary.mr-2.mb-2((click)="importFile.click()")
|
||||
| Import actions
|
||||
input.d-none(#importFile type="file" (change)="import(importFile.files[0])")
|
||||
|
||||
tab(*ngIf="dev" title="Dev" [icon]="devIcon")
|
||||
div(*tabContent)
|
||||
|
||||
@@ -2,14 +2,14 @@ import { Component, Output, EventEmitter, OnInit, OnDestroy } from '@angular/cor
|
||||
import { Subscription } from 'rxjs';
|
||||
import {
|
||||
createButtionActionActions, expressionButtonAction, createButtonCommandActions,
|
||||
createDefaultButtonActions, actionExpressionDefaultPalette, entityButtonAction
|
||||
createDefaultButtonActions, actionExpressionDefaultPalette, entityButtonAction, serializeActions, deserializeActions
|
||||
} from '../../../client/buttonActions';
|
||||
import * as sprites from '../../../generated/sprites';
|
||||
import {
|
||||
Eye, Muzzle, ColorExtraSet, ColorExtra, Iris, ExpressionExtra, PonyEye, ButtonAction, Action,
|
||||
ButtonActionSlot, EntityButtonAction
|
||||
} from '../../../common/interfaces';
|
||||
import { createExpression } from '../../../client/clientUtils';
|
||||
import { createExpression, readFileAsText } from '../../../client/clientUtils';
|
||||
import { ACTION_EXPRESSION_BG, ACTION_EXPRESSION_EYE_COLOR, fillToOutline } from '../../../common/colors';
|
||||
import { faLock, faApple, faLaughBeam, faComment, faCog, faCogs } from '../../../client/icons';
|
||||
import { createEyeSprite } from '../../../client/spriteUtils';
|
||||
@@ -151,4 +151,16 @@ export class ActionsModal implements OnInit, OnDestroy {
|
||||
this.entityAction = entityButtonAction(this.entityName);
|
||||
}
|
||||
}
|
||||
export() {
|
||||
const data = serializeActions(this.game.actions);
|
||||
saveAs(new Blob([data], { type: 'text/plain;charset=utf-8' }), `pony-town-actions.json`);
|
||||
}
|
||||
async import(file: File | undefined) {
|
||||
if (file) {
|
||||
const text = await readFileAsText(file);
|
||||
this.game.actions = deserializeActions(text);
|
||||
this.game.editingActions = false;
|
||||
setTimeout(() => this.game.editingActions = true, 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.color-picker.dropdown(
|
||||
.color-picker.dropdown(
|
||||
[class.disabled]="isDisabled" [class.open]="isOpen" [class.show]="isOpen")
|
||||
//-[class.indicator]="indicatorColor"
|
||||
.color-picker-box([style.background-color]="bg")
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
nav.navbar.navbar-expand.justify-content-end(role="navigation")
|
||||
nav.navbar.navbar-expand.justify-content-end(role="navigation")
|
||||
.d-none.d-md-block
|
||||
a.pixelart.logo(*ngIf="logo" routerLink="/" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }")
|
||||
img.pixelart.logo-large(revSrc="images/logo-large.png" alt="Pony Town")
|
||||
img.pixelart.logo-small(revSrc="images/logo-small.png" alt="Pony Town")
|
||||
img.pixelart.logo-large(revSrc="images/logo-large.png" alt="Pony Town" width="287" height="65")
|
||||
img.pixelart.logo-small(revSrc="images/logo-small.png" alt="Pony Town" width="37" height="43")
|
||||
|
||||
.navbar-collapse.text-right
|
||||
.navbar-nav.ml-auto
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
}
|
||||
|
||||
.logo-large {
|
||||
width: 287px;
|
||||
display: none;
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
@@ -32,7 +31,6 @@
|
||||
}
|
||||
|
||||
.logo-small {
|
||||
width: 37px;
|
||||
display: block;
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
|
||||
@@ -13,7 +13,10 @@ ng-template(#tooltip)
|
||||
span.ml-1 {{counters?.timeouts || 0}}
|
||||
div {{note}}
|
||||
|
||||
.btn-group.btn-group-xs.btn-group-shadow(*ngIf="check?.xcz?.vdw?.qwe?.mnb")
|
||||
.btn-group.btn-group-xs.btn-group-shadow(*ngIf="check?.hgf?.bvc?.wer?.ngf")
|
||||
//- button.btn.btn-xs.btn-default((click)="report()" tooltip="Report")
|
||||
fa-icon([icon]="flagIcon")
|
||||
|
||||
.btn-group.dropdown(dropdown)
|
||||
button.btn.btn-xs.btn-default(dropdownToggle)
|
||||
fa-icon([icon]="moreIcon")
|
||||
|
||||
@@ -2,3 +2,9 @@
|
||||
h5 General rules
|
||||
ul.text-muted.list-rules
|
||||
li(*ngFor="let r of rules") {{r}}
|
||||
|
||||
h5 Notice
|
||||
p.text-muted
|
||||
| This game is very #[strong early in development]. There might be bugs and occasional downtimes.
|
||||
p.text-muted
|
||||
| Please do not redistribute any of the game files or code.
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
.portrait-box([ngClass]="size")
|
||||
.portrait-box([ngClass]="size")
|
||||
canvas(#canvas)
|
||||
.portrait-box-cover(*ngIf="!noBorder")
|
||||
|
||||
@@ -123,10 +123,15 @@
|
||||
| Disable function keys (F1-F12)
|
||||
|
||||
.modal-footer.d-flex
|
||||
button.btn.btn-outline-secondary.d-none.d-sm-block((click)="reset()")
|
||||
button.btn.btn-wide.btn-outline-secondary.d-none.d-sm-block((click)="reset()")
|
||||
| Reset
|
||||
button.btn.btn-outline-secondary.d-none.d-sm-block((click)="export()" title="Export settings")
|
||||
fa-icon([icon]="exportIcon" [fixedWidth]="true")
|
||||
button.btn.btn-outline-secondary.d-none.d-sm-block((click)="importFile.click()" title="Import settings")
|
||||
fa-icon([icon]="importIcon" [fixedWidth]="true")
|
||||
input.d-none(#importFile type="file" (change)="import(importFile.files[0])")
|
||||
.flex-grow-1
|
||||
button.btn.btn-outline-secondary((click)="cancel()")
|
||||
button.btn.btn-wide.btn-outline-secondary((click)="cancel()")
|
||||
| Cancel
|
||||
button.btn.btn-outline-secondary.ml-2((click)="ok()")
|
||||
button.btn.btn-wide.btn-outline-secondary.ml-2((click)="ok()")
|
||||
| OK
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
}
|
||||
|
||||
.modal-footer {
|
||||
.btn {
|
||||
.btn-wide {
|
||||
min-width: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@ import {
|
||||
import { StorageService } from '../../services/storageService';
|
||||
import { cloneDeep } from '../../../common/utils';
|
||||
import { PonyTownGame } from '../../../client/game';
|
||||
import { updateRangeIndicator } from '../../../client/clientUtils';
|
||||
import { faSlidersH, faCommentSlash, faGamepad, faImage } from '../../../client/icons';
|
||||
import { updateRangeIndicator, readFileAsText } from '../../../client/clientUtils';
|
||||
import { faSlidersH, faCommentSlash, faGamepad, faImage, faDownload, faUpload } from '../../../client/icons';
|
||||
|
||||
@Component({
|
||||
selector: 'settings-modal',
|
||||
@@ -24,6 +24,8 @@ export class SettingsModal implements OnInit, OnDestroy {
|
||||
readonly filtersIcon = faCommentSlash;
|
||||
readonly controlsIcon = faGamepad;
|
||||
readonly graphicsIcon = faImage;
|
||||
readonly exportIcon = faDownload;
|
||||
readonly importIcon = faUpload;
|
||||
@Output() close = new EventEmitter();
|
||||
account: AccountSettings = {};
|
||||
browser: BrowserSettings = {};
|
||||
@@ -119,4 +121,19 @@ export class SettingsModal implements OnInit, OnDestroy {
|
||||
this.account.filterWords = '';
|
||||
}
|
||||
}
|
||||
export() {
|
||||
const account = { ...this.account, actions: undefined };
|
||||
const browser = this.browser;
|
||||
const data = JSON.stringify({ account, browser });
|
||||
saveAs(new Blob([data], { type: 'text/plain;charset=utf-8' }), `pony-town-settings.json`);
|
||||
}
|
||||
async import(file: File | undefined) {
|
||||
if (file) {
|
||||
const text = await readFileAsText(file);
|
||||
const { account, browser } = JSON.parse(text);
|
||||
const actions = this.account.actions;
|
||||
Object.assign(this.account, { ...account, actions });
|
||||
Object.assign(this.browser, browser);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.slider-bar(#bar [class.disabled]="disabled" (agDrag)="drag($event)" agDragRelative="self")
|
||||
.slider-bar(#bar [class.disabled]="disabled" (agDrag)="drag($event)" agDragRelative="self")
|
||||
.slider-bar-fill([style.width.%]="width")
|
||||
.slider-bar-line
|
||||
.slider-bar-base([style.left.%]="width")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ng-template(#selectFrame)
|
||||
ng-template(#selectFrame)
|
||||
.frame-select-container
|
||||
a.frame-select(*ngFor="let s of sprites; index as i" [class.active]="frame === i"
|
||||
(mousedown)="select(i)" (mouseenter)="enter(i)" (mouseleave)="leave()")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.tools-range.input-group([class.input-group-sm]="small")
|
||||
.tools-range.input-group([class.input-group-sm]="small")
|
||||
.input-group-prepend
|
||||
button.btn.btn-default((click)="decrement()")
|
||||
fa-icon([icon]="vertical ? upIcon : leftIcon" [fixedWidth]="true")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ng-template(#shareLinkPopover)
|
||||
ng-template(#shareLinkPopover)
|
||||
div
|
||||
span.close.ml-2((click)="shareLinkOpen = false") ×
|
||||
| {{shareLink}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.m-4
|
||||
.m-4
|
||||
ul.nav.nav-pills
|
||||
a.nav-link(routerLink="/variants") Variant explorer
|
||||
a.nav-link(routerLink="/animation") Animator
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.form-inline
|
||||
.form-inline
|
||||
.form-group
|
||||
a.btn.btn-default(routerLink="/")
|
||||
fa-icon([icon]="homeIcon")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ng-template(#modal)
|
||||
ng-template(#modal)
|
||||
settings-modal((close)="modalRef.hide()")
|
||||
|
||||
.container-fluid.mt-3(*ngIf="initialized")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.form-inline.p-1
|
||||
.form-inline.p-1
|
||||
.form-group
|
||||
a.btn.btn-default(routerLink="/")
|
||||
fa-icon([icon]="homeIcon")
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
router-outlet
|
||||
router-outlet
|
||||
draggable-outlet
|
||||
|
||||
Reference in New Issue
Block a user