mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-30 12:29:15 +00:00
修复原版方块映射
This commit is contained in:
@@ -20,6 +20,7 @@ import net.momirealms.craftengine.core.item.behavior.ItemBehavior;
|
||||
import net.momirealms.craftengine.core.item.behavior.ItemBehaviorFactory;
|
||||
import net.momirealms.craftengine.core.item.context.UseOnContext;
|
||||
import net.momirealms.craftengine.core.pack.Pack;
|
||||
import net.momirealms.craftengine.core.pack.PendingConfigSection;
|
||||
import net.momirealms.craftengine.core.plugin.CraftEngine;
|
||||
import net.momirealms.craftengine.core.plugin.context.ContextHolder;
|
||||
import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext;
|
||||
@@ -185,9 +186,9 @@ public class FurnitureItemBehavior extends ItemBehavior {
|
||||
if (id instanceof Map<?,?> map) {
|
||||
if (map.containsKey(key.toString())) {
|
||||
// 防呆
|
||||
BukkitFurnitureManager.instance().parser().parseSection(pack, path, node, key, MiscUtils.castToMap(map.get(key.toString()), false));
|
||||
BukkitFurnitureManager.instance().parser().addPendingConfigSection(new PendingConfigSection(pack, path, node, key, MiscUtils.castToMap(map.get(key.toString()), false)));
|
||||
} else {
|
||||
BukkitFurnitureManager.instance().parser().parseSection(pack, path, node, key, MiscUtils.castToMap(map, false));
|
||||
BukkitFurnitureManager.instance().parser().addPendingConfigSection(new PendingConfigSection(pack, path, node, key, MiscUtils.castToMap(map, false)));
|
||||
}
|
||||
return new FurnitureItemBehavior(key);
|
||||
} else {
|
||||
|
||||
@@ -253,7 +253,7 @@ public abstract class AbstractBlockManager extends AbstractModelGenerator implem
|
||||
String after = entry.getValue().toString();
|
||||
// 先解析为唯一的wrapper
|
||||
BlockStateWrapper beforeState = createVanillaBlockState(before);
|
||||
BlockStateWrapper afterState = createVanillaBlockState(before);
|
||||
BlockStateWrapper afterState = createVanillaBlockState(after);
|
||||
if (beforeState == null) {
|
||||
exceptionCollector.add(new LocalizedResourceConfigException("warning.config.block_state_mapping.invalid_state", before));
|
||||
continue;
|
||||
|
||||
@@ -1,20 +1,25 @@
|
||||
package net.momirealms.craftengine.core.entity.furniture;
|
||||
|
||||
import net.momirealms.craftengine.core.block.AbstractBlockManager;
|
||||
import net.momirealms.craftengine.core.entity.Billboard;
|
||||
import net.momirealms.craftengine.core.entity.ItemDisplayContext;
|
||||
import net.momirealms.craftengine.core.loot.LootTable;
|
||||
import net.momirealms.craftengine.core.pack.LoadingSequence;
|
||||
import net.momirealms.craftengine.core.pack.Pack;
|
||||
import net.momirealms.craftengine.core.pack.PendingConfigSection;
|
||||
import net.momirealms.craftengine.core.plugin.CraftEngine;
|
||||
import net.momirealms.craftengine.core.plugin.config.Config;
|
||||
import net.momirealms.craftengine.core.plugin.config.IdSectionConfigParser;
|
||||
import net.momirealms.craftengine.core.plugin.context.event.EventFunctions;
|
||||
import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException;
|
||||
import net.momirealms.craftengine.core.util.GsonHelper;
|
||||
import net.momirealms.craftengine.core.util.Key;
|
||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||
import org.incendo.cloud.suggestion.Suggestion;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.*;
|
||||
|
||||
@@ -31,7 +36,7 @@ public abstract class AbstractFurnitureManager implements FurnitureManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public IdSectionConfigParser parser() {
|
||||
public FurnitureParser parser() {
|
||||
return this.furnitureParser;
|
||||
}
|
||||
|
||||
@@ -76,6 +81,24 @@ public abstract class AbstractFurnitureManager implements FurnitureManager {
|
||||
|
||||
public class FurnitureParser implements IdSectionConfigParser {
|
||||
public static final String[] CONFIG_SECTION_NAME = new String[] { "furniture" };
|
||||
private final List<PendingConfigSection> pendingConfigSections = new ArrayList<>();
|
||||
|
||||
public void addPendingConfigSection(PendingConfigSection section) {
|
||||
this.pendingConfigSections.add(section);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void preProcess() {
|
||||
for (PendingConfigSection section : this.pendingConfigSections) {
|
||||
ResourceConfigUtils.runCatching(
|
||||
section.path(),
|
||||
section.node(),
|
||||
() -> parseSection(section.pack(), section.path(), section.node(), section.id(), section.config()),
|
||||
() -> GsonHelper.get().toJson(section.config())
|
||||
);
|
||||
}
|
||||
this.pendingConfigSections.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] sectionId() {
|
||||
|
||||
Reference in New Issue
Block a user