Приветствую.TTpu3paK написал(а):Здравствуйте
TTpu3paK написал(а):1) Как создать кнопку при нажатии клавиши H ? ( В самой игре а не в меню ).
public class ProxyClient extends ProxyServer {
public static final KeyBinding h = new KeyBinding("key.h.name", Keyboard.KEY_H, "category.control_button.name");
@Override
public void preInit() {
ClientRegistry.registerKeyBinding(h);
}
}
В учебнике написано.TTpu3paK написал(а):2) Как отправить пакет на сервер с нужными данными ?
timaxa007 написал(а):Приветствую.TTpu3paK написал(а):Здравствуйте
TTpu3paK написал(а):1) Как создать кнопку при нажатии клавиши H ? ( В самой игре а не в меню ).Код:public class ProxyClient extends ProxyServer { public static final KeyBinding h = new KeyBinding("key.h.name", Keyboard.KEY_H, "category.control_button.name"); @Override public void preInit() { ClientRegistry.registerKeyBinding(h); } }
В учебнике написано.TTpu3paK написал(а):2) Как отправить пакет на сервер с нужными данными ?
@SidedProxy(modId = MODID, serverSide = "your.package.ProxyServer", clientSide = "your.package.ProxyClient")
public static ProxyServer proxy;
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
proxy.preInit();
}
public class ProxyServer {
public void preInit() {
}
}
timaxa007 написал(а):ProxyClient это отдельный класс, так-же как и ProxyServer, они должны быть твоими.
Код:@SidedProxy(modId = MODID, serverSide = "your.package.ProxyServer", clientSide = "your.package.ProxyClient") public static ProxyServer proxy; @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { proxy.preInit(); }
Код:public class ProxyServer { public void preInit() { } }
TTpu3paK написал(а):Как создать кнопку, поле для ввода и текст?
public class GuiModelView extends GuiScreen {
GuiTextField inputField;
GuiButton buttonDefault;
@Override
public void initGui() {
Keyboard.enableRepeatEvents(true);
if (inputField == null) {
inputField = new GuiTextField(fontRendererObj, width - 70, 14 * 1, 68, 12);
inputField.setMaxStringLength(10);
inputField.setText("");
} else
inputField.xPosition = width - 70;
buttonList.clear();
buttonList.add(buttonDefault = new GuiButton(0, width - 70, 170, 60, 20, "Default"));
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
@Override
public void updateScreen() {
inputField.updateCursorCounter();
}
@Override
public void actionPerformed(GuiButton btn) {
if (btn.enabled) {
switch(btn.id) {
case 0:
break;
}
}
}
@Override
public void keyTyped(char character, int key) {
switch(key) {
case Keyboard.KEY_ESCAPE:
mc.displayGuiScreen((GuiScreen)null);
mc.setIngameFocus();
break;
default:
break;
}
}
@Override
public void mouseClicked(int mouseX, int mouseY, int state) {
inputField.mouseClicked(mouseX, mouseY, state);
super.mouseClicked(mouseX, mouseY, state);
}
@Override
public void drawScreen(int mouseX, int mouseY, float parTick) {
inputField.drawTextBox();
mc.fontRenderer.drawStringWithShadow("x", width - 70 - 10, 1 + 14 * 1, 0xFFFFFF);
super.drawScreen(mouseX, mouseY, parTick);
}
}
Не очень.TTpu3paK написал(а):Сложна(
timaxa007 написал(а):TTpu3paK написал(а):Как создать кнопку, поле для ввода и текст?Код:public class GuiModelView extends GuiScreen { GuiTextField inputField; GuiButton buttonDefault; @Override public void initGui() { Keyboard.enableRepeatEvents(true); if (inputField == null) { inputField = new GuiTextField(fontRendererObj, width - 70, 14 * 1, 68, 12); inputField.setMaxStringLength(10); inputField.setText(""); } else inputField.xPosition = width - 70; buttonList.clear(); buttonList.add(buttonDefault = new GuiButton(0, width - 70, 170, 60, 20, "Default")); } @Override public void onGuiClosed() { Keyboard.enableRepeatEvents(false); } @Override public void updateScreen() { inputField.updateCursorCounter(); } @Override public void actionPerformed(GuiButton btn) { if (btn.enabled) { switch(btn.id) { case 0: break; } } } @Override public void keyTyped(char character, int key) { switch(key) { case Keyboard.KEY_ESCAPE: mc.displayGuiScreen((GuiScreen)null); mc.setIngameFocus(); break; default: break; } } @Override public void mouseClicked(int mouseX, int mouseY, int state) { inputField.mouseClicked(mouseX, mouseY, state); super.mouseClicked(mouseX, mouseY, state); } @Override public void drawScreen(int mouseX, int mouseY, float parTick) { inputField.drawTextBox(); mc.fontRenderer.drawStringWithShadow("x", width - 70 - 10, 1 + 14 * 1, 0xFFFFFF); super.drawScreen(mouseX, mouseY, parTick); } }
Не очень.TTpu3paK написал(а):Сложна(
package com.example.examplemod;
import net.minecraft.init.Blocks;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
@Mod(modid="Test",name="Test",version="0.1")
public class ExampleMod
{
public static final String MODID = "Test";
public static final String VERSION = "0.1";
@EventHandler
public void init(FMLInitializationEvent event)
{
}
@Override
public void actionPerformed(GuiButton btn) {
if (btn.enabled) {
switch(btn.id) {
case 0:
break;
}
}
}
@Override
public void keyTyped(char character, int key) {
switch(key) {
case Keyboard.KEY_ESCAPE:
mc.displayGuiScreen((GuiScreen)null);
mc.setIngameFocus();
break;
default:
break;
}
}
@Override
public void mouseClicked(int mouseX, int mouseY, int state) {
inputField.mouseClicked(mouseX, mouseY, state);
super.mouseClicked(mouseX, mouseY, state);
}
@Override
public void drawScreen(int mouseX, int mouseY, float parTick) {
inputField.drawTextBox();
mc.fontRenderer.drawStringWithShadow("x", width - 70 - 10, 1 + 14 * 1, 0xFFFFFF);
super.drawScreen(mouseX, mouseY, parTick);
}
}
}
@Mod(modid="Test",name="Test",version="0.1")
public class ExampleMod
{
public static final String MODID = "Test";
public static final String VERSION = "0.1";
@SidedProxy(modId = MODID, serverSide = "your.package.ProxyServer", clientSide = "your.package.ProxyClient")
public static ProxyServer proxy;
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
proxy.preInit();
}
}
У тебя хроническое незнание java. НужноTTpu3paK написал(а):Я все равно не понимаю что я не так делаю
То неловкое чувство когда еще даже не написал главный класс, но уже хранишь секретность, закрашивая ExampleMod
Maxik001 написал(а):То неловкое чувство когда еще даже не написал главный класс, но уже хранишь секретность, закрашивая ExampleMod
Аннотации Mod вполне достаточно для главного класса.Maxik001 написал(а):То неловкое чувство когда еще даже не написал главный класс
Вообще-то это тот самый чит к ТСGarik1303 написал(а):Ору!!! Видно намечается глобальный проект!
Dahaka написал(а):Аннотации Mod вполне достаточно для главного класса.Maxik001 написал(а):То неловкое чувство когда еще даже не написал главный класс
Вообще-то это тот самый чит к ТСGarik1303 написал(а):Ору!!! Видно намечается глобальный проект!
Потому что мод из двух классов (главный класс и GuiScreen), на который у меня ушел бы ~час, не глобальный.Garik1303 написал(а):Ну так чем не глобальный?