From 3f7c8f69046d4aad5f8c589bdd8c4a683bd03511 Mon Sep 17 00:00:00 2001 From: Misode Date: Thu, 24 Oct 2024 06:50:04 +0200 Subject: [PATCH] Add hardcoded colored categories --- .../components/generator/McdocRenderer.tsx | 31 ++++++++++++++++--- src/styles/nodes.css | 30 +++++------------- 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/src/app/components/generator/McdocRenderer.tsx b/src/app/components/generator/McdocRenderer.tsx index 766e0efc..6e3f3365 100644 --- a/src/app/components/generator/McdocRenderer.tsx +++ b/src/app/components/generator/McdocRenderer.tsx @@ -475,7 +475,7 @@ function StructBody({ type: outerType, node, makeEdit, ctx }: StructBodyProps) { } } } - return
+ return
@@ -512,7 +512,8 @@ function ListBody({ type: outerType, node, makeEdit, ctx }: ListBodyProps) { return <> {node.children.map((item, index) => { const child = item.value - const itemType = simplifyType(getItemType(type), ctx) + const itemType = getItemType(type) + const simplifiedItemType = simplifyType(itemType, ctx) const makeItemEdit: MakeEdit = (edit) => { makeEdit(() => { const newChild = edit(child?.range ?? item.range) @@ -524,7 +525,7 @@ function ListBody({ type: outerType, node, makeEdit, ctx }: ListBodyProps) { return node }) } - return
+ return
} - +
- +
})} @@ -740,6 +741,26 @@ function getDefault(type: McdocType, range: core.Range, ctx: McdocContext): Json return { type: 'json:null', range } } +function getCategory(type: McdocType) { + if (type.kind === 'reference' && type.path) { + switch (type.path) { + case '::java::data::loot::LootPool': + case '::java::data::worldgen::surface_rule::SurfaceRule': + case '::java::data::worldgen::template_pool::WeightedElement': + return 'pool' + case '::java::data::loot::LootCondition': + case '::java::data::worldgen::dimension::biome_source::BiomeSource': + case '::java::data::worldgen::processor_list::ProcessorRule': + return 'predicate' + case '::java::data::loot::LootFunction': + case '::java::data::worldgen::density_function::CubicSpline': + case '::java::data::worldgen::processor_list::Processor': + return 'function' + } + } + return undefined +} + function simplifyType(type: McdocType, ctx: McdocContext): SimplifiedMcdocType { const node: SimplifyValueNode = { entryNode: { diff --git a/src/styles/nodes.css b/src/styles/nodes.css index 2c24cee9..03bd1fda 100644 --- a/src/styles/nodes.css +++ b/src/styles/nodes.css @@ -388,9 +388,7 @@ button.move:disabled { border-left: none; } -.node-body > .object-node[data-category], -.node-body > .list-node[data-category], -.node-body > .map-node[data-category] { +.node-body > .node[data-category] { width: 100%; min-width: max-content; padding: 5px; @@ -399,16 +397,14 @@ button.move:disabled { border-radius: 3px; } -.node-body > .object-node[data-category] > .node-header > .node-icon:first-child + *, -.node-body > .object-node[data-category] > .node-header > *:first-child { +.node-body > .node[data-category] > .node-header > .node-icon:first-child + *, +.node-body > .node[data-category] > .node-header > *:first-child { border-top-left-radius: 0; border-bottom-left-radius: 0; border-left: none; } -.node-body > .object-node[data-category] > .node-body, -.node-body > .list-node[data-category] > .node-body, -.node-body > .map-node[data-category] > .node-body { +.node-body > .node[data-category] > .node-body { border: none; } @@ -429,64 +425,52 @@ button.move:disabled { /* Color categories */ [data-category=predicate] > .node-header > label, -[data-category=predicate].node-header > label, [data-category=predicate] > .node-body > .node > .node-header > label { background-color: var(--category-predicate); } [data-category=predicate] > .node-body, [data-category=predicate] > .node-header > label, -[data-category=predicate].node-header > label, [data-category=predicate] > .node-header > *:not(.selected), [data-category=predicate] > .node-body > .node > .node-header > *:not(.selected) { border-color: var(--category-predicate-border); } -.node-body > .node.object-node[data-category=predicate], -.node-body > .node.list-node[data-category=predicate], -.node-body > .node.map-node[data-category=predicate] { +.node-body > .node[data-category=predicate] { background-color: var(--category-predicate-background); border-color: var(--category-predicate-border); } [data-category=function] > .node-header > label, -[data-category=function].node-header > label, [data-category=function] > .node-body > .node > .node-header > label { background-color: var(--category-function); } [data-category=function] > .node-body, [data-category=function] > .node-header > label, -[data-category=function].node-header > label, [data-category=function] > .node-header > *:not(.selected), [data-category=function] > .node-body > .node > .node-header > *:not(.selected) { border-color: var(--category-function-border); } -.node-body > .node.object-node[data-category=function], -.node-body > .node.list-node[data-category=function], -.node-body > .node.map-node[data-category=function] { +.node-body > .node[data-category=function] { background-color: var(--category-function-background); border-color: var(--category-function-border); } [data-category=pool] > .node-header > label, -[data-category=pool].node-header > label, [data-category=pool] > .node-body > .node > .node-header > label { background-color: var(--category-pool); } [data-category=pool] > .node-body, [data-category=pool] > .node-header > label, -[data-category=pool].node-header > label, [data-category=pool] > .node-header > *:not(.selected), [data-category=pool] > .node-body > .node > .node-header > *:not(.selected) { border-color: var(--category-pool-border); } -.node-body > .node.object-node[data-category=pool], -.node-body > .node.list-node[data-category=pool], -.node-body > .node.map-node[data-category=pool] { +.node-body > .node[data-category=pool] { background-color: var(--category-pool-background); border-color: var(--category-pool-border); }