Initial data model migration
This commit is contained in:
35
gulpfile.js
Normal file
35
gulpfile.js
Normal file
@@ -0,0 +1,35 @@
|
||||
const gulp = require('gulp');
|
||||
const less = require('gulp-less');
|
||||
const sourcemaps = require('gulp-sourcemaps');
|
||||
|
||||
// Paths
|
||||
const paths = {
|
||||
styles: {
|
||||
src: 'less/**/*.less',
|
||||
dest: 'styles/'
|
||||
}
|
||||
};
|
||||
|
||||
// Compile LESS to CSS
|
||||
function styles() {
|
||||
return gulp.src('less/hawkmoon.less')
|
||||
.pipe(sourcemaps.init())
|
||||
.pipe(less())
|
||||
.pipe(sourcemaps.write('.'))
|
||||
.pipe(gulp.dest(paths.styles.dest));
|
||||
}
|
||||
|
||||
// Watch files
|
||||
function watchFiles() {
|
||||
gulp.watch(paths.styles.src, styles);
|
||||
}
|
||||
|
||||
// Define complex tasks
|
||||
const build = gulp.series(styles);
|
||||
const watch = gulp.series(build, watchFiles);
|
||||
|
||||
// Export tasks
|
||||
exports.styles = styles;
|
||||
exports.build = build;
|
||||
exports.watch = watch;
|
||||
exports.default = build;
|
||||
8
less/actor-sheet.less
Normal file
8
less/actor-sheet.less
Normal file
@@ -0,0 +1,8 @@
|
||||
// Actor sheet styles
|
||||
|
||||
.actor-sheet {
|
||||
min-width: 720px;
|
||||
min-height: 680px;
|
||||
}
|
||||
|
||||
// Placeholder - to be expanded based on actor-sheet.html
|
||||
90
less/base.less
Normal file
90
less/base.less
Normal file
@@ -0,0 +1,90 @@
|
||||
// Base styles
|
||||
|
||||
* {
|
||||
scrollbar-color: initial;
|
||||
}
|
||||
|
||||
.hawkmoon {
|
||||
font-family: @font-family-base;
|
||||
}
|
||||
|
||||
// Utility classes
|
||||
.flexrow {
|
||||
.flex-row();
|
||||
gap: @spacing-base;
|
||||
}
|
||||
|
||||
.flexcol {
|
||||
.flex-column();
|
||||
gap: @spacing-base;
|
||||
}
|
||||
|
||||
// Item lists
|
||||
.item-list {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
.item {
|
||||
padding: @spacing-small @spacing-base;
|
||||
border-bottom: 1px solid lighten(@color-border, 20%);
|
||||
|
||||
&:hover {
|
||||
background: lighten(@color-secondary, 65%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.alternate-list {
|
||||
.item:nth-child(even) {
|
||||
background: lighten(@color-secondary, 70%);
|
||||
}
|
||||
}
|
||||
|
||||
// Form elements
|
||||
input[type="text"],
|
||||
input[type="number"],
|
||||
textarea,
|
||||
select {
|
||||
.input-base();
|
||||
}
|
||||
|
||||
button {
|
||||
.button-base();
|
||||
}
|
||||
|
||||
// Labels
|
||||
label {
|
||||
.label-base();
|
||||
}
|
||||
|
||||
.generic-label {
|
||||
.label-base();
|
||||
margin: 0 @spacing-base;
|
||||
}
|
||||
|
||||
// Field sizes
|
||||
.item-field-label-short {
|
||||
flex: 0 0 40px;
|
||||
}
|
||||
|
||||
.item-field-label-medium {
|
||||
flex: 0 0 80px;
|
||||
}
|
||||
|
||||
.item-field-label-long {
|
||||
flex: 0 0 120px;
|
||||
}
|
||||
|
||||
.item-field-label-very-long {
|
||||
flex: 0 0 150px;
|
||||
}
|
||||
|
||||
// Padd classes
|
||||
.padd-right {
|
||||
padding-right: @spacing-medium;
|
||||
}
|
||||
|
||||
.padd-left {
|
||||
padding-left: @spacing-medium;
|
||||
}
|
||||
8
less/cellule-sheet.less
Normal file
8
less/cellule-sheet.less
Normal file
@@ -0,0 +1,8 @@
|
||||
// Cellule sheet styles
|
||||
|
||||
.cellule-sheet {
|
||||
min-width: 720px;
|
||||
min-height: 680px;
|
||||
}
|
||||
|
||||
// Placeholder - to be expanded based on cellule-sheet.html
|
||||
23
less/chat.less
Normal file
23
less/chat.less
Normal file
@@ -0,0 +1,23 @@
|
||||
// Chat message styles
|
||||
|
||||
.chat-message {
|
||||
.message-header {
|
||||
.flex-row();
|
||||
gap: @spacing-base;
|
||||
margin-bottom: @spacing-small;
|
||||
}
|
||||
|
||||
.dice-roll {
|
||||
.flex-center();
|
||||
padding: @spacing-base;
|
||||
background: lighten(@color-secondary, 70%);
|
||||
border-radius: @input-border-radius;
|
||||
|
||||
.dice-total {
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Placeholder - to be expanded based on chat templates
|
||||
3
less/combat.less
Normal file
3
less/combat.less
Normal file
@@ -0,0 +1,3 @@
|
||||
// Combat styles
|
||||
|
||||
// Placeholder - combat tracker styles
|
||||
8
less/creature-sheet.less
Normal file
8
less/creature-sheet.less
Normal file
@@ -0,0 +1,8 @@
|
||||
// Creature sheet styles
|
||||
|
||||
.creature-sheet {
|
||||
min-width: 720px;
|
||||
min-height: 680px;
|
||||
}
|
||||
|
||||
// Placeholder - to be expanded based on creature-sheet.html
|
||||
17
less/dialogs.less
Normal file
17
less/dialogs.less
Normal file
@@ -0,0 +1,17 @@
|
||||
// Dialog styles
|
||||
|
||||
.dialog {
|
||||
.dialog-buttons {
|
||||
.flex-row();
|
||||
justify-content: flex-end;
|
||||
gap: @spacing-base;
|
||||
padding-top: @spacing-medium;
|
||||
border-top: 1px solid @color-border;
|
||||
|
||||
button {
|
||||
min-width: 80px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Placeholder - to be expanded based on roll-dialog-generic.html
|
||||
13
less/fonts.less
Normal file
13
less/fonts.less
Normal file
@@ -0,0 +1,13 @@
|
||||
// Font definitions
|
||||
|
||||
@font-face {
|
||||
font-family: "Pfeffer";
|
||||
src: url("../assets/fonts/pfeffer-simpelgotisch.regular2.otf")
|
||||
format("opentype");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Montserrat";
|
||||
src: url("../assets/fonts/Montserrat-Medium.woff") format("woff");
|
||||
font-weight: normal;
|
||||
}
|
||||
27
less/forms.less
Normal file
27
less/forms.less
Normal file
@@ -0,0 +1,27 @@
|
||||
// Form elements specific styles
|
||||
|
||||
form {
|
||||
input[type="checkbox"] {
|
||||
width: auto;
|
||||
margin: 0 @spacing-base;
|
||||
}
|
||||
|
||||
input[disabled],
|
||||
select[disabled],
|
||||
textarea[disabled] {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
background: lighten(@color-border, 25%);
|
||||
}
|
||||
}
|
||||
|
||||
.editor {
|
||||
min-height: 100px;
|
||||
border: @input-border;
|
||||
border-radius: @input-border-radius;
|
||||
padding: @spacing-base;
|
||||
|
||||
.editor-content {
|
||||
min-height: 80px;
|
||||
}
|
||||
}
|
||||
4
less/hawkmoon.less
Normal file
4
less/hawkmoon.less
Normal file
@@ -0,0 +1,4 @@
|
||||
// Main LESS file for Hawkmoon system
|
||||
// Temporarily importing the full converted simple.css while we refactor
|
||||
|
||||
@import "simple-converted";
|
||||
3
less/hud.less
Normal file
3
less/hud.less
Normal file
@@ -0,0 +1,3 @@
|
||||
// HUD styles
|
||||
|
||||
// Placeholder - to be expanded based on hud-adversites.html
|
||||
109
less/item-sheets.less
Normal file
109
less/item-sheets.less
Normal file
@@ -0,0 +1,109 @@
|
||||
// Item sheets styles
|
||||
|
||||
.item-sheet {
|
||||
min-width: 500px;
|
||||
min-height: 400px;
|
||||
|
||||
.sheet-header {
|
||||
.flex-row();
|
||||
gap: @spacing-medium;
|
||||
padding: @spacing-medium;
|
||||
background: lighten(@color-secondary, 65%);
|
||||
border-bottom: 2px solid @color-primary;
|
||||
|
||||
img.item-sheet-img {
|
||||
flex: 0 0 48px;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
object-fit: cover;
|
||||
border: 2px solid @color-border;
|
||||
border-radius: @input-border-radius;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
border-color: @color-primary;
|
||||
}
|
||||
}
|
||||
|
||||
.header-fields {
|
||||
flex: 1;
|
||||
|
||||
h1 {
|
||||
margin: 0 0 @spacing-base 0;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
border: none;
|
||||
|
||||
input {
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
border: none;
|
||||
background: transparent;
|
||||
|
||||
&:focus {
|
||||
background: white;
|
||||
border: @input-border;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.header-actions {
|
||||
.flex-row();
|
||||
gap: @spacing-base;
|
||||
|
||||
button {
|
||||
padding: @spacing-small @spacing-base;
|
||||
font-size: @font-size-small;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.sheet-body {
|
||||
padding: @spacing-medium;
|
||||
}
|
||||
|
||||
// Predilections section
|
||||
.predilections-list {
|
||||
.predilection-item {
|
||||
padding: @spacing-base;
|
||||
margin-bottom: @spacing-small;
|
||||
border: 1px solid lighten(@color-border, 15%);
|
||||
border-radius: @input-border-radius;
|
||||
|
||||
.predilection-header {
|
||||
.flex-row();
|
||||
margin-bottom: @spacing-small;
|
||||
|
||||
input[type="text"] {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
margin: 0 @spacing-small;
|
||||
}
|
||||
}
|
||||
|
||||
.predilection-description {
|
||||
textarea {
|
||||
width: 100%;
|
||||
min-height: 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Automation section
|
||||
.automation-item {
|
||||
padding: @spacing-base;
|
||||
margin-bottom: @spacing-small;
|
||||
background: lighten(@color-secondary, 70%);
|
||||
border-radius: @input-border-radius;
|
||||
|
||||
hr {
|
||||
margin: @spacing-small 0;
|
||||
border: none;
|
||||
border-top: 1px solid @color-border;
|
||||
}
|
||||
}
|
||||
}
|
||||
47
less/items.less
Normal file
47
less/items.less
Normal file
@@ -0,0 +1,47 @@
|
||||
// Item-related styles
|
||||
|
||||
.item-control {
|
||||
flex: 0 0 24px;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
background: transparent;
|
||||
|
||||
i {
|
||||
font-size: @font-size-base;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: @color-primary;
|
||||
}
|
||||
}
|
||||
|
||||
.item-image {
|
||||
flex: 0 0 36px;
|
||||
height: 36px;
|
||||
cursor: pointer;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
border: 1px solid @color-border;
|
||||
border-radius: @input-border-radius;
|
||||
}
|
||||
}
|
||||
|
||||
.item-name {
|
||||
flex: 1;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: @color-primary;
|
||||
}
|
||||
}
|
||||
|
||||
.item-value {
|
||||
flex: 0 0 60px;
|
||||
text-align: center;
|
||||
}
|
||||
58
less/mixins.less
Normal file
58
less/mixins.less
Normal file
@@ -0,0 +1,58 @@
|
||||
// Mixins for Hawkmoon system
|
||||
|
||||
// Flexbox helpers
|
||||
.flex-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.flex-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.flex-center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
// Common input styling
|
||||
.input-base {
|
||||
padding: @input-padding;
|
||||
border: @input-border;
|
||||
border-radius: @input-border-radius;
|
||||
font-size: @font-size-base;
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
border-color: @color-primary;
|
||||
}
|
||||
}
|
||||
|
||||
// Button styling
|
||||
.button-base {
|
||||
padding: @button-padding;
|
||||
border: @input-border;
|
||||
border-radius: @button-border-radius;
|
||||
background: @color-background;
|
||||
cursor: pointer;
|
||||
font-family: @font-family-base;
|
||||
|
||||
&:hover {
|
||||
background: lighten(@color-secondary, 60%);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background: lighten(@color-secondary, 50%);
|
||||
}
|
||||
}
|
||||
|
||||
// Label styling
|
||||
.label-base {
|
||||
font-family: @font-family-base;
|
||||
font-size: @font-size-base;
|
||||
font-weight: 700;
|
||||
color: @color-text-dark;
|
||||
}
|
||||
1665
less/simple-converted.less
Normal file
1665
less/simple-converted.less
Normal file
File diff suppressed because it is too large
Load Diff
39
less/tabs.less
Normal file
39
less/tabs.less
Normal file
@@ -0,0 +1,39 @@
|
||||
// Tabs navigation
|
||||
|
||||
.tabs {
|
||||
.flex-row();
|
||||
gap: 0;
|
||||
border-bottom: 2px solid @color-border;
|
||||
margin-bottom: @spacing-medium;
|
||||
|
||||
.item {
|
||||
padding: @spacing-base @spacing-large;
|
||||
font-family: @font-family-base;
|
||||
font-size: @font-size-large;
|
||||
font-weight: 700;
|
||||
color: @color-secondary;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
border-bottom: 3px solid transparent;
|
||||
background: transparent;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: @color-primary;
|
||||
background: lighten(@color-secondary, 70%);
|
||||
}
|
||||
|
||||
&.active {
|
||||
color: @color-primary;
|
||||
border-bottom-color: @color-primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tab {
|
||||
display: none;
|
||||
|
||||
&.active {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
36
less/variables.less
Normal file
36
less/variables.less
Normal file
@@ -0,0 +1,36 @@
|
||||
// Variables for Hawkmoon system
|
||||
|
||||
// =================== Fonts ===================
|
||||
@font-family-base: Montserrat;
|
||||
@font-family-decorative: Pfeffer;
|
||||
|
||||
// =================== Colors ===================
|
||||
@color-primary: #4a0404;
|
||||
@color-secondary: #403f3e;
|
||||
@color-text-light: #f5f5f5;
|
||||
@color-text-dark: #464331c4;
|
||||
@color-border: #7a7971;
|
||||
@color-background: #fff;
|
||||
|
||||
// =================== Sizes ===================
|
||||
@font-size-small: 0.8rem;
|
||||
@font-size-base: 0.9rem;
|
||||
@font-size-medium: 0.95rem;
|
||||
@font-size-large: 1rem;
|
||||
|
||||
@spacing-small: 2px;
|
||||
@spacing-base: 4px;
|
||||
@spacing-medium: 8px;
|
||||
@spacing-large: 12px;
|
||||
|
||||
// =================== Form Elements ===================
|
||||
@input-padding: 2px 4px;
|
||||
@input-border-radius: 3px;
|
||||
@input-border: 1px solid @color-border;
|
||||
|
||||
// =================== Buttons ===================
|
||||
@button-padding: 4px 8px;
|
||||
@button-border-radius: 3px;
|
||||
|
||||
// =================== Windows ===================
|
||||
@window-header-height: 28px;
|
||||
70
less/windows.less
Normal file
70
less/windows.less
Normal file
@@ -0,0 +1,70 @@
|
||||
// Window and sheet styles
|
||||
|
||||
.window-app {
|
||||
.window-header {
|
||||
font-family: @font-family-base;
|
||||
|
||||
.window-title {
|
||||
font-size: @font-size-medium;
|
||||
font-weight: normal;
|
||||
color: @color-text-light;
|
||||
}
|
||||
}
|
||||
|
||||
.window-content {
|
||||
background: @color-background;
|
||||
padding: @spacing-medium;
|
||||
}
|
||||
}
|
||||
|
||||
// Sheet sections
|
||||
.sheet-header {
|
||||
.flex-row();
|
||||
padding: @spacing-medium;
|
||||
border-bottom: 2px solid @color-primary;
|
||||
margin-bottom: @spacing-medium;
|
||||
|
||||
img.profile-img {
|
||||
flex: 0 0 100px;
|
||||
height: 100px;
|
||||
object-fit: cover;
|
||||
border: 2px solid @color-border;
|
||||
border-radius: @input-border-radius;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
border-color: @color-primary;
|
||||
}
|
||||
}
|
||||
|
||||
.header-fields {
|
||||
flex: 1;
|
||||
padding-left: @spacing-medium;
|
||||
}
|
||||
}
|
||||
|
||||
.sheet-body {
|
||||
overflow-y: auto;
|
||||
|
||||
section {
|
||||
margin-bottom: @spacing-large;
|
||||
}
|
||||
}
|
||||
|
||||
// Edit/Play mode toggle
|
||||
.sheet-mode-toggle {
|
||||
position: absolute;
|
||||
top: @spacing-base;
|
||||
right: 80px;
|
||||
z-index: 10;
|
||||
|
||||
button {
|
||||
padding: @spacing-small @spacing-base;
|
||||
font-size: @font-size-small;
|
||||
|
||||
&.active {
|
||||
background: @color-primary;
|
||||
color: @color-text-light;
|
||||
}
|
||||
}
|
||||
}
|
||||
12
modules/applications/sheets/_module.mjs
Normal file
12
modules/applications/sheets/_module.mjs
Normal file
@@ -0,0 +1,12 @@
|
||||
export { default as HawkmoonTalentSheet } from "./talent-sheet.mjs"
|
||||
export { default as HawkmoonCompetenceSheet } from "./competence-sheet.mjs"
|
||||
export { default as HawkmoonArmeSheet } from "./arme-sheet.mjs"
|
||||
export { default as HawkmoonProtectionSheet } from "./protection-sheet.mjs"
|
||||
export { default as HawkmoonHistoriqueSheet } from "./historique-sheet.mjs"
|
||||
export { default as HawkmoonProfilSheet } from "./profil-sheet.mjs"
|
||||
export { default as HawkmoonEquipementSheet } from "./equipement-sheet.mjs"
|
||||
export { default as HawkmoonMonnaieSheet } from "./monnaie-sheet.mjs"
|
||||
export { default as HawkmoonArtefactSheet } from "./artefact-sheet.mjs"
|
||||
export { default as HawkmoonRessourceSheet } from "./ressource-sheet.mjs"
|
||||
export { default as HawkmoonContactSheet } from "./contact-sheet.mjs"
|
||||
export { default as HawkmoonMutationSheet } from "./mutation-sheet.mjs"
|
||||
21
modules/applications/sheets/arme-sheet.mjs
Normal file
21
modules/applications/sheets/arme-sheet.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonArmeSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["arme"],
|
||||
position: {
|
||||
width: 640,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["arme-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-arme-sheet.hbs",
|
||||
},
|
||||
}
|
||||
}
|
||||
21
modules/applications/sheets/artefact-sheet.mjs
Normal file
21
modules/applications/sheets/artefact-sheet.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonArtefactSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["artefact"],
|
||||
position: {
|
||||
width: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["artefact-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-artefact-sheet.hbs",
|
||||
},
|
||||
}
|
||||
}
|
||||
379
modules/applications/sheets/base-item-sheet.mjs
Normal file
379
modules/applications/sheets/base-item-sheet.mjs
Normal file
@@ -0,0 +1,379 @@
|
||||
const { HandlebarsApplicationMixin } = foundry.applications.api
|
||||
|
||||
export default class HawkmoonItemSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ItemSheetV2) {
|
||||
/**
|
||||
* Different sheet modes.
|
||||
* @enum {number}
|
||||
*/
|
||||
static SHEET_MODES = { EDIT: 0, PLAY: 1 }
|
||||
|
||||
constructor(options = {}) {
|
||||
super(options)
|
||||
this.#dragDrop = this.#createDragDropHandlers()
|
||||
}
|
||||
|
||||
#dragDrop
|
||||
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["fvtt-hawkmoon-cyd", "item"],
|
||||
position: {
|
||||
width: 620,
|
||||
height: "auto",
|
||||
},
|
||||
form: {
|
||||
submitOnChange: true,
|
||||
},
|
||||
window: {
|
||||
resizable: true,
|
||||
},
|
||||
tabs: [
|
||||
{
|
||||
navSelector: 'nav[data-group="primary"]',
|
||||
contentSelector: "section.sheet-body",
|
||||
initial: "description",
|
||||
},
|
||||
],
|
||||
dragDrop: [{ dragSelector: "[data-drag]", dropSelector: null }],
|
||||
actions: {
|
||||
toggleSheet: HawkmoonItemSheet.#onToggleSheet,
|
||||
editImage: HawkmoonItemSheet.#onEditImage,
|
||||
postItem: HawkmoonItemSheet.#onPostItem,
|
||||
addPredilection: HawkmoonItemSheet.#onAddPredilection,
|
||||
deletePredilection: HawkmoonItemSheet.#onDeletePredilection,
|
||||
addAutomation: HawkmoonItemSheet.#onAddAutomation,
|
||||
deleteAutomation: HawkmoonItemSheet.#onDeleteAutomation,
|
||||
},
|
||||
}
|
||||
|
||||
/**
|
||||
* The current sheet mode.
|
||||
* @type {number}
|
||||
*/
|
||||
_sheetMode = this.constructor.SHEET_MODES.PLAY
|
||||
|
||||
/**
|
||||
* Tab groups state
|
||||
* @type {object}
|
||||
*/
|
||||
tabGroups = { primary: "description" }
|
||||
|
||||
/**
|
||||
* Is the sheet currently in 'Play' mode?
|
||||
* @type {boolean}
|
||||
*/
|
||||
get isPlayMode() {
|
||||
return this._sheetMode === this.constructor.SHEET_MODES.PLAY
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the sheet currently in 'Edit' mode?
|
||||
* @type {boolean}
|
||||
*/
|
||||
get isEditMode() {
|
||||
return this._sheetMode === this.constructor.SHEET_MODES.EDIT
|
||||
}
|
||||
|
||||
/** @override */
|
||||
async _prepareContext() {
|
||||
const context = {
|
||||
fields: this.document.schema.fields,
|
||||
systemFields: this.document.system.schema.fields,
|
||||
item: this.document,
|
||||
system: this.document.system,
|
||||
source: this.document.toObject(),
|
||||
enrichedDescription: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true }),
|
||||
isEditMode: this.isEditMode,
|
||||
isPlayMode: this.isPlayMode,
|
||||
isEditable: this.isEditable,
|
||||
isGM: game.user.isGM,
|
||||
config: CONFIG.HAWKMOON,
|
||||
attributs: this.#getAttributs(),
|
||||
}
|
||||
return context
|
||||
}
|
||||
|
||||
/** @override */
|
||||
_onRender(context, options) {
|
||||
super._onRender(context, options)
|
||||
this.#dragDrop.forEach((d) => d.bind(this.element))
|
||||
|
||||
// Activate tab navigation manually
|
||||
const nav = this.element.querySelector('nav.tabs[data-group]')
|
||||
if (nav) {
|
||||
const group = nav.dataset.group
|
||||
// Activate the current tab
|
||||
const activeTab = this.tabGroups[group] || "description"
|
||||
nav.querySelectorAll('[data-tab]').forEach(link => {
|
||||
const tab = link.dataset.tab
|
||||
link.classList.toggle('active', tab === activeTab)
|
||||
link.addEventListener('click', (event) => {
|
||||
event.preventDefault()
|
||||
this.tabGroups[group] = tab
|
||||
this.render()
|
||||
})
|
||||
})
|
||||
|
||||
// Show/hide tab content
|
||||
this.element.querySelectorAll('[data-group="' + group + '"][data-tab]').forEach(content => {
|
||||
content.classList.toggle('active', content.dataset.tab === activeTab)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// #region Drag-and-Drop Workflow
|
||||
/**
|
||||
* Create drag-and-drop workflow handlers for this Application
|
||||
* @returns {DragDrop[]} An array of DragDrop handlers
|
||||
* @private
|
||||
*/
|
||||
#createDragDropHandlers() {
|
||||
return this.options.dragDrop.map((d) => {
|
||||
d.permissions = {
|
||||
dragstart: this._canDragStart.bind(this),
|
||||
drop: this._canDragDrop.bind(this),
|
||||
}
|
||||
d.callbacks = {
|
||||
dragstart: this._onDragStart.bind(this),
|
||||
dragover: this._onDragOver.bind(this),
|
||||
drop: this._onDrop.bind(this),
|
||||
}
|
||||
return new foundry.applications.ux.DragDrop.implementation(d)
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Can the User start a drag workflow for a given drag selector?
|
||||
* @param {string} selector The candidate HTML selector for the drag event
|
||||
* @returns {boolean} Can the current user drag this selector?
|
||||
* @protected
|
||||
*/
|
||||
_canDragStart(selector) {
|
||||
return this.isEditable
|
||||
}
|
||||
|
||||
/**
|
||||
* Can the User drop an entry at a given drop selector?
|
||||
* @param {string} selector The candidate HTML selector for the drop event
|
||||
* @returns {boolean} Can the current user drop on this selector?
|
||||
* @protected
|
||||
*/
|
||||
_canDragDrop(selector) {
|
||||
return this.isEditable
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for dragstart events.
|
||||
* @param {DragEvent} event The drag start event
|
||||
* @protected
|
||||
*/
|
||||
_onDragStart(event) {
|
||||
const target = event.currentTarget
|
||||
const dragData = { type: "Item", uuid: this.document.uuid }
|
||||
event.dataTransfer.setData("text/plain", JSON.stringify(dragData))
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for dragover events.
|
||||
* @param {DragEvent} event The drag over event
|
||||
* @protected
|
||||
*/
|
||||
_onDragOver(event) {
|
||||
// Default behavior is fine
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for drop events.
|
||||
* @param {DragEvent} event The drop event
|
||||
* @protected
|
||||
*/
|
||||
async _onDrop(event) {
|
||||
const data = TextEditor.getDragEventData(event)
|
||||
const item = await fromUuid(data.uuid)
|
||||
if (!item) return
|
||||
|
||||
// Handle drop logic here if needed
|
||||
console.log("Item dropped:", item)
|
||||
}
|
||||
// #endregion
|
||||
|
||||
// #region Action Handlers
|
||||
/**
|
||||
* Toggle between Edit and Play mode
|
||||
* @param {Event} event The triggering event
|
||||
* @param {HTMLElement} target The target element
|
||||
* @private
|
||||
*/
|
||||
static #onToggleSheet(event, target) {
|
||||
this._sheetMode = this.isEditMode ? this.constructor.SHEET_MODES.PLAY : this.constructor.SHEET_MODES.EDIT
|
||||
this.render()
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit the item image
|
||||
* @param {Event} event The triggering event
|
||||
* @param {HTMLElement} target The target element
|
||||
* @private
|
||||
*/
|
||||
static async #onEditImage(event, target) {
|
||||
const fp = new foundry.applications.ui.FilePicker({
|
||||
type: "image",
|
||||
current: this.document.img,
|
||||
callback: (path) => {
|
||||
this.document.update({ img: path })
|
||||
},
|
||||
})
|
||||
return fp.browse()
|
||||
}
|
||||
|
||||
/**
|
||||
* Post item to chat
|
||||
* @param {Event} event The triggering event
|
||||
* @param {HTMLElement} target The target element
|
||||
* @private
|
||||
*/
|
||||
static async #onPostItem(event, target) {
|
||||
let chatData = foundry.utils.duplicate(this.document)
|
||||
if (this.document.actor) {
|
||||
chatData.actor = { id: this.document.actor.id }
|
||||
}
|
||||
// Don't post any image for the item if the default image is used
|
||||
if (chatData.img.includes("/blank.png")) {
|
||||
chatData.img = null
|
||||
}
|
||||
// JSON object for easy creation
|
||||
chatData.jsondata = JSON.stringify({
|
||||
compendium: "postedItem",
|
||||
payload: chatData,
|
||||
})
|
||||
|
||||
const html = await renderTemplate('systems/fvtt-hawkmoon-cyd/templates/post-item.hbs', chatData)
|
||||
const chatOptions = {
|
||||
user: game.user.id,
|
||||
content: html,
|
||||
}
|
||||
ChatMessage.create(chatOptions)
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a predilection
|
||||
* @param {Event} event The triggering event
|
||||
* @param {HTMLElement} target The target element
|
||||
* @private
|
||||
*/
|
||||
static async #onAddPredilection(event, target) {
|
||||
let pred = foundry.utils.duplicate(this.document.system.predilections || [])
|
||||
pred.push({ name: "Nouvelle prédilection", id: foundry.utils.randomID(16), used: false, acquise: false, maitrise: false, description: "" })
|
||||
await this.document.update({ 'system.predilections': pred })
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a predilection
|
||||
* @param {Event} event The triggering event
|
||||
* @param {HTMLElement} target The target element
|
||||
* @private
|
||||
*/
|
||||
static async #onDeletePredilection(event, target) {
|
||||
const index = parseInt(target.closest("[data-predilection-index]").dataset.predilectionIndex)
|
||||
let pred = foundry.utils.duplicate(this.document.system.predilections)
|
||||
pred.splice(index, 1)
|
||||
await this.document.update({ 'system.predilections': pred })
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an automation
|
||||
* @param {Event} event The triggering event
|
||||
* @param {HTMLElement} target The target element
|
||||
* @private
|
||||
*/
|
||||
static async #onAddAutomation(event, target) {
|
||||
let autom = foundry.utils.duplicate(this.document.system.automations || [])
|
||||
autom.push({
|
||||
eventtype: "on-drop",
|
||||
name: "Automatisation 1",
|
||||
bonusname: "vigueur",
|
||||
bonus: 0,
|
||||
competence: "",
|
||||
minLevel: 0,
|
||||
baCost: 0,
|
||||
id: foundry.utils.randomID(16)
|
||||
})
|
||||
await this.document.update({ 'system.automations': autom })
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete an automation
|
||||
* @param {Event} event The triggering event
|
||||
* @param {HTMLElement} target The target element
|
||||
* @private
|
||||
*/
|
||||
static async #onDeleteAutomation(event, target) {
|
||||
const index = parseInt(target.closest("[data-automation-index]").dataset.automationIndex)
|
||||
let autom = foundry.utils.duplicate(this.document.system.automations)
|
||||
autom.splice(index, 1)
|
||||
await this.document.update({ 'system.automations': autom })
|
||||
}
|
||||
// #endregion
|
||||
|
||||
// #region Helper Methods
|
||||
/**
|
||||
* Get list of attributs
|
||||
* @returns {Object}
|
||||
* @private
|
||||
*/
|
||||
#getAttributs() {
|
||||
return {
|
||||
"adr": "Adresse",
|
||||
"pui": "Puissance",
|
||||
"cla": "Clairvoyance",
|
||||
"pre": "Présence",
|
||||
"tre": "Trempe"
|
||||
}
|
||||
}
|
||||
// #endregion
|
||||
|
||||
/** @override */
|
||||
_onChangeForm(formConfig, event) {
|
||||
// Handle special form changes
|
||||
const target = event.target
|
||||
|
||||
// Handle predilection field changes
|
||||
if (target.classList.contains('edit-predilection') ||
|
||||
target.classList.contains('edit-predilection-description') ||
|
||||
target.classList.contains('predilection-acquise') ||
|
||||
target.classList.contains('predilection-maitrise') ||
|
||||
target.classList.contains('predilection-used')) {
|
||||
const li = target.closest('.prediction-item')
|
||||
if (li) {
|
||||
const index = parseInt(li.dataset.predictionIndex)
|
||||
const field = target.classList.contains('edit-predilection') ? 'name' :
|
||||
target.classList.contains('edit-predilection-description') ? 'description' :
|
||||
target.classList.contains('predilection-acquise') ? 'acquise' :
|
||||
target.classList.contains('predilection-maitrise') ? 'maitrise' : 'used'
|
||||
|
||||
let pred = foundry.utils.duplicate(this.document.system.predilections)
|
||||
if (target.type === 'checkbox') {
|
||||
pred[index][field] = target.checked
|
||||
} else {
|
||||
pred[index][field] = target.value
|
||||
}
|
||||
pred[index].id = pred[index].id || foundry.utils.randomID(16)
|
||||
this.document.update({ 'system.predilections': pred })
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Handle automation field changes
|
||||
if (target.classList.contains('automation-edit-field')) {
|
||||
const index = parseInt(target.dataset.automationIndex)
|
||||
const field = target.dataset.automationField
|
||||
let auto = foundry.utils.duplicate(this.document.system.automations)
|
||||
auto[index][field] = target.value
|
||||
auto[index].id = auto[index].id || foundry.utils.randomID(16)
|
||||
this.document.update({ 'system.automations': auto })
|
||||
return
|
||||
}
|
||||
|
||||
super._onChangeForm(formConfig, event)
|
||||
}
|
||||
}
|
||||
21
modules/applications/sheets/competence-sheet.mjs
Normal file
21
modules/applications/sheets/competence-sheet.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonCompetenceSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["competence"],
|
||||
position: {
|
||||
width: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["competence-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-competence-sheet.hbs",
|
||||
},
|
||||
}
|
||||
}
|
||||
21
modules/applications/sheets/contact-sheet.mjs
Normal file
21
modules/applications/sheets/contact-sheet.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonContactSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["contact"],
|
||||
position: {
|
||||
width: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["contact-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-contact-sheet.hbs",
|
||||
},
|
||||
}
|
||||
}
|
||||
21
modules/applications/sheets/equipement-sheet.mjs
Normal file
21
modules/applications/sheets/equipement-sheet.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonEquipementSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["equipement"],
|
||||
position: {
|
||||
width: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["equipement-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-equipement-sheet.hbs",
|
||||
},
|
||||
}
|
||||
}
|
||||
21
modules/applications/sheets/historique-sheet.mjs
Normal file
21
modules/applications/sheets/historique-sheet.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonHistoriqueSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["historique"],
|
||||
position: {
|
||||
width: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["historique-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-historique-sheet.hbs",
|
||||
},
|
||||
}
|
||||
}
|
||||
21
modules/applications/sheets/monnaie-sheet.mjs
Normal file
21
modules/applications/sheets/monnaie-sheet.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonMonnaieSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["monnaie"],
|
||||
position: {
|
||||
width: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["monnaie-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-monnaie-sheet.hbs",
|
||||
},
|
||||
}
|
||||
}
|
||||
21
modules/applications/sheets/mutation-sheet.mjs
Normal file
21
modules/applications/sheets/mutation-sheet.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonMutationSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["mutation"],
|
||||
position: {
|
||||
width: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["mutation-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-mutation-sheet.hbs",
|
||||
},
|
||||
}
|
||||
}
|
||||
21
modules/applications/sheets/profil-sheet.mjs
Normal file
21
modules/applications/sheets/profil-sheet.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonProfilSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["profil"],
|
||||
position: {
|
||||
width: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["profil-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-profil-sheet.hbs",
|
||||
},
|
||||
}
|
||||
}
|
||||
21
modules/applications/sheets/protection-sheet.mjs
Normal file
21
modules/applications/sheets/protection-sheet.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonProtectionSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["protection"],
|
||||
position: {
|
||||
width: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["protection-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-protection-sheet.hbs",
|
||||
},
|
||||
}
|
||||
}
|
||||
21
modules/applications/sheets/ressource-sheet.mjs
Normal file
21
modules/applications/sheets/ressource-sheet.mjs
Normal file
@@ -0,0 +1,21 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonRessourceSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["ressource"],
|
||||
position: {
|
||||
width: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["ressource-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-ressource-sheet.hbs",
|
||||
},
|
||||
}
|
||||
}
|
||||
51
modules/applications/sheets/talent-sheet.mjs
Normal file
51
modules/applications/sheets/talent-sheet.mjs
Normal file
@@ -0,0 +1,51 @@
|
||||
import HawkmoonItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class HawkmoonTalentSheet extends HawkmoonItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["talent"],
|
||||
position: {
|
||||
width: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["talent-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-talent-sheet.hbs",
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
tabGroups = {
|
||||
primary: "description",
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare an array of form header tabs.
|
||||
* @returns {Record<string, Partial<ApplicationTab>>}
|
||||
*/
|
||||
#getTabs() {
|
||||
const tabs = {
|
||||
details: { id: "details", group: "primary", label: "Détails" },
|
||||
description: { id: "description", group: "primary", label: "Description" }
|
||||
}
|
||||
for (const v of Object.values(tabs)) {
|
||||
v.active = this.tabGroups[v.group] === v.id
|
||||
v.cssClass = v.active ? "active" : ""
|
||||
}
|
||||
return tabs
|
||||
}
|
||||
|
||||
/** @override */
|
||||
async _prepareContext() {
|
||||
const context = await super._prepareContext()
|
||||
context.tabs = this.#getTabs()
|
||||
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
|
||||
return context
|
||||
}
|
||||
|
||||
}
|
||||
@@ -20,6 +20,12 @@ import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
||||
import { HawkmoonTokenHud } from "./hawkmoon-hud.js";
|
||||
import { HAWKMOON_CONFIG } from "./hawkmoon-config.js";
|
||||
|
||||
// Import DataModels
|
||||
import * as models from "./models/index.mjs";
|
||||
|
||||
// Import AppV2 Item Sheets
|
||||
import * as sheets from "./applications/sheets/_module.mjs";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* Foundry VTT Initialization */
|
||||
/* -------------------------------------------- */
|
||||
@@ -48,22 +54,59 @@ Hooks.once("init", async function () {
|
||||
// Define custom Entity classes
|
||||
CONFIG.Combat.documentClass = HawkmoonCombat
|
||||
CONFIG.Actor.documentClass = HawkmoonActor
|
||||
CONFIG.Actor.dataModels = {
|
||||
personnage: models.PersonnageDataModel,
|
||||
cellule: models.CelluleDataModel,
|
||||
creature: models.CreatureDataModel
|
||||
}
|
||||
|
||||
CONFIG.Item.documentClass = HawkmoonItem
|
||||
CONFIG.Item.dataModels = {
|
||||
talent: models.TalentDataModel,
|
||||
historique: models.HistoriqueDataModel,
|
||||
profil: models.ProfilDataModel,
|
||||
competence: models.CompetenceDataModel,
|
||||
arme: models.ArmeDataModel,
|
||||
protection: models.ProtectionDataModel,
|
||||
monnaie: models.MonnaieDataModel,
|
||||
equipement: models.EquipementDataModel,
|
||||
artefact: models.ArtefactDataModel,
|
||||
ressource: models.RessourceDataModel,
|
||||
contact: models.ContactDataModel,
|
||||
mutation: models.MutationDataModel
|
||||
}
|
||||
|
||||
CONFIG.HAWKMOON = HAWKMOON_CONFIG
|
||||
|
||||
game.system.hawkmoon = {
|
||||
HawkmoonUtility,
|
||||
HawkmoonAutomation,
|
||||
config : HAWKMOON_CONFIG
|
||||
config: HAWKMOON_CONFIG,
|
||||
models,
|
||||
sheets
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Regster sheet application classes
|
||||
// Register sheet application classes
|
||||
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
||||
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonActorSheet, { types: ["personnage"], makeDefault: true })
|
||||
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCreatureSheet, { types: ["creature"], makeDefault: true })
|
||||
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCelluleSheet, { types: ["cellule"], makeDefault: true });
|
||||
|
||||
// Register AppV2 Item Sheets
|
||||
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", HawkmoonItemSheet, { makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonTalentSheet, { types: ["talent"], makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonCompetenceSheet, { types: ["competence"], makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonArmeSheet, { types: ["arme"], makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonProtectionSheet, { types: ["protection"], makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonHistoriqueSheet, { types: ["historique"], makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonProfilSheet, { types: ["profil"], makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonEquipementSheet, { types: ["equipement"], makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonMonnaieSheet, { types: ["monnaie"], makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonArtefactSheet, { types: ["artefact"], makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonRessourceSheet, { types: ["ressource"], makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonContactSheet, { types: ["contact"], makeDefault: true })
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", sheets.HawkmoonMutationSheet, { types: ["mutation"], makeDefault: true })
|
||||
|
||||
HawkmoonUtility.init()
|
||||
HawkmoonAutomation.init()
|
||||
@@ -113,10 +156,10 @@ Hooks.once("ready", function () {
|
||||
});
|
||||
}
|
||||
|
||||
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
|
||||
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter => {
|
||||
console.log("ClassCounter loaded", moduleCounter)
|
||||
moduleCounter.ClassCounter.registerUsageCount()
|
||||
}).catch(err=>
|
||||
}).catch(err =>
|
||||
console.log("No stats available, giving up.")
|
||||
)
|
||||
|
||||
|
||||
@@ -206,11 +206,11 @@ export class HawkmoonUtility {
|
||||
|
||||
const templatePaths = [
|
||||
'systems/fvtt-hawkmoon-cyd/templates/editor-notes-gm.html',
|
||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-header.html',
|
||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-description.html',
|
||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-nav.html',
|
||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-prix.html',
|
||||
'systems/fvtt-hawkmoon-cyd/templates/partial-automation.html',
|
||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-header.hbs',
|
||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-description.hbs',
|
||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-nav.hbs',
|
||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-prix.hbs',
|
||||
'systems/fvtt-hawkmoon-cyd/templates/partial-automation.hbs',
|
||||
'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html',
|
||||
]
|
||||
return foundry.applications.handlebars.loadTemplates(templatePaths);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les armes
|
||||
*/
|
||||
export class ArmeDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class ArmeDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les artefacts
|
||||
*/
|
||||
export class ArtefactDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class ArtefactDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les cellules
|
||||
*/
|
||||
export class CelluleDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class CelluleDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les compétences
|
||||
*/
|
||||
export class CompetenceDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class CompetenceDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les contacts
|
||||
*/
|
||||
export class ContactDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class ContactDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les créatures
|
||||
*/
|
||||
export class CreatureDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class CreatureDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour l'équipement
|
||||
*/
|
||||
export class EquipementDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class EquipementDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les historiques
|
||||
*/
|
||||
export class HistoriqueDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class HistoriqueDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -4,23 +4,20 @@
|
||||
*/
|
||||
|
||||
// Modèles d'items
|
||||
export { TalentDataModel } from './talent.mjs';
|
||||
export { HistoriqueDataModel } from './historique.mjs';
|
||||
export { ProfilDataModel } from './profil.mjs';
|
||||
export { CompetenceDataModel } from './competence.mjs';
|
||||
export { ArmeDataModel } from './arme.mjs';
|
||||
export { ProtectionDataModel } from './protection.mjs';
|
||||
export { MonnaieDataModel } from './monnaie.mjs';
|
||||
export { EquipementDataModel } from './equipement.mjs';
|
||||
export { ArtefactDataModel } from './artefact.mjs';
|
||||
export { RessourceDataModel } from './ressource.mjs';
|
||||
export { ContactDataModel } from './contact.mjs';
|
||||
export { MutationDataModel } from './mutation.mjs';
|
||||
export { default as TalentDataModel } from './talent.mjs';
|
||||
export { default as HistoriqueDataModel } from './historique.mjs';
|
||||
export { default as ProfilDataModel } from './profil.mjs';
|
||||
export { default as CompetenceDataModel } from './competence.mjs';
|
||||
export { default as ArmeDataModel } from './arme.mjs';
|
||||
export { default as ProtectionDataModel } from './protection.mjs';
|
||||
export { default as MonnaieDataModel } from './monnaie.mjs';
|
||||
export { default as EquipementDataModel } from './equipement.mjs';
|
||||
export { default as ArtefactDataModel } from './artefact.mjs';
|
||||
export { default as RessourceDataModel } from './ressource.mjs';
|
||||
export { default as ContactDataModel } from './contact.mjs';
|
||||
export { default as MutationDataModel } from './mutation.mjs';
|
||||
|
||||
// Modèles d'acteurs
|
||||
export { PersonnageDataModel } from './personnage.mjs';
|
||||
export { CelluleDataModel } from './cellule.mjs';
|
||||
export { CreatureDataModel } from './creature.mjs';
|
||||
|
||||
// Templates de base (si nécessaire pour extension)
|
||||
export { BaseItemModel, BaseEquipItemModel, AutomationItemModel } from './base-item.mjs';
|
||||
export { default as PersonnageDataModel } from './personnage.mjs';
|
||||
export { default as CelluleDataModel } from './cellule.mjs';
|
||||
export { default as CreatureDataModel } from './creature.mjs';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les monnaies
|
||||
*/
|
||||
export class MonnaieDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class MonnaieDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les mutations
|
||||
*/
|
||||
export class MutationDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class MutationDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les personnages
|
||||
*/
|
||||
export class PersonnageDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class PersonnageDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les profils
|
||||
*/
|
||||
export class ProfilDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class ProfilDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les protections
|
||||
*/
|
||||
export class ProtectionDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class ProtectionDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les ressources
|
||||
*/
|
||||
export class RessourceDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class RessourceDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Data model pour les talents
|
||||
*/
|
||||
export class TalentDataModel extends foundry.abstract.TypeDataModel {
|
||||
export default class TalentDataModel extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
return {
|
||||
|
||||
@@ -1 +1 @@
|
||||
MANIFEST-000333
|
||||
MANIFEST-000349
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2026/01/05-22:20:56.155164 7f93eb7fe6c0 Recovering log #331
|
||||
2026/01/05-22:20:56.166270 7f93eb7fe6c0 Delete type=3 #329
|
||||
2026/01/05-22:20:56.166327 7f93eb7fe6c0 Delete type=0 #331
|
||||
2026/01/05-22:39:51.165703 7f93e9ffb6c0 Level-0 table #336: started
|
||||
2026/01/05-22:39:51.165730 7f93e9ffb6c0 Level-0 table #336: 0 bytes OK
|
||||
2026/01/05-22:39:51.171765 7f93e9ffb6c0 Delete type=0 #334
|
||||
2026/01/05-22:39:51.199079 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||
2026/01/05-22:39:51.199117 7f93e9ffb6c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:51:42.969110 7f93eaffd6c0 Recovering log #347
|
||||
2026/01/06-08:51:42.979018 7f93eaffd6c0 Delete type=3 #345
|
||||
2026/01/06-08:51:42.979076 7f93eaffd6c0 Delete type=0 #347
|
||||
2026/01/06-16:09:35.226231 7f93e9ffb6c0 Level-0 table #352: started
|
||||
2026/01/06-16:09:35.226274 7f93e9ffb6c0 Level-0 table #352: 0 bytes OK
|
||||
2026/01/06-16:09:35.266431 7f93e9ffb6c0 Delete type=0 #350
|
||||
2026/01/06-16:09:35.363828 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-16:09:35.363849 7f93e9ffb6c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2025/11/21-21:17:11.288531 7f34ccff96c0 Recovering log #327
|
||||
2025/11/21-21:17:11.303357 7f34ccff96c0 Delete type=3 #325
|
||||
2025/11/21-21:17:11.303441 7f34ccff96c0 Delete type=0 #327
|
||||
2025/11/21-21:20:34.182000 7f322ffff6c0 Level-0 table #332: started
|
||||
2025/11/21-21:20:34.182040 7f322ffff6c0 Level-0 table #332: 0 bytes OK
|
||||
2025/11/21-21:20:34.189103 7f322ffff6c0 Delete type=0 #330
|
||||
2025/11/21-21:20:34.199156 7f322ffff6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||
2025/11/21-21:20:34.220809 7f322ffff6c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:47:47.731237 7f93eaffd6c0 Recovering log #343
|
||||
2026/01/06-08:47:47.748574 7f93eaffd6c0 Delete type=3 #341
|
||||
2026/01/06-08:47:47.748681 7f93eaffd6c0 Delete type=0 #343
|
||||
2026/01/06-08:50:51.064497 7f93e9ffb6c0 Level-0 table #348: started
|
||||
2026/01/06-08:50:51.064533 7f93e9ffb6c0 Level-0 table #348: 0 bytes OK
|
||||
2026/01/06-08:50:51.071294 7f93e9ffb6c0 Delete type=0 #346
|
||||
2026/01/06-08:50:51.077656 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:50:51.077786 7f93e9ffb6c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000332
|
||||
MANIFEST-000348
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2026/01/05-22:20:56.048400 7f93eaffd6c0 Recovering log #330
|
||||
2026/01/05-22:20:56.058614 7f93eaffd6c0 Delete type=3 #328
|
||||
2026/01/05-22:20:56.058678 7f93eaffd6c0 Delete type=0 #330
|
||||
2026/01/05-22:39:51.125881 7f93e9ffb6c0 Level-0 table #335: started
|
||||
2026/01/05-22:39:51.125907 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||
2026/01/05-22:39:51.131746 7f93e9ffb6c0 Delete type=0 #333
|
||||
2026/01/05-22:39:51.137885 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||
2026/01/05-22:39:51.137919 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:51:42.867692 7f93eb7fe6c0 Recovering log #346
|
||||
2026/01/06-08:51:42.877316 7f93eb7fe6c0 Delete type=3 #344
|
||||
2026/01/06-08:51:42.877391 7f93eb7fe6c0 Delete type=0 #346
|
||||
2026/01/06-16:09:34.742312 7f93e9ffb6c0 Level-0 table #351: started
|
||||
2026/01/06-16:09:34.742344 7f93e9ffb6c0 Level-0 table #351: 0 bytes OK
|
||||
2026/01/06-16:09:34.776378 7f93e9ffb6c0 Delete type=0 #349
|
||||
2026/01/06-16:09:34.843192 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-16:09:34.843219 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2025/11/21-21:17:11.119952 7f34cd7fa6c0 Recovering log #326
|
||||
2025/11/21-21:17:11.135840 7f34cd7fa6c0 Delete type=3 #324
|
||||
2025/11/21-21:17:11.135940 7f34cd7fa6c0 Delete type=0 #326
|
||||
2025/11/21-21:20:34.115063 7f322ffff6c0 Level-0 table #331: started
|
||||
2025/11/21-21:20:34.115090 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||
2025/11/21-21:20:34.121038 7f322ffff6c0 Delete type=0 #329
|
||||
2025/11/21-21:20:34.121241 7f322ffff6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||
2025/11/21-21:20:34.121271 7f322ffff6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:47:47.583230 7f93ebfff6c0 Recovering log #342
|
||||
2026/01/06-08:47:47.597749 7f93ebfff6c0 Delete type=3 #340
|
||||
2026/01/06-08:47:47.597804 7f93ebfff6c0 Delete type=0 #342
|
||||
2026/01/06-08:50:51.011547 7f93e9ffb6c0 Level-0 table #347: started
|
||||
2026/01/06-08:50:51.011573 7f93e9ffb6c0 Level-0 table #347: 0 bytes OK
|
||||
2026/01/06-08:50:51.018121 7f93e9ffb6c0 Delete type=0 #345
|
||||
2026/01/06-08:50:51.024541 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:50:51.024585 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000332
|
||||
MANIFEST-000348
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2026/01/05-22:20:56.023009 7f93eb7fe6c0 Recovering log #330
|
||||
2026/01/05-22:20:56.032779 7f93eb7fe6c0 Delete type=3 #328
|
||||
2026/01/05-22:20:56.032853 7f93eb7fe6c0 Delete type=0 #330
|
||||
2026/01/05-22:39:51.087705 7f93e9ffb6c0 Level-0 table #335: started
|
||||
2026/01/05-22:39:51.087797 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||
2026/01/05-22:39:51.094096 7f93e9ffb6c0 Delete type=0 #333
|
||||
2026/01/05-22:39:51.112531 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||
2026/01/05-22:39:51.112576 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:51:42.843104 7f93ea7fc6c0 Recovering log #346
|
||||
2026/01/06-08:51:42.853684 7f93ea7fc6c0 Delete type=3 #344
|
||||
2026/01/06-08:51:42.853733 7f93ea7fc6c0 Delete type=0 #346
|
||||
2026/01/06-16:09:34.776538 7f93e9ffb6c0 Level-0 table #351: started
|
||||
2026/01/06-16:09:34.776572 7f93e9ffb6c0 Level-0 table #351: 0 bytes OK
|
||||
2026/01/06-16:09:34.805072 7f93e9ffb6c0 Delete type=0 #349
|
||||
2026/01/06-16:09:34.843202 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-16:09:34.843241 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2025/11/21-21:17:11.082663 7f34ccff96c0 Recovering log #326
|
||||
2025/11/21-21:17:11.097415 7f34ccff96c0 Delete type=3 #324
|
||||
2025/11/21-21:17:11.097522 7f34ccff96c0 Delete type=0 #326
|
||||
2025/11/21-21:20:34.082672 7f322ffff6c0 Level-0 table #331: started
|
||||
2025/11/21-21:20:34.082698 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||
2025/11/21-21:20:34.088631 7f322ffff6c0 Delete type=0 #329
|
||||
2025/11/21-21:20:34.094927 7f322ffff6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||
2025/11/21-21:20:34.094971 7f322ffff6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:47:47.547301 7f93ea7fc6c0 Recovering log #342
|
||||
2026/01/06-08:47:47.562777 7f93ea7fc6c0 Delete type=3 #340
|
||||
2026/01/06-08:47:47.562845 7f93ea7fc6c0 Delete type=0 #342
|
||||
2026/01/06-08:50:50.979616 7f93e9ffb6c0 Level-0 table #347: started
|
||||
2026/01/06-08:50:50.979656 7f93e9ffb6c0 Level-0 table #347: 0 bytes OK
|
||||
2026/01/06-08:50:50.986028 7f93e9ffb6c0 Delete type=0 #345
|
||||
2026/01/06-08:50:50.999008 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:50:50.999044 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000332
|
||||
MANIFEST-000348
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2026/01/05-22:20:55.998572 7f93ea7fc6c0 Recovering log #330
|
||||
2026/01/05-22:20:56.008503 7f93ea7fc6c0 Delete type=3 #328
|
||||
2026/01/05-22:20:56.008556 7f93ea7fc6c0 Delete type=0 #330
|
||||
2026/01/05-22:39:51.100430 7f93e9ffb6c0 Level-0 table #335: started
|
||||
2026/01/05-22:39:51.100453 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||
2026/01/05-22:39:51.106283 7f93e9ffb6c0 Delete type=0 #333
|
||||
2026/01/05-22:39:51.112557 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||
2026/01/05-22:39:51.112589 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:51:42.818447 7f93eb7fe6c0 Recovering log #346
|
||||
2026/01/06-08:51:42.829009 7f93eb7fe6c0 Delete type=3 #344
|
||||
2026/01/06-08:51:42.829068 7f93eb7fe6c0 Delete type=0 #346
|
||||
2026/01/06-16:09:34.705519 7f93e9ffb6c0 Level-0 table #351: started
|
||||
2026/01/06-16:09:34.705598 7f93e9ffb6c0 Level-0 table #351: 0 bytes OK
|
||||
2026/01/06-16:09:34.742153 7f93e9ffb6c0 Delete type=0 #349
|
||||
2026/01/06-16:09:34.843178 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-16:09:34.843227 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2025/11/21-21:17:11.044217 7f34ce7fc6c0 Recovering log #326
|
||||
2025/11/21-21:17:11.059351 7f34ce7fc6c0 Delete type=3 #324
|
||||
2025/11/21-21:17:11.059409 7f34ce7fc6c0 Delete type=0 #326
|
||||
2025/11/21-21:20:34.076024 7f322ffff6c0 Level-0 table #331: started
|
||||
2025/11/21-21:20:34.076057 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||
2025/11/21-21:20:34.082546 7f322ffff6c0 Delete type=0 #329
|
||||
2025/11/21-21:20:34.094915 7f322ffff6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||
2025/11/21-21:20:34.094962 7f322ffff6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:47:47.509458 7f93eb7fe6c0 Recovering log #342
|
||||
2026/01/06-08:47:47.527407 7f93eb7fe6c0 Delete type=3 #340
|
||||
2026/01/06-08:47:47.527473 7f93eb7fe6c0 Delete type=0 #342
|
||||
2026/01/06-08:50:50.973158 7f93e9ffb6c0 Level-0 table #347: started
|
||||
2026/01/06-08:50:50.973217 7f93e9ffb6c0 Level-0 table #347: 0 bytes OK
|
||||
2026/01/06-08:50:50.979461 7f93e9ffb6c0 Delete type=0 #345
|
||||
2026/01/06-08:50:50.998993 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:50:50.999032 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000332
|
||||
MANIFEST-000348
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2026/01/05-22:20:56.073305 7f93eb7fe6c0 Recovering log #330
|
||||
2026/01/05-22:20:56.084269 7f93eb7fe6c0 Delete type=3 #328
|
||||
2026/01/05-22:20:56.084336 7f93eb7fe6c0 Delete type=0 #330
|
||||
2026/01/05-22:39:51.112726 7f93e9ffb6c0 Level-0 table #335: started
|
||||
2026/01/05-22:39:51.112760 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||
2026/01/05-22:39:51.119133 7f93e9ffb6c0 Delete type=0 #333
|
||||
2026/01/05-22:39:51.137862 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||
2026/01/05-22:39:51.137903 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:51:42.891971 7f93eaffd6c0 Recovering log #346
|
||||
2026/01/06-08:51:42.902249 7f93eaffd6c0 Delete type=3 #344
|
||||
2026/01/06-08:51:42.902316 7f93eaffd6c0 Delete type=0 #346
|
||||
2026/01/06-16:09:34.843339 7f93e9ffb6c0 Level-0 table #351: started
|
||||
2026/01/06-16:09:34.843371 7f93e9ffb6c0 Level-0 table #351: 0 bytes OK
|
||||
2026/01/06-16:09:34.879730 7f93e9ffb6c0 Delete type=0 #349
|
||||
2026/01/06-16:09:35.030293 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-16:09:35.030334 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2025/11/21-21:17:11.157103 7f34ce7fc6c0 Recovering log #326
|
||||
2025/11/21-21:17:11.172875 7f34ce7fc6c0 Delete type=3 #324
|
||||
2025/11/21-21:17:11.172939 7f34ce7fc6c0 Delete type=0 #326
|
||||
2025/11/21-21:20:34.095092 7f322ffff6c0 Level-0 table #331: started
|
||||
2025/11/21-21:20:34.095126 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||
2025/11/21-21:20:34.102295 7f322ffff6c0 Delete type=0 #329
|
||||
2025/11/21-21:20:34.121183 7f322ffff6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||
2025/11/21-21:20:34.121249 7f322ffff6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:47:47.618387 7f93eaffd6c0 Recovering log #342
|
||||
2026/01/06-08:47:47.634155 7f93eaffd6c0 Delete type=3 #340
|
||||
2026/01/06-08:47:47.634258 7f93eaffd6c0 Delete type=0 #342
|
||||
2026/01/06-08:50:51.005416 7f93e9ffb6c0 Level-0 table #347: started
|
||||
2026/01/06-08:50:51.005447 7f93e9ffb6c0 Level-0 table #347: 0 bytes OK
|
||||
2026/01/06-08:50:51.011462 7f93e9ffb6c0 Delete type=0 #345
|
||||
2026/01/06-08:50:51.024529 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:50:51.024571 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000332
|
||||
MANIFEST-000348
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2026/01/05-22:20:56.034759 7f93ea7fc6c0 Recovering log #330
|
||||
2026/01/05-22:20:56.045303 7f93ea7fc6c0 Delete type=3 #328
|
||||
2026/01/05-22:20:56.045387 7f93ea7fc6c0 Delete type=0 #330
|
||||
2026/01/05-22:39:51.094206 7f93e9ffb6c0 Level-0 table #335: started
|
||||
2026/01/05-22:39:51.094228 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||
2026/01/05-22:39:51.100330 7f93e9ffb6c0 Delete type=0 #333
|
||||
2026/01/05-22:39:51.112546 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||
2026/01/05-22:39:51.112583 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:51:42.855440 7f93eaffd6c0 Recovering log #346
|
||||
2026/01/06-08:51:42.865357 7f93eaffd6c0 Delete type=3 #344
|
||||
2026/01/06-08:51:42.865405 7f93eaffd6c0 Delete type=0 #346
|
||||
2026/01/06-16:09:34.990584 7f93e9ffb6c0 Level-0 table #351: started
|
||||
2026/01/06-16:09:34.990612 7f93e9ffb6c0 Level-0 table #351: 0 bytes OK
|
||||
2026/01/06-16:09:35.030140 7f93e9ffb6c0 Delete type=0 #349
|
||||
2026/01/06-16:09:35.030326 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-16:09:35.030340 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2025/11/21-21:17:11.100312 7f34ce7fc6c0 Recovering log #326
|
||||
2025/11/21-21:17:11.117500 7f34ce7fc6c0 Delete type=3 #324
|
||||
2025/11/21-21:17:11.117567 7f34ce7fc6c0 Delete type=0 #326
|
||||
2025/11/21-21:20:34.069446 7f322ffff6c0 Level-0 table #331: started
|
||||
2025/11/21-21:20:34.069505 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||
2025/11/21-21:20:34.075899 7f322ffff6c0 Delete type=0 #329
|
||||
2025/11/21-21:20:34.094892 7f322ffff6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||
2025/11/21-21:20:34.094951 7f322ffff6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:47:47.564985 7f93eb7fe6c0 Recovering log #342
|
||||
2026/01/06-08:47:47.580878 7f93eb7fe6c0 Delete type=3 #340
|
||||
2026/01/06-08:47:47.580952 7f93eb7fe6c0 Delete type=0 #342
|
||||
2026/01/06-08:50:50.986188 7f93e9ffb6c0 Level-0 table #347: started
|
||||
2026/01/06-08:50:50.986224 7f93e9ffb6c0 Level-0 table #347: 0 bytes OK
|
||||
2026/01/06-08:50:50.992304 7f93e9ffb6c0 Delete type=0 #345
|
||||
2026/01/06-08:50:50.999018 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:50:50.999038 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000242
|
||||
MANIFEST-000258
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2026/01/05-22:20:56.010250 7f93eaffd6c0 Recovering log #240
|
||||
2026/01/05-22:20:56.020208 7f93eaffd6c0 Delete type=3 #238
|
||||
2026/01/05-22:20:56.020270 7f93eaffd6c0 Delete type=0 #240
|
||||
2026/01/05-22:39:51.106439 7f93e9ffb6c0 Level-0 table #245: started
|
||||
2026/01/05-22:39:51.106472 7f93e9ffb6c0 Level-0 table #245: 0 bytes OK
|
||||
2026/01/05-22:39:51.112404 7f93e9ffb6c0 Delete type=0 #243
|
||||
2026/01/05-22:39:51.112570 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||
2026/01/05-22:39:51.112598 7f93e9ffb6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:51:42.830647 7f93ebfff6c0 Recovering log #256
|
||||
2026/01/06-08:51:42.840435 7f93ebfff6c0 Delete type=3 #254
|
||||
2026/01/06-08:51:42.840519 7f93ebfff6c0 Delete type=0 #256
|
||||
2026/01/06-16:09:34.805232 7f93e9ffb6c0 Level-0 table #261: started
|
||||
2026/01/06-16:09:34.805271 7f93e9ffb6c0 Level-0 table #261: 0 bytes OK
|
||||
2026/01/06-16:09:34.843002 7f93e9ffb6c0 Delete type=0 #259
|
||||
2026/01/06-16:09:34.843211 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-16:09:34.843234 7f93e9ffb6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2025/11/21-21:17:11.062660 7f34cdffb6c0 Recovering log #236
|
||||
2025/11/21-21:17:11.079663 7f34cdffb6c0 Delete type=3 #234
|
||||
2025/11/21-21:17:11.079731 7f34cdffb6c0 Delete type=0 #236
|
||||
2025/11/21-21:20:34.088817 7f322ffff6c0 Level-0 table #241: started
|
||||
2025/11/21-21:20:34.088856 7f322ffff6c0 Level-0 table #241: 0 bytes OK
|
||||
2025/11/21-21:20:34.094750 7f322ffff6c0 Delete type=0 #239
|
||||
2025/11/21-21:20:34.094940 7f322ffff6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||
2025/11/21-21:20:34.094980 7f322ffff6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:47:47.529585 7f93ebfff6c0 Recovering log #252
|
||||
2026/01/06-08:47:47.544280 7f93ebfff6c0 Delete type=3 #250
|
||||
2026/01/06-08:47:47.544346 7f93ebfff6c0 Delete type=0 #252
|
||||
2026/01/06-08:50:50.992474 7f93e9ffb6c0 Level-0 table #257: started
|
||||
2026/01/06-08:50:50.992510 7f93e9ffb6c0 Level-0 table #257: 0 bytes OK
|
||||
2026/01/06-08:50:50.998885 7f93e9ffb6c0 Delete type=0 #255
|
||||
2026/01/06-08:50:50.999026 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:50:50.999050 7f93e9ffb6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000332
|
||||
MANIFEST-000348
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2026/01/05-22:20:56.088422 7f93eaffd6c0 Recovering log #330
|
||||
2026/01/05-22:20:56.098507 7f93eaffd6c0 Delete type=3 #328
|
||||
2026/01/05-22:20:56.098565 7f93eaffd6c0 Delete type=0 #330
|
||||
2026/01/05-22:39:51.119253 7f93e9ffb6c0 Level-0 table #335: started
|
||||
2026/01/05-22:39:51.119282 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||
2026/01/05-22:39:51.125789 7f93e9ffb6c0 Delete type=0 #333
|
||||
2026/01/05-22:39:51.137875 7f93e9ffb6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||
2026/01/05-22:39:51.137911 7f93e9ffb6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:51:42.904420 7f93ea7fc6c0 Recovering log #346
|
||||
2026/01/06-08:51:42.914401 7f93ea7fc6c0 Delete type=3 #344
|
||||
2026/01/06-08:51:42.914460 7f93ea7fc6c0 Delete type=0 #346
|
||||
2026/01/06-16:09:34.944982 7f93e9ffb6c0 Level-0 table #351: started
|
||||
2026/01/06-16:09:34.945015 7f93e9ffb6c0 Level-0 table #351: 0 bytes OK
|
||||
2026/01/06-16:09:34.990460 7f93e9ffb6c0 Delete type=0 #349
|
||||
2026/01/06-16:09:35.030317 7f93e9ffb6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-16:09:35.030352 7f93e9ffb6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2025/11/21-21:17:11.175622 7f34cd7fa6c0 Recovering log #326
|
||||
2025/11/21-21:17:11.190667 7f34cd7fa6c0 Delete type=3 #324
|
||||
2025/11/21-21:17:11.190757 7f34cd7fa6c0 Delete type=0 #326
|
||||
2025/11/21-21:20:34.109081 7f322ffff6c0 Level-0 table #331: started
|
||||
2025/11/21-21:20:34.109106 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||
2025/11/21-21:20:34.114933 7f322ffff6c0 Delete type=0 #329
|
||||
2025/11/21-21:20:34.121229 7f322ffff6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||
2025/11/21-21:20:34.121264 7f322ffff6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:47:47.638458 7f93eb7fe6c0 Recovering log #342
|
||||
2026/01/06-08:47:47.653642 7f93eb7fe6c0 Delete type=3 #340
|
||||
2026/01/06-08:47:47.653699 7f93eb7fe6c0 Delete type=0 #342
|
||||
2026/01/06-08:50:51.044605 7f93e9ffb6c0 Level-0 table #347: started
|
||||
2026/01/06-08:50:51.044630 7f93e9ffb6c0 Level-0 table #347: 0 bytes OK
|
||||
2026/01/06-08:50:51.051730 7f93e9ffb6c0 Delete type=0 #345
|
||||
2026/01/06-08:50:51.051919 7f93e9ffb6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:50:51.051949 7f93e9ffb6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000332
|
||||
MANIFEST-000348
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2026/01/05-22:20:56.060705 7f93ebfff6c0 Recovering log #330
|
||||
2026/01/05-22:20:56.070672 7f93ebfff6c0 Delete type=3 #328
|
||||
2026/01/05-22:20:56.070726 7f93ebfff6c0 Delete type=0 #330
|
||||
2026/01/05-22:39:51.131859 7f93e9ffb6c0 Level-0 table #335: started
|
||||
2026/01/05-22:39:51.131886 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||
2026/01/05-22:39:51.137774 7f93e9ffb6c0 Delete type=0 #333
|
||||
2026/01/05-22:39:51.137894 7f93e9ffb6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||
2026/01/05-22:39:51.137928 7f93e9ffb6c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:51:42.879502 7f93ebfff6c0 Recovering log #346
|
||||
2026/01/06-08:51:42.890237 7f93ebfff6c0 Delete type=3 #344
|
||||
2026/01/06-08:51:42.890307 7f93ebfff6c0 Delete type=0 #346
|
||||
2026/01/06-16:09:34.879868 7f93e9ffb6c0 Level-0 table #351: started
|
||||
2026/01/06-16:09:34.879907 7f93e9ffb6c0 Level-0 table #351: 0 bytes OK
|
||||
2026/01/06-16:09:34.944833 7f93e9ffb6c0 Delete type=0 #349
|
||||
2026/01/06-16:09:35.030307 7f93e9ffb6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-16:09:35.030345 7f93e9ffb6c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2025/11/21-21:17:11.139151 7f34cdffb6c0 Recovering log #326
|
||||
2025/11/21-21:17:11.154714 7f34cdffb6c0 Delete type=3 #324
|
||||
2025/11/21-21:17:11.154795 7f34cdffb6c0 Delete type=0 #326
|
||||
2025/11/21-21:20:34.102428 7f322ffff6c0 Level-0 table #331: started
|
||||
2025/11/21-21:20:34.102452 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||
2025/11/21-21:20:34.108966 7f322ffff6c0 Delete type=0 #329
|
||||
2025/11/21-21:20:34.121216 7f322ffff6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||
2025/11/21-21:20:34.121256 7f322ffff6c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:47:47.600139 7f93ea7fc6c0 Recovering log #342
|
||||
2026/01/06-08:47:47.616201 7f93ea7fc6c0 Delete type=3 #340
|
||||
2026/01/06-08:47:47.616278 7f93ea7fc6c0 Delete type=0 #342
|
||||
2026/01/06-08:50:50.999146 7f93e9ffb6c0 Level-0 table #347: started
|
||||
2026/01/06-08:50:50.999191 7f93e9ffb6c0 Level-0 table #347: 0 bytes OK
|
||||
2026/01/06-08:50:51.005300 7f93e9ffb6c0 Delete type=0 #345
|
||||
2026/01/06-08:50:51.024514 7f93e9ffb6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:50:51.024562 7f93e9ffb6c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000171
|
||||
MANIFEST-000187
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2026/01/05-22:20:56.140241 7f93ea7fc6c0 Recovering log #169
|
||||
2026/01/05-22:20:56.150593 7f93ea7fc6c0 Delete type=3 #167
|
||||
2026/01/05-22:20:56.150657 7f93ea7fc6c0 Delete type=0 #169
|
||||
2026/01/05-22:39:51.158340 7f93e9ffb6c0 Level-0 table #174: started
|
||||
2026/01/05-22:39:51.158381 7f93e9ffb6c0 Level-0 table #174: 0 bytes OK
|
||||
2026/01/05-22:39:51.165430 7f93e9ffb6c0 Delete type=0 #172
|
||||
2026/01/05-22:39:51.165599 7f93e9ffb6c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||
2026/01/05-22:39:51.165621 7f93e9ffb6c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:51:42.955411 7f93eb7fe6c0 Recovering log #185
|
||||
2026/01/06-08:51:42.966311 7f93eb7fe6c0 Delete type=3 #183
|
||||
2026/01/06-08:51:42.966372 7f93eb7fe6c0 Delete type=0 #185
|
||||
2026/01/06-16:09:35.146583 7f93e9ffb6c0 Level-0 table #190: started
|
||||
2026/01/06-16:09:35.146626 7f93e9ffb6c0 Level-0 table #190: 0 bytes OK
|
||||
2026/01/06-16:09:35.183379 7f93e9ffb6c0 Delete type=0 #188
|
||||
2026/01/06-16:09:35.183567 7f93e9ffb6c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-16:09:35.183590 7f93e9ffb6c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2025/11/21-21:17:11.269484 7f34cdffb6c0 Recovering log #165
|
||||
2025/11/21-21:17:11.284464 7f34cdffb6c0 Delete type=3 #163
|
||||
2025/11/21-21:17:11.284524 7f34cdffb6c0 Delete type=0 #165
|
||||
2025/11/21-21:20:34.145250 7f322ffff6c0 Level-0 table #170: started
|
||||
2025/11/21-21:20:34.145279 7f322ffff6c0 Level-0 table #170: 0 bytes OK
|
||||
2025/11/21-21:20:34.151544 7f322ffff6c0 Delete type=0 #168
|
||||
2025/11/21-21:20:34.151702 7f322ffff6c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||
2025/11/21-21:20:34.164154 7f322ffff6c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:47:47.712749 7f93eb7fe6c0 Recovering log #181
|
||||
2026/01/06-08:47:47.728095 7f93eb7fe6c0 Delete type=3 #179
|
||||
2026/01/06-08:47:47.728172 7f93eb7fe6c0 Delete type=0 #181
|
||||
2026/01/06-08:50:51.038567 7f93e9ffb6c0 Level-0 table #186: started
|
||||
2026/01/06-08:50:51.038599 7f93e9ffb6c0 Level-0 table #186: 0 bytes OK
|
||||
2026/01/06-08:50:51.044519 7f93e9ffb6c0 Delete type=0 #184
|
||||
2026/01/06-08:50:51.051910 7f93e9ffb6c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||
2026/01/06-08:50:51.051933 7f93e9ffb6c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user