下面列出了net.minecraft.util.datafix.FixTypes#net.minecraft.util.datafix.DataFixer 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static Template getBuiltinTemplate(World world, ResourceLocation templateId) {
if (templateMap.containsKey(templateId)) {
return templateMap.get(templateId);
}
Template template = new Template();
String resourcePath = "/assets/" + templateId.getResourceDomain() + "/structures/" + templateId.getResourcePath() + ".nbt";
InputStream inputStream = TemplateManager.class.getResourceAsStream(resourcePath);
if (inputStream != null) {
try {
NBTTagCompound nbttagcompound = CompressedStreamTools.readCompressed(inputStream);
if (!nbttagcompound.hasKey("DataVersion", 99)) {
nbttagcompound.setInteger("DataVersion", 500);
}
DataFixer dataFixer = world.getMinecraftServer().getDataFixer();
template.read(dataFixer.process(FixTypes.STRUCTURE, nbttagcompound));
} catch (IOException exception) {
GTLog.logger.error("Failed to load builtin template {}", templateId, exception);
} finally {
IOUtils.closeQuietly(inputStream);
}
} else {
GTLog.logger.warn("Failed to find builtin structure with path {}", resourcePath);
}
templateMap.put(templateId, template);
return template;
}
public void preInit(FMLPreInitializationEvent e) {
//configDirectory = new File(e.getModConfigurationDirectory(), ToroQuest.MODID);
ToolMaterials.init();
initConfig(e.getSuggestedConfigurationFile());
MinecraftForge.EVENT_BUS.register(new CivilizationGeneratorHandlers());
MinecraftForge.EVENT_BUS.register(new EventHandlers());
MinecraftForge.EVENT_BUS.register(new CivilizationHandlers());
MinecraftForge.EVENT_BUS.register(new EntitySpawning());
VillageHandlerKeep.init();
// VillageHandlerTrophy.init();
VillageHandlerShop.init();
VillageHandlerGuardTower.init();
VillageHandlerBarracks.init();
ToroQuestPacketHandler.init();
NetworkRegistry.INSTANCE.registerGuiHandler(ToroQuest.INSTANCE, new VillageLordGuiHandler());
DataFixer datafixer = new DataFixer(922);
EntityVillageLord.registerFixesVillageLord(datafixer);
Quests.init();
}
public TemplateManagerEU(File directory, DataFixer dataFixer)
{
this.server = FMLCommonHandler.instance().getMinecraftServerInstance();
this.templates = Maps.<String, TemplateEnderUtilities>newHashMap();
this.templateMetas = Maps.<String, TemplateMetadata>newHashMap();
this.directory = directory;
this.fixer = dataFixer;
}
public static void registerFixes(DataFixer fixers, final Class<? extends EntityBlock> cls) {
fixers.registerWalker(FixTypes.ENTITY, (fixer, compound, versionIn) -> {
if (EntityList.getKey(cls).equals(new ResourceLocation(compound.getString("id")))) {
if (compound.hasKey(TAG_TILE_ENTITY, Constants.NBT.TAG_COMPOUND)) {
final NBTTagCompound teTag = compound.getCompoundTag(TAG_TILE_ENTITY);
final NBTTagCompound fixedTeTag = fixer.process(FixTypes.BLOCK_ENTITY, teTag, versionIn);
compound.setTag(TAG_TILE_ENTITY, fixedTeTag);
}
}
return compound;
});
}
public static void registerFixesTippedArrow(DataFixer fixer) {
EntityArrow.registerFixesArrow(fixer, "TippedArrow");
}
public static void registerFixesFurnace(DataFixer fixer) {
fixer.registerWalker(FixTypes.BLOCK_ENTITY, new ItemStackDataLists(TileEntitySaltFurnace.class, new String[]{"Items"}));
}
public static void registerFixesChicken(DataFixer fixer)
{
EntityLiving.registerFixesMob(fixer, EntityChicken.class);
}
@Override
public TemplateManager getStructureTemplateManager() {
return new TemplateManager("", new DataFixer(0));
}
private MixinIntegratedServer(File anvilFileIn, Proxy proxyIn, DataFixer dataFixerIn,
YggdrasilAuthenticationService authServiceIn, MinecraftSessionService sessionServiceIn,
GameProfileRepository profileRepoIn, PlayerProfileCache profileCacheIn)
{
super(anvilFileIn, proxyIn, dataFixerIn, authServiceIn, sessionServiceIn, profileRepoIn, profileCacheIn);
}
public static void registerFixesVillageLord(DataFixer fixer) {
EntityLiving.registerFixesMob(fixer, EntityVillageLord.class);
fixer.registerWalker(FixTypes.ENTITY, new ItemStackDataLists(EntityVillageLord.class, new String[] { "Items" }));
}
public static void registerFixesBat(DataFixer fixer) {
EntityLiving.registerFixesMob(fixer, EntityVampireBat.class);
}
@Override
public void register(DataFixer registry, Class<?> registeringClass) {
registry.registerWalker(FixTypes.BLOCK_ENTITY, new ItemStackDataLists(registeringClass, GenericInventory.TAG_ITEMS));
}
public void register(DataFixer registry, Class<?> registeringClass);