/**
* This class was created by <Vazkii>. It's distributed as
* part of the Botania Mod. Get the Source Code in github:
* https://github.com/Vazkii/Botania
*
* Botania is Open Source and distributed under the
* Botania License: http://botaniamod.net/license.php
*
* File Created @ [Sep 2, 2014, 5:58:39 PM (GMT)]
*/
package vazkii.botania.api.wiki;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import org.apache.commons.lang3.text.WordUtils;
public class SimpleWikiProvider implements IWikiProvider {
final String name, urlBase, replacement;
final boolean lowercase;
public SimpleWikiProvider(String name, String urlBase) {
this(name, urlBase, "%20");
}
public SimpleWikiProvider(String name, String urlBase, boolean lowercase) {
this(name, urlBase, "%20", lowercase);
}
public SimpleWikiProvider(String name, String urlBase, String replacement) {
this.name = name;
this.urlBase = urlBase;
this.replacement = replacement;
lowercase = false;
}
public SimpleWikiProvider(String name, String urlBase, String replacement, boolean lowercase) {
this.name = name;
this.urlBase = urlBase;
this.replacement = replacement;
this.lowercase = lowercase;
}
@Override
public String getBlockName(World world, MovingObjectPosition pos) {
int x = pos.blockX;
int y = pos.blockY;
int z = pos.blockZ;
Block block = world.getBlock(x, y, z);
if(block == null)
return null;
ItemStack stack = block.getPickBlock(pos, world, x, y, z);
if(stack == null || stack.getItem() == null)
stack = new ItemStack(block, 1, world.getBlockMetadata(x, y, z));
if(stack.getItem() == null)
return null;
String name = stack.getDisplayName();
if(name == null || name.isEmpty())
return null;
return name;
}
@Override
public String getWikiURL(World world, MovingObjectPosition pos) {
String name = getBlockName(world, pos);
if(name == null)
return null;
if(lowercase) {
return String.format(urlBase, name.toLowerCase().replaceAll(" ", replacement));
} else {
return String.format(urlBase, WordUtils.capitalizeFully(name).replaceAll(" ", replacement));
}
}
@Override
public String getWikiName(World world, MovingObjectPosition pos) {
return name;
}
}