Added a category system and refactored registries

This commit is contained in:
Matthew Miller
2018-06-19 10:53:15 +10:00
parent 484687a49d
commit 282eca7663
47 changed files with 715 additions and 316 deletions

View File

@ -28,12 +28,10 @@ import com.sk89q.worldedit.extension.platform.Preference;
import com.sk89q.worldedit.util.command.CommandMapping;
import com.sk89q.worldedit.util.command.Dispatcher;
import com.sk89q.worldedit.world.World;
import net.minecraft.block.Block;
import com.sk89q.worldedit.world.registry.Registries;
import net.minecraft.command.ServerCommandManager;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.management.PlayerList;
import net.minecraft.util.ResourceLocation;
@ -41,14 +39,14 @@ import net.minecraft.world.WorldServer;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.fml.common.FMLCommonHandler;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Nullable;
class ForgePlatform extends AbstractPlatform implements MultiUserPlatform {
private final ForgeWorldEdit mod;
@ -65,30 +63,8 @@ class ForgePlatform extends AbstractPlatform implements MultiUserPlatform {
}
@Override
public int resolveItem(String name) {
if (name == null) return 0;
int index = name.indexOf(':');
if (index != 0 && index != name.length() - 1) {
Block block = Block.getBlockFromName(name);
if (block != null) {
return Block.getIdFromBlock(block);
}
}
for (Item item : Item.REGISTRY) {
if (item == null) continue;
if (item.getUnlocalizedName() == null) continue;
if (item.getUnlocalizedName().startsWith("item.")) {
if (item.getUnlocalizedName().equalsIgnoreCase("item." + name)) return Item.getIdFromItem(item);
}
if (item.getUnlocalizedName().startsWith("tile.")) {
if (item.getUnlocalizedName().equalsIgnoreCase("tile." + name)) return Item.getIdFromItem(item);
}
if (item.getUnlocalizedName().equalsIgnoreCase(name)) return Item.getIdFromItem(item);
}
return -1;
public Registries getRegistries() {
return ForgeRegistries.getInstance();
}
@Override

View File

@ -21,14 +21,14 @@ package com.sk89q.worldedit.forge;
import com.sk89q.worldedit.world.registry.BiomeRegistry;
import com.sk89q.worldedit.world.registry.ItemRegistry;
import com.sk89q.worldedit.world.registry.BundledWorldData;
import com.sk89q.worldedit.world.registry.BundledRegistries;
/**
* World data for the Forge platform.
*/
class ForgeWorldData extends BundledWorldData {
class ForgeRegistries extends BundledRegistries {
private static final ForgeWorldData INSTANCE = new ForgeWorldData();
private static final ForgeRegistries INSTANCE = new ForgeRegistries();
private final BiomeRegistry biomeRegistry = new ForgeBiomeRegistry();
private final ItemRegistry itemRegistry = new ForgeItemRegistry();
@ -47,7 +47,7 @@ class ForgeWorldData extends BundledWorldData {
*
* @return an instance
*/
public static ForgeWorldData getInstance() {
public static ForgeRegistries getInstance() {
return INSTANCE;
}

View File

@ -45,7 +45,7 @@ import com.sk89q.worldedit.util.Location;
import com.sk89q.worldedit.util.TreeGenerator.TreeType;
import com.sk89q.worldedit.world.AbstractWorld;
import com.sk89q.worldedit.world.biome.BaseBiome;
import com.sk89q.worldedit.world.registry.WorldData;
import com.sk89q.worldedit.world.registry.Registries;
import net.minecraft.block.Block;
import net.minecraft.block.BlockLeaves;
@ -87,7 +87,6 @@ import net.minecraft.world.gen.feature.WorldGenTaiga2;
import net.minecraft.world.gen.feature.WorldGenTrees;
import net.minecraft.world.gen.feature.WorldGenerator;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
import javax.annotation.Nullable;
@ -345,18 +344,13 @@ public class ForgeWorld extends AbstractWorld {
return generator != null && generator.generate(getWorld(), random, ForgeAdapter.toBlockPos(position));
}
@Override
public WorldData getWorldData() {
return ForgeWorldData.getInstance();
}
@Override
public BlockState getBlock(Vector position) {
World world = getWorld();
BlockPos pos = new BlockPos(position.getBlockX(), position.getBlockY(), position.getBlockZ());
IBlockState state = world.getBlockState(pos);
return BlockTypes.getBlockType(ForgeRegistries.BLOCKS.getKey(state.getBlock()).toString()).getDefaultState(); // TODO Data
return BlockTypes.getBlockType(net.minecraftforge.fml.common.registry.ForgeRegistries.BLOCKS.getKey(state.getBlock()).toString()).getDefaultState(); // TODO Data
}
@Override