- Баллы
- 173
- Имя в Minecraft
- fromgate
Вобщем в двух словах, после этого любой кто захочет, мне кажется сможет рисовать и писать на картах:
1. Рендерер. Собственно он и занимается рисованием.
В плагине, процедура создания новой карты (возвращает значение data предмета. Т.е. если вернуло 5, то просмотреть карту можно посредством /i map:5)
Теперь собственно можно создать карту при помощи команды:
createMap (player, "map test");
Где player - это игрок.
1. Рендерер. Собственно он и занимается рисованием.
Java:
package fromgate.dogtags;
import org.bukkit.entity.Player;
import org.bukkit.map.MapCanvas;
import org.bukkit.map.MapRenderer;
import org.bukkit.map.MapView;
import org.bukkit.map.MinecraftFont;
public class DTRenderer extends MapRenderer {
Dogtags plg;
String text;
public DTRenderer (Dogtags plg, String text){
super (true);
this.plg = plg;
this.text = text;
}
@Override
public void render(MapView map, MapCanvas canvas, Player p) {
// "обнуляем" карту
for (int j = 0; j < 128; j++)
for (int i = 0; i < 128; i++)
canvas.setPixel(i, j, (byte) 0);
// plg.dtimg - картинка (тип Image) загруженная из файла
// если она существует - используем её как подложку
if (plg.dtimg != null) canvas.drawImage(0, 0, plg.dtimg);
// пишем текст строго по середине
canvas.drawText(30, 63-(MinecraftFont.Font.getHeight()/2), MinecraftFont.Font, text);
// пишем текст внизу карты
canvas.drawText(2, 127-MinecraftFont.Font.getHeight(), MinecraftFont.Font, "§54;(с)2012, fromgate");
}
}
В плагине, процедура создания новой карты (возвращает значение data предмета. Т.е. если вернуло 5, то просмотреть карту можно посредством /i map:5)
Java:
public int createMap(Player p, String text){
MapView map = Bukkit.getServer().createMap(p.getWorld());
DTRenderer mr = new DTRenderer (this, text);
mr.initialize(map);
// Удаляем стандартные рендереры
map.getRenderers().clear();
// Назначаем наш
map.addRenderer(mr);
return map.getId();
}
Теперь собственно можно создать карту при помощи команды:
createMap (player, "map test");
Где player - это игрок.

. Даже если не понимать, что там делается - можно тупо скопировать