From 2d297478880725d8a65add6933d58d1ffe20a417 Mon Sep 17 00:00:00 2001 From: Nicolas BARBOTIN Date: Fri, 26 Jan 2018 18:03:02 +0100 Subject: [PATCH] + Added base files --- .gitignore | 23 + build.gradle | 56 + gradle.properties | 3 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 52271 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 164 ++ gradlew.bat | 90 + libs/mcef-1.12.2-0.9-api.jar | Bin 0 -> 303731 bytes src/main/java/net/montoyo/wd/SharedProxy.java | 68 + src/main/java/net/montoyo/wd/WebDisplays.java | 193 ++ .../montoyo/wd/block/BlockKeyboardRight.java | 218 +++ .../net/montoyo/wd/block/BlockPeripheral.java | 243 +++ .../net/montoyo/wd/block/BlockScreen.java | 253 +++ .../java/net/montoyo/wd/block/WDBlock.java | 42 + .../montoyo/wd/block/WDBlockContainer.java | 46 + .../net/montoyo/wd/client/ClientProxy.java | 376 ++++ .../montoyo/wd/client/ResourceModelPair.java | 28 + .../montoyo/wd/client/StaticStateMapper.java | 24 + .../montoyo/wd/client/gui/GuiKeyboard.java | 219 +++ .../net/montoyo/wd/client/gui/GuiMinePad.java | 143 ++ .../wd/client/gui/GuiScreenConfig.java | 415 +++++ .../net/montoyo/wd/client/gui/GuiSetURL2.java | 102 ++ .../montoyo/wd/client/gui/GuiSubscribe.java | 15 + .../net/montoyo/wd/client/gui/WDScreen.java | 353 ++++ .../wd/client/gui/controls/BasicControl.java | 73 + .../wd/client/gui/controls/Button.java | 199 +++ .../wd/client/gui/controls/CheckBox.java | 120 ++ .../wd/client/gui/controls/Container.java | 157 ++ .../wd/client/gui/controls/Control.java | 249 +++ .../wd/client/gui/controls/ControlGroup.java | 211 +++ .../montoyo/wd/client/gui/controls/Event.java | 15 + .../montoyo/wd/client/gui/controls/Label.java | 98 + .../montoyo/wd/client/gui/controls/List.java | 384 ++++ .../wd/client/gui/controls/TextField.java | 281 +++ .../wd/client/gui/loading/FillControl.java | 19 + .../wd/client/gui/loading/GuiLoader.java | 92 + .../wd/client/gui/loading/JsonAWrapper.java | 61 + .../wd/client/gui/loading/JsonOWrapper.java | 311 ++++ .../wd/client/renderers/IModelBaker.java | 14 + .../wd/client/renderers/MinePadRenderer.java | 135 ++ .../wd/client/renderers/ModelMinePad.java | 56 + .../wd/client/renderers/ScreenBaker.java | 139 ++ .../wd/client/renderers/ScreenRenderer.java | 177 ++ .../montoyo/wd/core/DefaultPeripheral.java | 36 + .../java/net/montoyo/wd/core/IPeripheral.java | 17 + .../wd/core/MissingPermissionException.java | 28 + .../net/montoyo/wd/core/ScreenRights.java | 20 + .../net/montoyo/wd/core/WDCreativeTab.java | 22 + .../java/net/montoyo/wd/data/GuiData.java | 38 + .../net/montoyo/wd/data/KeyboardData.java | 55 + .../net/montoyo/wd/data/ScreenConfigData.java | 87 + .../java/net/montoyo/wd/data/SetURLData.java | 50 + .../montoyo/wd/entity/TileEntityKeyboard.java | 67 + .../wd/entity/TileEntityPeripheralBase.java | 119 ++ .../montoyo/wd/entity/TileEntityRCtrl.java | 43 + .../montoyo/wd/entity/TileEntityScreen.java | 539 ++++++ .../java/net/montoyo/wd/item/ItemLinker.java | 137 ++ .../net/montoyo/wd/item/ItemMinePad2.java | 59 + .../montoyo/wd/item/ItemOwnershipThief.java | 121 ++ .../net/montoyo/wd/item/ItemPeripheral.java | 51 + .../wd/item/ItemScreenConfigurator.java | 62 + .../net/montoyo/wd/net/CMessageACResult.java | 59 + .../net/montoyo/wd/net/CMessageAddScreen.java | 98 + .../net/montoyo/wd/net/CMessageOpenGui.java | 52 + .../montoyo/wd/net/CMessageScreenUpdate.java | 147 ++ .../net/montoyo/wd/net/DefaultHandler.java | 20 + src/main/java/net/montoyo/wd/net/Message.java | 21 + .../java/net/montoyo/wd/net/Messages.java | 66 + .../net/montoyo/wd/net/SMessageACQuery.java | 89 + .../net/montoyo/wd/net/SMessagePadCtrl.java | 106 ++ .../montoyo/wd/net/SMessageRequestTEData.java | 77 + .../montoyo/wd/net/SMessageScreenCtrl.java | 223 +++ .../java/net/montoyo/wd/utilities/AABB.java | 77 + .../net/montoyo/wd/utilities/BlockSide.java | 48 + .../montoyo/wd/utilities/DontSerialize.java | 15 + .../java/net/montoyo/wd/utilities/Log.java | 36 + .../net/montoyo/wd/utilities/Multiblock.java | 178 ++ .../montoyo/wd/utilities/NameUUIDPair.java | 72 + .../java/net/montoyo/wd/utilities/Util.java | 224 +++ .../net/montoyo/wd/utilities/Vector2i.java | 44 + .../net/montoyo/wd/utilities/Vector3f.java | 186 ++ .../net/montoyo/wd/utilities/Vector3i.java | 228 +++ .../net/montoyo/wd/utilities/VideoType.java | 79 + src/main/resources/assets/mcef/html/home.html | 56 + src/main/resources/assets/mcef/html/jquery.js | 6 + .../resources/assets/mcef/html/jquery.tube.js | 2 + src/main/resources/assets/mcef/html/test.html | 15 + src/main/resources/assets/mcef/mime.types | 1588 +++++++++++++++++ .../webdisplays/blockstates/keyboard.json | 8 + .../webdisplays/blockstates/peripheral.json | 23 + .../webdisplays/blockstates/screen.json | 6 + .../assets/webdisplays/gui/keyboard.json | 38 + .../assets/webdisplays/gui/screencfg.json | 180 ++ .../assets/webdisplays/gui/seturl.json | 56 + .../assets/webdisplays/lang/en_US.lang | 51 + .../webdisplays/models/block/kb_left.json | 503 ++++++ .../webdisplays/models/block/kb_right.json | 477 +++++ .../webdisplays/models/block/peripheral.json | 6 + .../webdisplays/models/block/screen_item.json | 6 + .../webdisplays/models/item/kb_inv.json | 6 + .../webdisplays/models/item/linker.json | 6 + .../webdisplays/models/item/minepad.json | 6 + .../webdisplays/models/item/ownerthief.json | 6 + .../webdisplays/models/item/screencfg.json | 6 + .../webdisplays/models/item/stonekey.json | 6 + .../assets/webdisplays/recipes/keyboard.json | 20 + .../assets/webdisplays/recipes/linker.json | 25 + .../assets/webdisplays/recipes/minepad.json | 31 + .../assets/webdisplays/recipes/screen.json | 29 + .../assets/webdisplays/recipes/screencfg.json | 22 + .../assets/webdisplays/recipes/stonekey.json | 13 + .../resources/assets/webdisplays/sounds.json | 16 + .../assets/webdisplays/sounds/keyboard1.ogg | Bin 0 -> 8769 bytes .../assets/webdisplays/sounds/keyboard2.ogg | Bin 0 -> 11637 bytes .../assets/webdisplays/sounds/keyboard3.ogg | Bin 0 -> 11716 bytes .../assets/webdisplays/sounds/keyboard4.ogg | Bin 0 -> 9683 bytes .../assets/webdisplays/sounds/keyboard5.ogg | Bin 0 -> 7567 bytes .../assets/webdisplays/sounds/keyboard6.ogg | Bin 0 -> 9827 bytes .../assets/webdisplays/sounds/keyboard7.ogg | Bin 0 -> 7858 bytes .../assets/webdisplays/sounds/keyboard8.ogg | Bin 0 -> 9751 bytes .../webdisplays/textures/blocks/interface.png | Bin 0 -> 511 bytes .../webdisplays/textures/blocks/kb_base.png | Bin 0 -> 164 bytes .../webdisplays/textures/blocks/kb_key.png | Bin 0 -> 182 bytes .../webdisplays/textures/blocks/rctrl.png | Bin 0 -> 673 bytes .../webdisplays/textures/blocks/redctrl.png | Bin 0 -> 761 bytes .../webdisplays/textures/blocks/screen0.png | Bin 0 -> 116 bytes .../webdisplays/textures/blocks/screen1.png | Bin 0 -> 174 bytes .../webdisplays/textures/blocks/screen10.png | Bin 0 -> 205 bytes .../webdisplays/textures/blocks/screen11.png | Bin 0 -> 237 bytes .../webdisplays/textures/blocks/screen12.png | Bin 0 -> 218 bytes .../webdisplays/textures/blocks/screen13.png | Bin 0 -> 237 bytes .../webdisplays/textures/blocks/screen14.png | Bin 0 -> 233 bytes .../webdisplays/textures/blocks/screen15.png | Bin 0 -> 254 bytes .../webdisplays/textures/blocks/screen2.png | Bin 0 -> 182 bytes .../webdisplays/textures/blocks/screen3.png | Bin 0 -> 219 bytes .../webdisplays/textures/blocks/screen4.png | Bin 0 -> 175 bytes .../webdisplays/textures/blocks/screen5.png | Bin 0 -> 198 bytes .../webdisplays/textures/blocks/screen6.png | Bin 0 -> 216 bytes .../webdisplays/textures/blocks/screen7.png | Bin 0 -> 239 bytes .../webdisplays/textures/blocks/screen8.png | Bin 0 -> 178 bytes .../webdisplays/textures/blocks/screen9.png | Bin 0 -> 214 bytes .../webdisplays/textures/gui/checkbox.png | Bin 0 -> 269 bytes .../textures/gui/checkbox_checked.png | Bin 0 -> 775 bytes .../webdisplays/textures/items/batcell.png | Bin 0 -> 211 bytes .../webdisplays/textures/items/battery.png | Bin 0 -> 228 bytes .../webdisplays/textures/items/kb_inv.png | Bin 0 -> 251 bytes .../webdisplays/textures/items/linker.png | Bin 0 -> 634 bytes .../webdisplays/textures/items/minepad.png | Bin 0 -> 317 bytes .../webdisplays/textures/items/ownerthief.png | Bin 0 -> 256 bytes .../webdisplays/textures/items/pigeon.png | Bin 0 -> 322 bytes .../webdisplays/textures/items/screencfg.png | Bin 0 -> 373 bytes .../webdisplays/textures/items/stonekey.png | Bin 0 -> 225 bytes .../webdisplays/textures/models/minepad.png | Bin 0 -> 341 bytes src/main/resources/mcmod.info | 16 + 154 files changed, 12796 insertions(+) create mode 100644 .gitignore create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 libs/mcef-1.12.2-0.9-api.jar create mode 100644 src/main/java/net/montoyo/wd/SharedProxy.java create mode 100644 src/main/java/net/montoyo/wd/WebDisplays.java create mode 100644 src/main/java/net/montoyo/wd/block/BlockKeyboardRight.java create mode 100644 src/main/java/net/montoyo/wd/block/BlockPeripheral.java create mode 100644 src/main/java/net/montoyo/wd/block/BlockScreen.java create mode 100644 src/main/java/net/montoyo/wd/block/WDBlock.java create mode 100644 src/main/java/net/montoyo/wd/block/WDBlockContainer.java create mode 100644 src/main/java/net/montoyo/wd/client/ClientProxy.java create mode 100644 src/main/java/net/montoyo/wd/client/ResourceModelPair.java create mode 100644 src/main/java/net/montoyo/wd/client/StaticStateMapper.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/GuiKeyboard.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/GuiMinePad.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/GuiScreenConfig.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/GuiSetURL2.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/GuiSubscribe.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/WDScreen.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/controls/BasicControl.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/controls/Button.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/controls/CheckBox.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/controls/Container.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/controls/Control.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/controls/ControlGroup.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/controls/Event.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/controls/Label.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/controls/List.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/controls/TextField.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/loading/FillControl.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/loading/GuiLoader.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/loading/JsonAWrapper.java create mode 100644 src/main/java/net/montoyo/wd/client/gui/loading/JsonOWrapper.java create mode 100644 src/main/java/net/montoyo/wd/client/renderers/IModelBaker.java create mode 100644 src/main/java/net/montoyo/wd/client/renderers/MinePadRenderer.java create mode 100644 src/main/java/net/montoyo/wd/client/renderers/ModelMinePad.java create mode 100644 src/main/java/net/montoyo/wd/client/renderers/ScreenBaker.java create mode 100644 src/main/java/net/montoyo/wd/client/renderers/ScreenRenderer.java create mode 100644 src/main/java/net/montoyo/wd/core/DefaultPeripheral.java create mode 100644 src/main/java/net/montoyo/wd/core/IPeripheral.java create mode 100644 src/main/java/net/montoyo/wd/core/MissingPermissionException.java create mode 100644 src/main/java/net/montoyo/wd/core/ScreenRights.java create mode 100644 src/main/java/net/montoyo/wd/core/WDCreativeTab.java create mode 100644 src/main/java/net/montoyo/wd/data/GuiData.java create mode 100644 src/main/java/net/montoyo/wd/data/KeyboardData.java create mode 100644 src/main/java/net/montoyo/wd/data/ScreenConfigData.java create mode 100644 src/main/java/net/montoyo/wd/data/SetURLData.java create mode 100644 src/main/java/net/montoyo/wd/entity/TileEntityKeyboard.java create mode 100644 src/main/java/net/montoyo/wd/entity/TileEntityPeripheralBase.java create mode 100644 src/main/java/net/montoyo/wd/entity/TileEntityRCtrl.java create mode 100644 src/main/java/net/montoyo/wd/entity/TileEntityScreen.java create mode 100644 src/main/java/net/montoyo/wd/item/ItemLinker.java create mode 100644 src/main/java/net/montoyo/wd/item/ItemMinePad2.java create mode 100644 src/main/java/net/montoyo/wd/item/ItemOwnershipThief.java create mode 100644 src/main/java/net/montoyo/wd/item/ItemPeripheral.java create mode 100644 src/main/java/net/montoyo/wd/item/ItemScreenConfigurator.java create mode 100644 src/main/java/net/montoyo/wd/net/CMessageACResult.java create mode 100644 src/main/java/net/montoyo/wd/net/CMessageAddScreen.java create mode 100644 src/main/java/net/montoyo/wd/net/CMessageOpenGui.java create mode 100644 src/main/java/net/montoyo/wd/net/CMessageScreenUpdate.java create mode 100644 src/main/java/net/montoyo/wd/net/DefaultHandler.java create mode 100644 src/main/java/net/montoyo/wd/net/Message.java create mode 100644 src/main/java/net/montoyo/wd/net/Messages.java create mode 100644 src/main/java/net/montoyo/wd/net/SMessageACQuery.java create mode 100644 src/main/java/net/montoyo/wd/net/SMessagePadCtrl.java create mode 100644 src/main/java/net/montoyo/wd/net/SMessageRequestTEData.java create mode 100644 src/main/java/net/montoyo/wd/net/SMessageScreenCtrl.java create mode 100644 src/main/java/net/montoyo/wd/utilities/AABB.java create mode 100644 src/main/java/net/montoyo/wd/utilities/BlockSide.java create mode 100644 src/main/java/net/montoyo/wd/utilities/DontSerialize.java create mode 100644 src/main/java/net/montoyo/wd/utilities/Log.java create mode 100644 src/main/java/net/montoyo/wd/utilities/Multiblock.java create mode 100644 src/main/java/net/montoyo/wd/utilities/NameUUIDPair.java create mode 100644 src/main/java/net/montoyo/wd/utilities/Util.java create mode 100644 src/main/java/net/montoyo/wd/utilities/Vector2i.java create mode 100644 src/main/java/net/montoyo/wd/utilities/Vector3f.java create mode 100644 src/main/java/net/montoyo/wd/utilities/Vector3i.java create mode 100644 src/main/java/net/montoyo/wd/utilities/VideoType.java create mode 100644 src/main/resources/assets/mcef/html/home.html create mode 100644 src/main/resources/assets/mcef/html/jquery.js create mode 100644 src/main/resources/assets/mcef/html/jquery.tube.js create mode 100644 src/main/resources/assets/mcef/html/test.html create mode 100644 src/main/resources/assets/mcef/mime.types create mode 100644 src/main/resources/assets/webdisplays/blockstates/keyboard.json create mode 100644 src/main/resources/assets/webdisplays/blockstates/peripheral.json create mode 100644 src/main/resources/assets/webdisplays/blockstates/screen.json create mode 100644 src/main/resources/assets/webdisplays/gui/keyboard.json create mode 100644 src/main/resources/assets/webdisplays/gui/screencfg.json create mode 100644 src/main/resources/assets/webdisplays/gui/seturl.json create mode 100644 src/main/resources/assets/webdisplays/lang/en_US.lang create mode 100644 src/main/resources/assets/webdisplays/models/block/kb_left.json create mode 100644 src/main/resources/assets/webdisplays/models/block/kb_right.json create mode 100644 src/main/resources/assets/webdisplays/models/block/peripheral.json create mode 100644 src/main/resources/assets/webdisplays/models/block/screen_item.json create mode 100644 src/main/resources/assets/webdisplays/models/item/kb_inv.json create mode 100644 src/main/resources/assets/webdisplays/models/item/linker.json create mode 100644 src/main/resources/assets/webdisplays/models/item/minepad.json create mode 100644 src/main/resources/assets/webdisplays/models/item/ownerthief.json create mode 100644 src/main/resources/assets/webdisplays/models/item/screencfg.json create mode 100644 src/main/resources/assets/webdisplays/models/item/stonekey.json create mode 100644 src/main/resources/assets/webdisplays/recipes/keyboard.json create mode 100644 src/main/resources/assets/webdisplays/recipes/linker.json create mode 100644 src/main/resources/assets/webdisplays/recipes/minepad.json create mode 100644 src/main/resources/assets/webdisplays/recipes/screen.json create mode 100644 src/main/resources/assets/webdisplays/recipes/screencfg.json create mode 100644 src/main/resources/assets/webdisplays/recipes/stonekey.json create mode 100644 src/main/resources/assets/webdisplays/sounds.json create mode 100644 src/main/resources/assets/webdisplays/sounds/keyboard1.ogg create mode 100644 src/main/resources/assets/webdisplays/sounds/keyboard2.ogg create mode 100644 src/main/resources/assets/webdisplays/sounds/keyboard3.ogg create mode 100644 src/main/resources/assets/webdisplays/sounds/keyboard4.ogg create mode 100644 src/main/resources/assets/webdisplays/sounds/keyboard5.ogg create mode 100644 src/main/resources/assets/webdisplays/sounds/keyboard6.ogg create mode 100644 src/main/resources/assets/webdisplays/sounds/keyboard7.ogg create mode 100644 src/main/resources/assets/webdisplays/sounds/keyboard8.ogg create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/interface.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/kb_base.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/kb_key.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/rctrl.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/redctrl.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen0.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen1.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen10.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen11.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen12.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen13.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen14.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen15.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen2.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen3.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen4.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen5.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen6.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen7.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen8.png create mode 100644 src/main/resources/assets/webdisplays/textures/blocks/screen9.png create mode 100644 src/main/resources/assets/webdisplays/textures/gui/checkbox.png create mode 100644 src/main/resources/assets/webdisplays/textures/gui/checkbox_checked.png create mode 100644 src/main/resources/assets/webdisplays/textures/items/batcell.png create mode 100644 src/main/resources/assets/webdisplays/textures/items/battery.png create mode 100644 src/main/resources/assets/webdisplays/textures/items/kb_inv.png create mode 100644 src/main/resources/assets/webdisplays/textures/items/linker.png create mode 100644 src/main/resources/assets/webdisplays/textures/items/minepad.png create mode 100644 src/main/resources/assets/webdisplays/textures/items/ownerthief.png create mode 100644 src/main/resources/assets/webdisplays/textures/items/pigeon.png create mode 100644 src/main/resources/assets/webdisplays/textures/items/screencfg.png create mode 100644 src/main/resources/assets/webdisplays/textures/items/stonekey.png create mode 100644 src/main/resources/assets/webdisplays/textures/models/minepad.png create mode 100644 src/main/resources/mcmod.info diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..23d710b --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# eclipse +bin +*.launch +.settings +.metadata +.classpath +.project + +# idea +out +*.ipr +*.iws +*.iml +.idea + +# gradle +build +.gradle + +# other +eclipse +run +/_OLD diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..62faee9 --- /dev/null +++ b/build.gradle @@ -0,0 +1,56 @@ +buildscript { + repositories { + jcenter() + maven { url = "http://files.minecraftforge.net/maven" } + } + dependencies { + classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' + } +} +apply plugin: 'net.minecraftforge.gradle.forge' +//Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. + + +version = "1.12.2-1.0" +group = "net.montoyo.wd" // http://maven.apache.org/guides/mini/guide-naming-conventions.html +archivesBaseName = "webdisplays" + +sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. +compileJava { + sourceCompatibility = targetCompatibility = '1.8' +} + +minecraft { + version = "1.12.2-14.23.1.2555" + runDir = "run" + + // the mappings can be changed at any time, and must be in the following format. + // snapshot_YYYYMMDD snapshot are built nightly. + // stable_# stables are built at the discretion of the MCP team. + // Use non-default mappings at your own risk. they may not always work. + // simply re-run your setup task after changing the mappings to update your workspace. + mappings = "snapshot_20171003" + // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. +} + +dependencies { +} + +processResources { + // this will ensure that this task is redone when the versions change. + inputs.property "version", project.version + inputs.property "mcversion", project.minecraft.version + + // replace stuff in mcmod.info, nothing else + from(sourceSets.main.resources.srcDirs) { + include 'mcmod.info' + + // replace version and mcversion + expand 'version':project.version, 'mcversion':project.minecraft.version + } + + // copy everything else except the mcmod.info + from(sourceSets.main.resources.srcDirs) { + exclude 'mcmod.info' + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..e9b9fd5 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,3 @@ +# Sets default memory used for gradle commands. Can be overridden by user or command line properties. +# This is required to provide enough memory for the Minecraft decompilation process. +org.gradle.jvmargs=-Xmx3G diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..30d399d8d2bf522ff5de94bf434a7cc43a9a74b5 GIT binary patch literal 52271 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 p \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..8a0b282 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/libs/mcef-1.12.2-0.9-api.jar b/libs/mcef-1.12.2-0.9-api.jar new file mode 100644 index 0000000000000000000000000000000000000000..476f59cde1284761dcc6e1403696d4fb389eed07 GIT binary patch literal 303731 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

Sl*9FKID#sW>wWy7rld-cg`wjsC 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

G9LL+e8kbI*i6 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ð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 ev) { + ev.getRegistry().registerAll(blockScreen, blockPeripheral, blockKbRight); + } + + @SubscribeEvent + public void onRegisterItems(RegistryEvent.Register ev) { + ev.getRegistry().registerAll(blockScreen.getItem(), blockPeripheral.getItem()); + ev.getRegistry().registerAll(itemScreenCfg, itemOwnerThief, itemLinker, itemStoneKey, itemMinePad); + } + + @SubscribeEvent + public void onRegisterSounds(RegistryEvent.Register ev) { + soundTyping = new SoundEvent(new ResourceLocation("webdisplays", "keyboardType")); + soundTyping.setRegistryName(soundTyping.getSoundName()); + ev.getRegistry().register(soundTyping); + } + + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load ev) { + if(ev.getWorld().isRemote || ev.getWorld().provider.getDimension() != 0) + return; + + File f = new File(ev.getWorld().getSaveHandler().getWorldDirectory(), "wd_next.txt"); + + if(f.exists()) { + try { + BufferedReader br = new BufferedReader(new FileReader(f)); + String idx = br.readLine(); + Util.silentClose(br); + + if(idx == null) + throw new RuntimeException("Seems like the file is empty (1)"); + + idx = idx.trim(); + if(idx.isEmpty()) + throw new RuntimeException("Seems like the file is empty (2)"); + + lastPadId = Integer.parseInt(idx); //This will throw NumberFormatException if it goes wrong + } catch(Throwable t) { + Log.warningEx("Could not read last minePad ID from %s. I'm afraid this might break all minePads.", t, f.getAbsolutePath()); + } + } + } + + @SubscribeEvent + public void onWorldSave(WorldEvent.Save ev) { + if(ev.getWorld().isRemote || ev.getWorld().provider.getDimension() != 0) + return; + + File f = new File(ev.getWorld().getSaveHandler().getWorldDirectory(), "wd_next.txt"); + + try { + BufferedWriter bw = new BufferedWriter(new FileWriter(f)); + bw.write("" + lastPadId + "\n"); + Util.silentClose(bw); + } catch(Throwable t) { + Log.warningEx("Could not save last minePad ID (%d) to %s. I'm afraid this might break all minePads.", t, lastPadId, f.getAbsolutePath()); + } + } + + public static int getNextAvailablePadID() { + return INSTANCE.lastPadId++; + } + +} diff --git a/src/main/java/net/montoyo/wd/block/BlockKeyboardRight.java b/src/main/java/net/montoyo/wd/block/BlockKeyboardRight.java new file mode 100644 index 0000000..24b4c2d --- /dev/null +++ b/src/main/java/net/montoyo/wd/block/BlockKeyboardRight.java @@ -0,0 +1,218 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.block; + +import net.minecraft.block.Block; +import net.minecraft.block.material.EnumPushReaction; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.block.state.BlockStateContainer; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.RayTraceResult; +import net.minecraft.world.Explosion; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.montoyo.wd.WebDisplays; +import net.montoyo.wd.core.DefaultPeripheral; +import net.montoyo.wd.core.IPeripheral; +import net.montoyo.wd.entity.TileEntityKeyboard; +import net.montoyo.wd.item.ItemLinker; +import net.montoyo.wd.utilities.BlockSide; +import net.montoyo.wd.utilities.Vector3i; + +import java.util.Random; + +public class BlockKeyboardRight extends Block implements IPeripheral { + + public static final PropertyInteger facing = PropertyInteger.create("facing", 0, 3); + private static final IProperty[] properties = new IProperty[] { facing }; + public static final AxisAlignedBB KEYBOARD_AABB = new AxisAlignedBB(0.0, 0.0, 0.0, 1.0, 1.0 / 16.0, 1.0); + + public BlockKeyboardRight() { + super(Material.ROCK); + setHardness(1.5f); + setResistance(10.f); + setUnlocalizedName("webdisplays.peripheral.keyboard"); + setRegistryName("keyboard"); + fullBlock = false; + } + + @Override + protected BlockStateContainer createBlockState() { + return new BlockStateContainer(this, properties); + } + + @Override + public int quantityDropped(Random random) { + return 0; + } + + @Override + public boolean isFullCube(IBlockState state) { + return false; + } + + @Override + public boolean isFullBlock(IBlockState state) { + return false; + } + + @Override + public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos) { + return false; + } + + @Override + public boolean isOpaqueCube(IBlockState state) { + return false; + } + + @Override + public boolean doesSideBlockRendering(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing face) { + return false; + } + + @Override + public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { + return KEYBOARD_AABB; + } + + @Override + public IBlockState getStateFromMeta(int meta) { + return getDefaultState().withProperty(facing, meta); + } + + @Override + public int getMetaFromState(IBlockState state) { + return state.getValue(facing); + } + + @Override + public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { + return new ItemStack(WebDisplays.INSTANCE.blockPeripheral, 1, 0); + } + + TileEntityKeyboard getTileEntity(World world, BlockPos pos) { + for(EnumFacing nf: EnumFacing.HORIZONTALS) { + BlockPos np = pos.add(nf.getDirectionVec()); + IBlockState ns = world.getBlockState(np); + + if(ns.getBlock() instanceof BlockPeripheral && ns.getValue(BlockPeripheral.type) == DefaultPeripheral.KEYBOARD) { + TileEntity te = world.getTileEntity(np); + if(te != null && te instanceof TileEntityKeyboard) + return (TileEntityKeyboard) te; + + break; + } + } + + return null; + } + + @Override + public boolean connect(World world, BlockPos pos, IBlockState state, Vector3i scrPos, BlockSide scrSide) { + TileEntityKeyboard keyboard = getTileEntity(world, pos); + return keyboard != null && keyboard.connect(world, pos, state, scrPos, scrSide); + } + + @Override + public EnumPushReaction getMobilityFlag(IBlockState state) { + return EnumPushReaction.IGNORE; + } + + public static boolean checkNeighborhood(IBlockAccess world, BlockPos bp, BlockPos ignore) { + for(EnumFacing neighbor: EnumFacing.HORIZONTALS) { + BlockPos np = bp.add(neighbor.getDirectionVec()); + + if(ignore == null || !np.equals(ignore)) { + IBlockState state = world.getBlockState(np); + + if(state.getBlock() instanceof BlockPeripheral) { + if(state.getValue(BlockPeripheral.type) == DefaultPeripheral.KEYBOARD) + return false; + } else if(state.getBlock() instanceof BlockKeyboardRight) + return false; + } + } + + return true; + } + + public void removeLeftPiece(World world, BlockPos pos, boolean dropItem) { + for(EnumFacing nf: EnumFacing.HORIZONTALS) { + BlockPos np = pos.add(nf.getDirectionVec()); + IBlockState ns = world.getBlockState(np); + + if(ns.getBlock() instanceof BlockPeripheral && ns.getValue(BlockPeripheral.type) == DefaultPeripheral.KEYBOARD) { + if(dropItem) + ns.getBlock().dropBlockAsItem(world, np, ns, 0); + + world.setBlockToAir(np); + break; + } + } + } + + @Override + public void neighborChanged(IBlockState state, World world, BlockPos pos, Block neighborType, BlockPos neighbor) { + if(world.isRemote) + return; + + if(neighbor.getX() == pos.getX() && neighbor.getY() == pos.getY() - 1 && neighbor.getZ() == pos.getZ() && world.isAirBlock(neighbor)) { + removeLeftPiece(world, pos, true); + world.setBlockToAir(pos); + } + } + + @Override + public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer ply, boolean willHarvest) { + if(!world.isRemote) + removeLeftPiece(world, pos, !ply.isCreative()); + + return super.removedByPlayer(state, world, pos, ply, willHarvest); + } + + @Override + public void onBlockDestroyedByExplosion(World world, BlockPos pos, Explosion explosionIn) { + if(!world.isRemote) + removeLeftPiece(world, pos, true); + } + + @Override + public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity) { + double rpos = (entity.posY - ((double) pos.getY())) * 16.0; + if(!world.isRemote && rpos >= 1.0 && rpos <= 2.0 && Math.random() < 0.25) { + TileEntityKeyboard tek = getTileEntity(world, pos); + + if(tek != null) + tek.simulateCat(entity); + } + } + + @Override + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + if(player.isSneaking()) + return false; + + if(player.getHeldItem(hand).getItem() instanceof ItemLinker) + return false; + + TileEntityKeyboard tek = getTileEntity(world, pos); + if(tek != null) + return tek.onRightClick(player, hand, BlockSide.values()[facing.ordinal()]); + + return false; + } + +} diff --git a/src/main/java/net/montoyo/wd/block/BlockPeripheral.java b/src/main/java/net/montoyo/wd/block/BlockPeripheral.java new file mode 100644 index 0000000..0a39030 --- /dev/null +++ b/src/main/java/net/montoyo/wd/block/BlockPeripheral.java @@ -0,0 +1,243 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.block; + +import net.minecraft.block.Block; +import net.minecraft.block.material.EnumPushReaction; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyEnum; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.block.state.BlockStateContainer; +import net.minecraft.block.state.IBlockState; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumBlockRenderType; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.NonNullList; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3i; +import net.minecraft.world.Explosion; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.montoyo.wd.WebDisplays; +import net.montoyo.wd.core.DefaultPeripheral; +import net.montoyo.wd.entity.TileEntityKeyboard; +import net.montoyo.wd.entity.TileEntityPeripheralBase; +import net.montoyo.wd.item.ItemLinker; +import net.montoyo.wd.item.ItemPeripheral; +import net.montoyo.wd.utilities.BlockSide; +import net.montoyo.wd.utilities.Log; + +import javax.annotation.Nullable; + +public class BlockPeripheral extends WDBlockContainer { + + public static final PropertyEnum type = PropertyEnum.create("type", DefaultPeripheral.class); + public static final PropertyInteger facing = PropertyInteger.create("facing", 0, 3); + private static final IProperty[] properties = new IProperty[] { type, facing }; + + public BlockPeripheral() { + super(Material.ROCK); + setHardness(1.5f); + setResistance(10.f); + setCreativeTab(WebDisplays.CREATIVE_TAB); + setName("peripheral"); + } + + @Override + protected ItemBlock createItemBlock() { + return new ItemPeripheral(this); + } + + @Override + protected BlockStateContainer createBlockState() { + return new BlockStateContainer(this, properties); + } + + @Override + public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing rrezozei, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand) { + int rot = MathHelper.floor(((double) (placer.rotationYaw * 4.0f / 360.0f)) + 2.5) & 3; + return getDefaultState().withProperty(type, DefaultPeripheral.values()[meta]).withProperty(facing, rot); + } + + @Override + public void getSubBlocks(CreativeTabs tab, NonNullList list) { + for(DefaultPeripheral dp : DefaultPeripheral.values()) + list.add(new ItemStack(getItem(), 1, dp.ordinal())); + } + + @Override + public IBlockState getStateFromMeta(int meta) { + return getDefaultState().withProperty(type, DefaultPeripheral.values()[meta & 3]).withProperty(facing, (meta >> 2) & 3); + } + + @Override + public int getMetaFromState(IBlockState state) { + return state.getValue(type).ordinal() | (state.getValue(facing) << 2); + } + + @Nullable + @Override + public TileEntity createNewTileEntity(World world, int meta) { + Class cls = DefaultPeripheral.values()[meta & 3].getTEClass(); + if(cls == null) + return null; + + try { + return cls.newInstance(); + } catch(Throwable t) { + Log.errorEx("Couldn't instantiate peripheral TileEntity:", t); + } + + return null; + } + + @Override + public EnumBlockRenderType getRenderType(IBlockState state) { + return EnumBlockRenderType.MODEL; + } + + @Override + public int damageDropped(IBlockState state) { + return state.getValue(type).ordinal(); + } + + @Override + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + if(player.isSneaking()) + return false; + + if(player.getHeldItem(hand).getItem() instanceof ItemLinker) + return false; + + TileEntity te = world.getTileEntity(pos); + if(te == null || !(te instanceof TileEntityPeripheralBase)) + return false; + + return ((TileEntityPeripheralBase) te).onRightClick(player, hand, BlockSide.values()[facing.ordinal()]); + } + + @Override + public boolean isFullCube(IBlockState state) { + return state.getValue(type) != DefaultPeripheral.KEYBOARD; + } + + @Override + public boolean isFullBlock(IBlockState state) { + return state.getValue(type) != DefaultPeripheral.KEYBOARD; + } + + @Override + public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos) { + return state.getValue(type) != DefaultPeripheral.KEYBOARD; + } + + @Override + public boolean isOpaqueCube(IBlockState state) { + return state.getValue(type) != DefaultPeripheral.KEYBOARD; + } + + @Override + public boolean doesSideBlockRendering(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing face) { + return state.getValue(type) != DefaultPeripheral.KEYBOARD; + } + + @Override + public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { + return state.getValue(type) == DefaultPeripheral.KEYBOARD ? BlockKeyboardRight.KEYBOARD_AABB : FULL_BLOCK_AABB; + } + + @Override + public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { + if(world.isRemote || state.getValue(type) != DefaultPeripheral.KEYBOARD) + return; + + //Keyboard special treatment + int f = state.getValue(facing); + Vec3i dir = EnumFacing.getHorizontal(f).rotateY().getDirectionVec(); + BlockPos left = pos.add(dir); + BlockPos right = pos.subtract(dir); + + if(!world.isAirBlock(pos.down()) && BlockKeyboardRight.checkNeighborhood(world, pos, null)) { + if(world.isAirBlock(right) && !world.isAirBlock(right.down()) && BlockKeyboardRight.checkNeighborhood(world, right, pos)) { + world.setBlockState(right, WebDisplays.INSTANCE.blockKbRight.getDefaultState().withProperty(BlockKeyboardRight.facing, f)); + return; + } else if(world.isAirBlock(left) && !world.isAirBlock(left.down()) && BlockKeyboardRight.checkNeighborhood(world, left, pos)) { + world.setBlockState(left, state); + world.setBlockState(pos, WebDisplays.INSTANCE.blockKbRight.getDefaultState().withProperty(BlockKeyboardRight.facing, f)); + return; + } + } + + //Not good; remove this shit... + world.setBlockToAir(pos); + if(!(placer instanceof EntityPlayer) || !((EntityPlayer) placer).isCreative()) + dropBlockAsItem(world, pos, state, 0); + } + + @Override + public EnumPushReaction getMobilityFlag(IBlockState state) { + return EnumPushReaction.IGNORE; + } + + private void removeRightPiece(World world, BlockPos pos) { + for(EnumFacing nf: EnumFacing.HORIZONTALS) { + BlockPos np = pos.add(nf.getDirectionVec()); + + if(world.getBlockState(np).getBlock() instanceof BlockKeyboardRight) { + world.setBlockToAir(np); + break; + } + } + } + + @Override + public void neighborChanged(IBlockState state, World world, BlockPos pos, Block neighborType, BlockPos neighbor) { + if(world.isRemote || state.getValue(type) != DefaultPeripheral.KEYBOARD) + return; + + if(neighbor.getX() == pos.getX() && neighbor.getY() == pos.getY() - 1 && neighbor.getZ() == pos.getZ() && world.isAirBlock(neighbor)) { + removeRightPiece(world, pos); + world.setBlockToAir(pos); + dropBlockAsItem(world, pos, state, 0); + } + } + + @Override + public void onBlockDestroyedByPlayer(World world, BlockPos pos, IBlockState state) { + if(!world.isRemote && state.getValue(type) == DefaultPeripheral.KEYBOARD) + removeRightPiece(world, pos); + } + + @Override + public void onBlockDestroyedByExplosion(World world, BlockPos pos, Explosion explosion) { + if(!world.isRemote && world.getBlockState(pos).getValue(type) == DefaultPeripheral.KEYBOARD) + removeRightPiece(world, pos); + } + + @Override + public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity) { + if(!world.isRemote && world.getBlockState(pos).getValue(type) == DefaultPeripheral.KEYBOARD) { + double rpos = (entity.posY - ((double) pos.getY())) * 16.0; + + if(rpos >= 1.0 && rpos <= 2.0 && Math.random() < 0.25) { + TileEntity te = world.getTileEntity(pos); + + if(te != null && te instanceof TileEntityKeyboard) + ((TileEntityKeyboard) te).simulateCat(entity); + } + } + } + +} diff --git a/src/main/java/net/montoyo/wd/block/BlockScreen.java b/src/main/java/net/montoyo/wd/block/BlockScreen.java new file mode 100644 index 0000000..c762029 --- /dev/null +++ b/src/main/java/net/montoyo/wd/block/BlockScreen.java @@ -0,0 +1,253 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.block; + +import net.minecraft.block.material.EnumPushReaction; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyBool; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.block.state.BlockStateContainer; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumBlockRenderType; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.Explosion; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.property.ExtendedBlockState; +import net.minecraftforge.common.property.IExtendedBlockState; +import net.minecraftforge.common.property.IUnlistedProperty; +import net.minecraftforge.common.property.Properties; +import net.montoyo.wd.WebDisplays; +import net.montoyo.wd.core.ScreenRights; +import net.montoyo.wd.data.SetURLData; +import net.montoyo.wd.entity.TileEntityScreen; +import net.montoyo.wd.utilities.*; + +import javax.annotation.Nullable; + +public class BlockScreen extends WDBlockContainer { + + public static final PropertyBool hasTE = PropertyBool.create("haste"); + private static final IProperty[] properties = new IProperty[] { hasTE }; + public static final IUnlistedProperty[] sideFlags = new IUnlistedProperty[6]; + static { + for(int i = 0; i < sideFlags.length; i++) + sideFlags[i] = Properties.toUnlisted(PropertyInteger.create("neighbor" + i, 0, 15)); + } + + public static final int BAR_BOT = 1; + public static final int BAR_RIGHT = 2; + public static final int BAR_TOP = 4; + public static final int BAR_LEFT = 8; + + public BlockScreen() { + super(Material.ROCK); + setHardness(1.5f); + setResistance(10.f); + setCreativeTab(WebDisplays.CREATIVE_TAB); + setName("screen"); + } + + @Override + public EnumBlockRenderType getRenderType(IBlockState state) { + return EnumBlockRenderType.MODEL; + } + + @Override + protected BlockStateContainer createBlockState() { + return new ExtendedBlockState(this, properties, sideFlags); + } + + public static boolean isScreenBlock(IBlockAccess world, Vector3i pos) { + return world.getBlockState(pos.toBlock()).getBlock() instanceof BlockScreen; + } + + @Override + public IBlockState getExtendedState(IBlockState state, IBlockAccess world, BlockPos bpos) { + IExtendedBlockState ret = (IExtendedBlockState) blockState.getBaseState(); + Vector3i pos = new Vector3i(bpos); + + for(BlockSide side : BlockSide.values()) { + int icon = 0; + if(!isScreenBlock(world, side.up.clone().add(pos))) icon |= BAR_TOP; + if(!isScreenBlock(world, side.down.clone().add(pos))) icon |= BAR_BOT; + if(!isScreenBlock(world, side.left.clone().add(pos))) icon |= BAR_LEFT; + if(!isScreenBlock(world, side.right.clone().add(pos))) icon |= BAR_RIGHT; + + ret = ret.withProperty(sideFlags[side.ordinal()], icon); + } + + return ret; + } + + @Override + public IBlockState getStateFromMeta(int meta) { + return getDefaultState().withProperty(hasTE, meta != 0); + } + + @Override + public int getMetaFromState(IBlockState state) { + return state.getValue(hasTE) ? 1 : 0; + } + + @Override + public boolean onBlockActivated(World world, BlockPos bpos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + if(!player.getHeldItem(hand).isEmpty()) + return false; + + if(world.isRemote) + return true; + + boolean sneaking = player.isSneaking(); + Vector3i pos = new Vector3i(bpos); + BlockSide side = BlockSide.values()[facing.ordinal()]; + + Multiblock.findOrigin(world, pos, side, null); + TileEntityScreen te = (TileEntityScreen) world.getTileEntity(pos.toBlock()); + + if(te != null && te.getScreen(side) != null) { + TileEntityScreen.Screen scr = te.getScreen(side); + + if(sneaking) { //Set URL + if((scr.rightsFor(player) & ScreenRights.CHANGE_URL) == 0) + Util.toast(player, "restrictions"); + else + (new SetURLData(pos, scr.side, scr.url)).sendTo((EntityPlayerMP) player); + + return true; + } else { + if((scr.rightsFor(player) & ScreenRights.CLICK) == 0) { + Util.toast(player, "restrictions"); + return true; + } + + if(side.right.x < 0) + hitX -= 1.f; + + if(side.right.z < 0 || side == BlockSide.TOP || side == BlockSide.BOTTOM) + hitZ -= 1.f; + + Vector3f rel = new Vector3f(bpos.getX(), bpos.getY(), bpos.getZ()); + rel.sub((float) pos.x, (float) pos.y, (float) pos.z); + rel.add(hitX, hitY, hitZ); + + float cx = rel.dot(side.right.toFloat()) - 2.f / 16.f; + float cy = rel.dot(side.up.toFloat()) - 2.f / 16.f; + float sw = ((float) scr.size.x) - 4.f / 16.f; + float sh = ((float) scr.size.y) - 4.f / 16.f; + + cx /= sw; + cy /= sh; + + if(cx >= 0.f && cx <= 1.0 && cy >= 0.f && cy <= 1.f) { + if(side != BlockSide.BOTTOM) + cy = 1.f - cy; + + cx *= (float) scr.resolution.x; + cy *= (float) scr.resolution.y; + te.click(side, new Vector2i((int) cx, (int) cy)); + } + + return true; + } + } else if(sneaking) { + Util.toast(player, "turnOn"); + return true; + } + + Vector2i size = Multiblock.measure(world, pos, side); + if(size.x < 2 || size.y < 2) { + Util.toast(player, "tooSmall"); + return true; + } + + Vector3i err = Multiblock.check(world, pos, size, side); + if(err != null) { + Util.toast(player, "invalid", err.toString()); + return true; + } + + boolean created = false; + Log.info("Structure at %s of size %dx%d", pos.toString(), size.x, size.y); + + if(te == null) { + BlockPos bp = pos.toBlock(); + world.setBlockState(bp, getDefaultState().withProperty(hasTE, true)); + te = (TileEntityScreen) world.getTileEntity(bp); + created = true; + } + + te.addScreen(side, size, null, !created).setOwner(player); + return true; + } + + @Nullable + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return meta == 0 ? null : new TileEntityScreen(); + } + + @Override + public void onBlockDestroyedByPlayer(World world, BlockPos pos, IBlockState dontCare) { + if(!world.isRemote) { + Vector3i bp = new Vector3i(pos); + Multiblock.BlockOverride override = new Multiblock.BlockOverride(bp, Multiblock.OverrideAction.SIMULATE); + + for(BlockSide bs: BlockSide.values()) + destroySide(world, bp.clone(), bs, override); + } + } + + private void destroySide(World world, Vector3i pos, BlockSide side, Multiblock.BlockOverride override) { + Multiblock.findOrigin(world, pos, side, override); + BlockPos bp = pos.toBlock(); + TileEntity te = world.getTileEntity(bp); + + if(te != null && te instanceof TileEntityScreen) + world.setBlockState(bp, getDefaultState().withProperty(hasTE, false)); //Destroy tile entity + } + + @Override + public EnumPushReaction getMobilityFlag(IBlockState state) { + return EnumPushReaction.IGNORE; + } + + @Override + public void onBlockDestroyedByExplosion(World world, BlockPos pos, Explosion explosion) { + onBlockDestroyedByPlayer(world, pos, null); + } + + @Override + public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase whoDidThisShit, ItemStack stack) { + if(world.isRemote) + return; + + Multiblock.BlockOverride override = new Multiblock.BlockOverride(new Vector3i(pos), Multiblock.OverrideAction.IGNORE); + Vector3i[] neighbors = new Vector3i[6]; + + neighbors[0] = new Vector3i(pos.getX() + 1, pos.getY(), pos.getZ()); + neighbors[1] = new Vector3i(pos.getX() - 1, pos.getY(), pos.getZ()); + neighbors[2] = new Vector3i(pos.getX(), pos.getY() + 1, pos.getZ()); + neighbors[3] = new Vector3i(pos.getX(), pos.getY() - 1, pos.getZ()); + neighbors[4] = new Vector3i(pos.getX(), pos.getY(), pos.getZ() + 1); + neighbors[5] = new Vector3i(pos.getX(), pos.getY(), pos.getZ() - 1); + + for(Vector3i neighbor: neighbors) { + if(world.getBlockState(neighbor.toBlock()).getBlock() instanceof BlockScreen) { + for(BlockSide bs: BlockSide.values()) + destroySide(world, neighbor.clone(), bs, override); + } + } + } + +} diff --git a/src/main/java/net/montoyo/wd/block/WDBlock.java b/src/main/java/net/montoyo/wd/block/WDBlock.java new file mode 100644 index 0000000..4dab4a7 --- /dev/null +++ b/src/main/java/net/montoyo/wd/block/WDBlock.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.block; + +import net.minecraft.block.Block; +import net.minecraft.block.material.MapColor; +import net.minecraft.block.material.Material; +import net.minecraft.item.ItemBlock; + +public abstract class WDBlock extends Block { + + protected ItemBlock itemBlock; + + public WDBlock(Material mat, MapColor color) { + super(mat, color); + } + + public WDBlock(Material material) { + super(material); + } + + protected void setName(String name) { + setUnlocalizedName("webdisplays." + name); + setRegistryName(name); + } + + public void makeItemBlock() { + if(itemBlock != null) + throw new RuntimeException("WDBlock.makeItemBlock() called twice!"); + + itemBlock = new ItemBlock(this); + itemBlock.setUnlocalizedName(getUnlocalizedName()); + itemBlock.setRegistryName(getRegistryName()); + } + + public ItemBlock getItem() { + return itemBlock; + } + +} diff --git a/src/main/java/net/montoyo/wd/block/WDBlockContainer.java b/src/main/java/net/montoyo/wd/block/WDBlockContainer.java new file mode 100644 index 0000000..be2589e --- /dev/null +++ b/src/main/java/net/montoyo/wd/block/WDBlockContainer.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.block; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.MapColor; +import net.minecraft.block.material.Material; +import net.minecraft.item.ItemBlock; + +public abstract class WDBlockContainer extends BlockContainer { + + protected ItemBlock itemBlock; + + public WDBlockContainer(Material mat, MapColor color) { + super(mat, color); + } + + public WDBlockContainer(Material material) { + super(material); + } + + protected void setName(String name) { + setUnlocalizedName("webdisplays." + name); + setRegistryName(name); + } + + protected ItemBlock createItemBlock() { + return new ItemBlock(this); + } + + public void makeItemBlock() { + if(itemBlock != null) + throw new RuntimeException("WDBlockContainer.makeItemBlock() called twice!"); + + itemBlock = createItemBlock(); + itemBlock.setUnlocalizedName(getUnlocalizedName()); + itemBlock.setRegistryName(getRegistryName()); + } + + public ItemBlock getItem() { + return itemBlock; + } + +} diff --git a/src/main/java/net/montoyo/wd/client/ClientProxy.java b/src/main/java/net/montoyo/wd/client/ClientProxy.java new file mode 100644 index 0000000..5f85b56 --- /dev/null +++ b/src/main/java/net/montoyo/wd/client/ClientProxy.java @@ -0,0 +1,376 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.client; + +import com.mojang.authlib.GameProfile; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.resources.IResourceManager; +import net.minecraft.client.resources.IResourceManagerReloadListener; +import net.minecraft.client.resources.SimpleReloadableResourceManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumHand; +import net.minecraft.util.EnumHandSide; +import net.minecraft.util.NonNullList; +import net.minecraft.world.World; +import net.minecraftforge.client.event.ModelBakeEvent; +import net.minecraftforge.client.event.ModelRegistryEvent; +import net.minecraftforge.client.event.RenderSpecificHandEvent; +import net.minecraftforge.client.event.TextureStitchEvent; +import net.minecraftforge.client.model.ModelLoader; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.client.registry.ClientRegistry; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; +import net.montoyo.mcef.api.IBrowser; +import net.montoyo.mcef.api.IDisplayHandler; +import net.montoyo.mcef.api.MCEFApi; +import net.montoyo.wd.SharedProxy; +import net.montoyo.wd.WebDisplays; +import net.montoyo.wd.client.gui.GuiMinePad; +import net.montoyo.wd.client.gui.GuiScreenConfig; +import net.montoyo.wd.client.gui.GuiSetURL2; +import net.montoyo.wd.client.gui.WDScreen; +import net.montoyo.wd.client.gui.loading.GuiLoader; +import net.montoyo.wd.client.renderers.IModelBaker; +import net.montoyo.wd.client.renderers.MinePadRenderer; +import net.montoyo.wd.client.renderers.ScreenBaker; +import net.montoyo.wd.client.renderers.ScreenRenderer; +import net.montoyo.wd.data.GuiData; +import net.montoyo.wd.entity.TileEntityScreen; +import net.montoyo.wd.net.SMessagePadCtrl; +import net.montoyo.wd.utilities.*; + +import java.util.ArrayList; +import java.util.HashMap; + +public class ClientProxy extends SharedProxy implements IResourceManagerReloadListener, IDisplayHandler { + + public class PadData { + + public IBrowser view; + private boolean isInHotbar; + private int id; + private long lastURLSent; + + private PadData(String url, int id) { + view = mcef.createBrowser(url); + view.resize((int) WebDisplays.INSTANCE.padResX, (int) WebDisplays.INSTANCE.padResY); + isInHotbar = true; + this.id = id; + } + + } + + private Minecraft mc; + private ArrayList modelBakers = new ArrayList<>(); + private net.montoyo.mcef.api.API mcef; + private MinePadRenderer minePadRenderer; + + //Tracking + private ArrayList screenTracking = new ArrayList<>(); + private double unloadDistance2 = 32.0 * 32.0; + private double loadDistance2 = 30.0 * 30.0; + private int lastTracked = 0; + + //MinePads Management + private HashMap padMap = new HashMap<>(); + private ArrayList padList = new ArrayList<>(); + private int minePadTickCounter = 0; + + /**************************************** INHERITED METHODS ****************************************/ + + @Override + public void preInit() { + mc = Minecraft.getMinecraft(); + MinecraftForge.EVENT_BUS.register(this); + registerCustomBlockBaker(new ScreenBaker(), WebDisplays.INSTANCE.blockScreen); + } + + @Override + public void init() { + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityScreen.class, new ScreenRenderer()); + mcef = MCEFApi.getAPI(); + minePadRenderer = new MinePadRenderer(); + } + + @Override + public void postInit() { + ((SimpleReloadableResourceManager) mc.getResourceManager()).registerReloadListener(this); + + if(mcef == null) + throw new RuntimeException("MCEF is missing"); + + mcef.registerDisplayHandler(this); + } + + @Override + public World getWorld(int dim) { + World ret = mc.world; + if(dim == CURRENT_DIMENSION) + return ret; + + if(ret.provider.getDimension() != dim) + throw new RuntimeException("Can't get non-current dimension " + dim + " from client."); + + return ret; + } + + @Override + public void enqueue(Runnable r) { + mc.addScheduledTask(r); + } + + @Override + public void displayGui(GuiData data) { + GuiScreen gui = data.createGui(mc.currentScreen, mc.world); + if(gui != null) + mc.displayGuiScreen(gui); + } + + @Override + public void trackScreen(TileEntityScreen tes, boolean track) { + int idx = -1; + for(int i = 0; i < screenTracking.size(); i++) { + if(screenTracking.get(i) == tes) { + idx = i; + break; + } + } + + if(track) { + if(idx < 0) + screenTracking.add(tes); + } else + screenTracking.remove(idx); + } + + @Override + public void onAutocompleteResult(NameUUIDPair[] pairs) { + if(mc.currentScreen != null && mc.currentScreen instanceof WDScreen) { + if(pairs.length == 0) + ((WDScreen) mc.currentScreen).onAutocompleteFailure(); + else + ((WDScreen) mc.currentScreen).onAutocompleteResult(pairs); + } + } + + @Override + public GameProfile[] getOnlineGameProfiles() { + return new GameProfile[] { mc.player.getGameProfile() }; + } + + @Override + public void screenUpdateResolutionInGui(Vector3i pos, BlockSide side, Vector2i res) { + if(mc.currentScreen != null && mc.currentScreen instanceof GuiScreenConfig) { + GuiScreenConfig gsc = (GuiScreenConfig) mc.currentScreen; + + if(gsc.isScreen(pos, side)) + gsc.updateResolution(res); + } + } + + @Override + public void displaySetPadURLGui(String padURL) { + mc.displayGuiScreen(new GuiSetURL2(padURL)); + } + + @Override + public void openMinePadGui(int padId) { + PadData pd = padMap.get(padId); + + if(pd != null && pd.view != null) + mc.displayGuiScreen(new GuiMinePad(pd)); + } + + /**************************************** RESOURCE MANAGER METHODS ****************************************/ + + @Override + public void onResourceManagerReload(IResourceManager rm) { + Log.info("Resource manager reload: clearing GUI cache..."); + GuiLoader.clearCache(); + } + + /**************************************** DISPLAY HANDLER METHODS ****************************************/ + + @Override + public void onAddressChange(IBrowser browser, String url) { + if(browser != null) { + long t = System.currentTimeMillis(); + + for(PadData pd : padList) { + if(pd.view == browser && t - pd.lastURLSent >= 1000) { + pd.lastURLSent = t; //Avoid spamming the server with porn URLs + WebDisplays.NET_HANDLER.sendToServer(new SMessagePadCtrl(pd.id, url)); + break; + } + } + } + } + + @Override + public void onTitleChange(IBrowser browser, String title) { + } + + @Override + public void onTooltip(IBrowser browser, String text) { + } + + @Override + public void onStatusMessage(IBrowser browser, String value) { + } + + /**************************************** EVENT METHODS ****************************************/ + + @SubscribeEvent + public void onStitchTextures(TextureStitchEvent.Pre ev) { + TextureMap texMap = ev.getMap(); + + if(texMap == mc.getTextureMapBlocks()) { + for(ResourceModelPair pair : modelBakers) + pair.getModel().loadTextures(texMap); + } + } + + @SubscribeEvent + public void onBakeModel(ModelBakeEvent ev) { + for(ResourceModelPair pair : modelBakers) + ev.getModelRegistry().putObject(pair.getResourceLocation(), pair.getModel()); + } + + @SubscribeEvent + public void onRegisterModels(ModelRegistryEvent ev) { + final WebDisplays wd = WebDisplays.INSTANCE; + + registerItemModel(wd.blockScreen.getItem(), 0, "inventory"); + ModelLoader.setCustomModelResourceLocation(wd.blockPeripheral.getItem(), 0, new ModelResourceLocation("webdisplays:kb_inv", "normal")); + registerItemModel(wd.blockPeripheral.getItem(), 1, "facing=0,type=remotectrl"); + registerItemModel(wd.blockPeripheral.getItem(), 2, "facing=0,type=ccinterface"); //TODO: This doesn't work... + registerItemModel(wd.blockPeripheral.getItem(), 3, "facing=0,type=cointerface"); + registerItemModel(wd.itemScreenCfg, 0, "normal"); + registerItemModel(wd.itemOwnerThief, 0, "normal"); + registerItemModel(wd.itemLinker, 0, "normal"); + registerItemModel(wd.itemStoneKey, 0, "normal"); + registerItemModel(wd.itemMinePad, 0, "normal"); + } + + @SubscribeEvent + public void onTick(TickEvent.ClientTickEvent ev) { + if(ev.phase == TickEvent.Phase.END) { + //Unload/load screens depending on client player distance + if(mc.player != null && !screenTracking.isEmpty()) { + int id = lastTracked % screenTracking.size(); + lastTracked++; + + TileEntityScreen tes = screenTracking.get(id); + double dist2 = mc.player.getDistanceSq(tes.getPos()); + + if(tes.isLoaded()) { + if(dist2 > unloadDistance2) + tes.unload(); + else + tes.updateTrackDistance(dist2); + } else if(dist2 <= loadDistance2) + tes.load(); + } + + //Load/unload minePads depending on which item is in the player's hand + if(++minePadTickCounter >= 10) { + minePadTickCounter = 0; + EntityPlayer ep = mc.player; + + for(PadData pd: padList) + pd.isInHotbar = false; + + if(ep != null) { + updateInventory(ep.inventory.mainInventory, ep.getHeldItem(EnumHand.MAIN_HAND), 9); + updateInventory(ep.inventory.offHandInventory, ep.getHeldItem(EnumHand.OFF_HAND), 1); //Is this okay? + } + + //TODO: Check for GuiContainer.draggedStack + + for(int i = padList.size() - 1; i >= 0; i--) { + PadData pd = padList.get(i); + + if(!pd.isInHotbar) { + pd.view.close(); + pd.view = null; //This is for GuiMinePad, in case the player dies with the GUI open + padList.remove(i); + padMap.remove(pd.id); + } + } + } + } + } + + @SubscribeEvent + public void onRenderPlayerHand(RenderSpecificHandEvent ev) { + if(ev.getItemStack().getItem() == WebDisplays.INSTANCE.itemMinePad) { + EnumHandSide handSide = mc.player.getPrimaryHand(); + if(ev.getHand() == EnumHand.OFF_HAND) + handSide = handSide.opposite(); + + minePadRenderer.render(ev.getItemStack(), (handSide == EnumHandSide.RIGHT) ? 1.0f : -1.0f, ev.getSwingProgress(), ev.getEquipProgress()); + ev.setCanceled(true); + } + } + + /**************************************** OTHER METHODS ****************************************/ + + private void updateInventory(NonNullList inv, ItemStack heldStack, int cnt) { + for(int i = 0; i < cnt; i++) { + ItemStack item = inv.get(i); + + if(item.getItem() == WebDisplays.INSTANCE.itemMinePad) { + NBTTagCompound tag = item.getTagCompound(); + + if(tag != null && tag.hasKey("PadID")) + updatePad(tag.getInteger("PadID"), tag, item == heldStack); + } + } + } + + private void registerCustomBlockBaker(IModelBaker baker, Block block0) { + ModelResourceLocation normalLoc = new ModelResourceLocation(block0.getRegistryName(), "normal"); + ResourceModelPair pair = new ResourceModelPair(normalLoc, baker); + modelBakers.add(pair); + ModelLoader.setCustomStateMapper(block0, new StaticStateMapper(normalLoc)); + } + + private void registerItemModel(Item item, int meta, String variant) { + ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), variant)); + } + + private void updatePad(int id, NBTTagCompound tag, boolean isSelected) { + PadData pd = padMap.get(id); + + if(pd != null) + pd.isInHotbar = true; + else if(isSelected && tag.hasKey("PadURL")) { + pd = new PadData(tag.getString("PadURL"), id); + padMap.put(id, pd); + padList.add(pd); + } + } + + public MinePadRenderer getMinePadRenderer() { + return minePadRenderer; + } + + public PadData getPadByID(int id) { + return padMap.get(id); + } + + public net.montoyo.mcef.api.API getMCEF() { + return mcef; + } + +} diff --git a/src/main/java/net/montoyo/wd/client/ResourceModelPair.java b/src/main/java/net/montoyo/wd/client/ResourceModelPair.java new file mode 100644 index 0000000..d70d55e --- /dev/null +++ b/src/main/java/net/montoyo/wd/client/ResourceModelPair.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.client; + +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.montoyo.wd.client.renderers.IModelBaker; + +public class ResourceModelPair { + + private ModelResourceLocation resLoc; + private IModelBaker model; + + public ResourceModelPair(ModelResourceLocation rl, IModelBaker m) { + resLoc = rl; + model = m; + } + + public ModelResourceLocation getResourceLocation() { + return resLoc; + } + + public IModelBaker getModel() { + return model; + } + +} diff --git a/src/main/java/net/montoyo/wd/client/StaticStateMapper.java b/src/main/java/net/montoyo/wd/client/StaticStateMapper.java new file mode 100644 index 0000000..1a06028 --- /dev/null +++ b/src/main/java/net/montoyo/wd/client/StaticStateMapper.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.client; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.client.renderer.block.statemap.StateMapperBase; + +public class StaticStateMapper extends StateMapperBase { + + private ModelResourceLocation resLoc; + + public StaticStateMapper(ModelResourceLocation rl) { + resLoc = rl; + } + + @Override + protected ModelResourceLocation getModelResourceLocation(IBlockState state) { + return resLoc; + } + +} diff --git a/src/main/java/net/montoyo/wd/client/gui/GuiKeyboard.java b/src/main/java/net/montoyo/wd/client/gui/GuiKeyboard.java new file mode 100644 index 0000000..8206b95 --- /dev/null +++ b/src/main/java/net/montoyo/wd/client/gui/GuiKeyboard.java @@ -0,0 +1,219 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.client.gui; + +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import net.montoyo.wd.WebDisplays; +import net.montoyo.wd.client.gui.controls.Button; +import net.montoyo.wd.client.gui.controls.Control; +import net.montoyo.wd.client.gui.controls.Label; +import net.montoyo.wd.client.gui.loading.FillControl; +import net.montoyo.wd.entity.TileEntityScreen; +import net.montoyo.wd.net.SMessageScreenCtrl; +import net.montoyo.wd.utilities.BlockSide; +import net.montoyo.wd.utilities.Log; +import net.montoyo.wd.utilities.Util; +import org.lwjgl.input.Keyboard; + +import java.io.*; +import java.util.Map; + +@SideOnly(Side.CLIENT) +public class GuiKeyboard extends WDScreen { + + private static final String WARNING_FNAME = "wd_keyboard_warning.txt"; + + private TileEntityScreen tes; + private BlockSide side; + private String eventStack = ""; + private boolean lastIsType = false; + private BlockPos kbPos; + private boolean showWarning = true; + + @FillControl + private Label lblInfo; + + @FillControl + private Button btnOk; + + public GuiKeyboard() { + } + + public GuiKeyboard(TileEntityScreen tes, BlockSide side, BlockPos kbPos) { + this.tes = tes; + this.side = side; + this.kbPos = kbPos; + } + + @Override + protected void addLoadCustomVariables(Map vars) { + vars.put("showWarning", showWarning ? 1.0 : 0.0); + } + + @Override + public void initGui() { + super.initGui(); + + if(mc.isIntegratedServerRunning() && mc.getIntegratedServer() != null && !mc.getIntegratedServer().getPublic()) + showWarning = false; //NO NEED + else + showWarning = !hasUserReadWarning(); + + loadFrom(new ResourceLocation("webdisplays", "gui/keyboard.json")); + + if(showWarning) { + int maxLabelW = 0; + int totalH = 0; + + for(Control ctrl : controls) { + if(ctrl != lblInfo && ctrl instanceof Label) { + if(ctrl.getWidth() > maxLabelW) + maxLabelW = ctrl.getWidth(); + + totalH += ctrl.getHeight(); + ctrl.setPos((width - ctrl.getWidth()) / 2, 0); + } + } + + btnOk.setWidth(maxLabelW); + btnOk.setPos((width - maxLabelW) / 2, 0); + totalH += btnOk.getHeight(); + + int y = (height - totalH) / 2; + for(Control ctrl : controls) { + if(ctrl != lblInfo) { + ctrl.setPos(ctrl.getX(), y); + y += ctrl.getHeight(); + } + } + } else { + mc.inGameHasFocus = true; + mc.mouseHelper.grabMouseCursor(); + } + + defaultBackground = showWarning; + syncTicks = 5; + } + + @Override + public void handleInput() { + if(showWarning) { + try { + super.handleInput(); + } catch(IOException ex) { + Log.warningEx("Caught exception while handling screen input", ex); + } + + return; + } + + if(Keyboard.isCreated()) { + while(Keyboard.next()) { + if(Keyboard.getEventKey() == Keyboard.KEY_ESCAPE) + mc.displayGuiScreen(null); + else { + char chr = Keyboard.getEventCharacter(); + + if(chr == '\n' || chr == '\r' || chr == '\b') { + if(lastIsType) + lastIsType = false; + + if(!eventStack.isEmpty()) + eventStack += (char) 1; + + if(Keyboard.getEventKeyState()) + eventStack += 'p'; + else + eventStack += 'r'; + + eventStack += chr; + } else if(chr != 0) { + if(!lastIsType) { + if(!eventStack.isEmpty()) + eventStack += (char) 1; + + eventStack += 't'; + lastIsType = true; + } + + eventStack += chr; + } + } + } + + if(!eventStack.isEmpty() && !syncRequested()) + requestSync(); + } + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + @Override + protected void sync() { + if(!eventStack.isEmpty()) { + WebDisplays.NET_HANDLER.sendToServer(SMessageScreenCtrl.type(tes, side, eventStack, kbPos)); + eventStack = ""; + lastIsType = false; + } + } + + @GuiSubscribe + public void onClick(Button.ClickEvent ev) { + if(showWarning && ev.getSource() == btnOk) { + writeUserAcknowledge(); + + for(Control ctrl: controls) { + if(ctrl instanceof Label) { + Label lbl = (Label) ctrl; + lbl.setVisible(!lbl.isVisible()); + } + } + + btnOk.setDisabled(true); + btnOk.setVisible(false); + showWarning = false; + defaultBackground = false; + mc.inGameHasFocus = true; + mc.mouseHelper.grabMouseCursor(); + } + } + + private boolean hasUserReadWarning() { + try { + File f = new File(mc.mcDataDir, WARNING_FNAME); + + if(f.exists()) { + BufferedReader br = new BufferedReader(new FileReader(f)); + String str = br.readLine(); + Util.silentClose(br); + + return str != null && str.trim().equalsIgnoreCase("read"); + } + } catch(Throwable t) { + Log.warningEx("Can't know if user has already read the warning", t); + } + + return false; + } + + private void writeUserAcknowledge() { + try { + File f = new File(mc.mcDataDir, WARNING_FNAME); + + BufferedWriter bw = new BufferedWriter(new FileWriter(f)); + bw.write("read\n"); + Util.silentClose(bw); + } catch(Throwable t) { + Log.warningEx("Can't write that the user read the warning", t); + } + } + +} diff --git a/src/main/java/net/montoyo/wd/client/gui/GuiMinePad.java b/src/main/java/net/montoyo/wd/client/gui/GuiMinePad.java new file mode 100644 index 0000000..8642705 --- /dev/null +++ b/src/main/java/net/montoyo/wd/client/gui/GuiMinePad.java @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.client.gui; + +import net.minecraft.client.renderer.BufferBuilder; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import net.montoyo.wd.WebDisplays; +import net.montoyo.wd.client.ClientProxy; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; + +import static org.lwjgl.opengl.GL11.*; + +@SideOnly(Side.CLIENT) +public class GuiMinePad extends WDScreen { + + private ClientProxy.PadData pad; + private double vx; + private double vy; + private double vw; + private double vh; + + public GuiMinePad() { + } + + public GuiMinePad(ClientProxy.PadData pad) { + this.pad = pad; + } + + @Override + public void initGui() { + super.initGui(); + + vw = ((double) width) - 32.0f; + vh = vw / WebDisplays.PAD_RATIO; + vx = 16.0f; + vy = (((double) height) - vh) / 2.0f; + } + + private static void addRect(BufferBuilder bb, double x, double y, double w, double h) { + bb.pos(x, y, 0.0).endVertex(); + bb.pos(x + w, y, 0.0).endVertex(); + bb.pos(x + w, y + h, 0.0).endVertex(); + bb.pos(x, y + h, 0.0).endVertex(); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float ptt) { + drawDefaultBackground(); + + glDisable(GL_TEXTURE_2D); + glDisable(GL_CULL_FACE); + glColor4f(0.73f, 0.73f, 0.73f, 1.0f); + + Tessellator t = Tessellator.getInstance(); + BufferBuilder bb = t.getBuffer(); + bb.begin(GL_QUADS, DefaultVertexFormats.POSITION); + addRect(bb, vx, vy - 16, vw, 16); + addRect(bb, vx, vy + vh, vw, 16); + addRect(bb, vx - 16, vy, 16, vh); + addRect(bb, vx + vw, vy, 16, vh); + t.draw(); + + glEnable(GL_TEXTURE_2D); + + if(pad.view != null) { + glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + pad.view.draw(vx, vy + vh, vx + vw, vy); + } + + glEnable(GL_CULL_FACE); + } + + @Override + public void handleInput() { + while(Keyboard.next()) { + char key = Keyboard.getEventCharacter(); + boolean pressed = Keyboard.getEventKeyState(); + + if(Keyboard.getEventKey() == Keyboard.KEY_ESCAPE) { + mc.displayGuiScreen(null); + return; + } + + if(pad.view != null) { + if(key != '.' && key != ';' && key != ',') { + if(pressed) + pad.view.injectKeyPressed(key, 0); + else + pad.view.injectKeyReleased(key, 0); + } + + if(key != Keyboard.CHAR_NONE) + pad.view.injectKeyTyped(key, 0); + } + } + + int vx = screen2DisplayX((int) this.vx); + int vy = screen2DisplayY((int) this.vy); + int vh = screen2DisplayX((int) this.vh); + int vw = screen2DisplayY((int) this.vw); + + while(Mouse.next()) { + int btn = Mouse.getEventButton(); + boolean pressed = Mouse.getEventButtonState(); + int sx = Mouse.getEventX(); + int sy = Mouse.getEventY(); + + if(pad.view != null && sx >= vx && sx <= vx + vw && sy >= vy && sy <= vy + vh) { + sx -= vx; + sy -= vy; + sy = vh - sy; + + //Scale again according to the webview + sx = (int) (((double) sx) / ((double) vw) * WebDisplays.INSTANCE.padResX); + sy = (int) (((double) sy) / ((double) vh) * WebDisplays.INSTANCE.padResY); + + if(btn == -1) + pad.view.injectMouseMove(sx, sy, 0, false); + else + pad.view.injectMouseButton(sx, sy, 0, btn + 1, pressed, 1); + } + } + } + + @Override + public void updateScreen() { + if(pad.view == null) + mc.displayGuiScreen(null); //In case the user dies with the pad in the hand + } + + @Override + public boolean doesGuiPauseGame() { + //TODO: Is this necessary?? + return false; + } + +} diff --git a/src/main/java/net/montoyo/wd/client/gui/GuiScreenConfig.java b/src/main/java/net/montoyo/wd/client/gui/GuiScreenConfig.java new file mode 100644 index 0000000..bce5f7f --- /dev/null +++ b/src/main/java/net/montoyo/wd/client/gui/GuiScreenConfig.java @@ -0,0 +1,415 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.client.gui; + +import net.minecraft.util.ResourceLocation; +import net.montoyo.wd.WebDisplays; +import net.montoyo.wd.client.gui.controls.*; +import net.montoyo.wd.client.gui.loading.FillControl; +import net.montoyo.wd.core.ScreenRights; +import net.montoyo.wd.entity.TileEntityScreen; +import net.montoyo.wd.net.SMessageScreenCtrl; +import net.montoyo.wd.utilities.*; + +import java.util.ArrayList; +import java.util.Arrays; + +public class GuiScreenConfig extends WDScreen { + + //Screen data + private TileEntityScreen tes; + private BlockSide side; + private NameUUIDPair owner; + private NameUUIDPair[] friends; + private int friendRights; + private int otherRights; + + //Autocomplete handling + private boolean waitingAC; + private int acFailTicks = -1; + + private ArrayList acResults = new ArrayList(); + private boolean adding; + + //Controls + @FillControl + private Label lblOwner; + + @FillControl + private List lstFriends; + + @FillControl + private Button btnAdd; + + @FillControl + private TextField tfFriend; + + @FillControl + private TextField tfResX; + + @FillControl + private TextField tfResY; + + @FillControl + private ControlGroup grpFriends; + + @FillControl + private ControlGroup grpOthers; + + @FillControl + private CheckBox boxFSetUrl; + + @FillControl + private CheckBox boxFClick; + + @FillControl + private CheckBox boxFFriends; + + @FillControl + private CheckBox boxFOthers; + + @FillControl + private CheckBox boxFUpgrades; + + @FillControl + private CheckBox boxFResolution; + + @FillControl + private CheckBox boxOSetUrl; + + @FillControl + private CheckBox boxOClick; + + @FillControl + private CheckBox boxOUpgrades; + + @FillControl + private CheckBox boxOResolution; + + @FillControl + private Button btnSetRes; + + private CheckBox[] friendBoxes; + private CheckBox[] otherBoxes; + + public GuiScreenConfig(TileEntityScreen tes, BlockSide side, NameUUIDPair owner, NameUUIDPair[] friends, int fr, int or) { + this.tes = tes; + this.side = side; + this.owner = owner; + this.friends = friends; + friendRights = fr; + otherRights = or; + } + + @Override + public void initGui() { + super.initGui(); + loadFrom(new ResourceLocation("webdisplays", "gui/screencfg.json")); + + friendBoxes = new CheckBox[] { boxFResolution, boxFUpgrades, boxFOthers, boxFFriends, boxFClick, boxFSetUrl }; + boxFResolution.setUserdata(ScreenRights.CHANGE_RESOLUTION); + boxFUpgrades.setUserdata(ScreenRights.MANAGE_UPGRADES); + boxFOthers.setUserdata(ScreenRights.MANAGE_OTHER_RIGHTS); + boxFFriends.setUserdata(ScreenRights.MANAGE_FRIEND_LIST); + boxFClick.setUserdata(ScreenRights.CLICK); + boxFSetUrl.setUserdata(ScreenRights.CHANGE_URL); + + otherBoxes = new CheckBox[] { boxOResolution, boxOUpgrades, boxOClick, boxOSetUrl }; + boxOResolution.setUserdata(ScreenRights.CHANGE_RESOLUTION); + boxOUpgrades.setUserdata(ScreenRights.MANAGE_UPGRADES); + boxOClick.setUserdata(ScreenRights.CLICK); + boxOSetUrl.setUserdata(ScreenRights.CHANGE_URL); + + TileEntityScreen.Screen scr = tes.getScreen(side); + if(scr != null) { + tfResX.setText("" + scr.resolution.x); + tfResY.setText("" + scr.resolution.y); + } + + lblOwner.setLabel(lblOwner.getLabel() + owner.name); + for(NameUUIDPair f : friends) + lstFriends.addElementRaw(f.name, f); + + lstFriends.updateContent(); + updateRights(friendRights, friendRights, friendBoxes, true); + updateRights(otherRights, otherRights, otherBoxes, true); + updateMyRights(); + } + + private void addFriend(String name) { + if(!name.isEmpty()) { + requestAutocomplete(name, true); + tfFriend.setDisabled(true); + adding = true; + waitingAC = true; + } + } + + private void clickSetRes() { + TileEntityScreen.Screen scr = tes.getScreen(side); + if(scr == null) + return; //WHATDAFUQ? + + try { + int x = Integer.parseInt(tfResX.getText()); + int y = Integer.parseInt(tfResY.getText()); + if(x < 1 || y < 1) + throw new NumberFormatException(); //I'm lazy + + if(x != scr.resolution.x || y != scr.resolution.y) + WebDisplays.NET_HANDLER.sendToServer(new SMessageScreenCtrl(tes, side, new Vector2i(x, y))); + } catch(NumberFormatException ex) { + //Roll back + tfResX.setText("" + scr.resolution.x); + tfResY.setText("" + scr.resolution.y); + } + + btnSetRes.setDisabled(true); + } + + @GuiSubscribe + public void onClick(Button.ClickEvent ev) { + if(ev.getSource() == btnAdd && !waitingAC) + addFriend(tfFriend.getText().trim()); + else if(ev.getSource() == btnSetRes) + clickSetRes(); + } + + @GuiSubscribe + public void onEnterPressed(TextField.EnterPressedEvent ev) { + if(ev.getSource() == tfFriend && !waitingAC) + addFriend(ev.getText().trim()); + else if((ev.getSource() == tfResX || ev.getSource() == tfResY) && !btnSetRes.isDisabled()) + clickSetRes(); + } + + @GuiSubscribe + public void onAutocomplete(TextField.TabPressedEvent ev) { + if(ev.getSource() == tfFriend && !waitingAC && !ev.getBeginning().isEmpty()) { + if(acResults.isEmpty()) { + waitingAC = true; + requestAutocomplete(ev.getBeginning(), false); + } else { + NameUUIDPair pair = acResults.remove(0); + tfFriend.setText(pair.name); + } + } else if(ev.getSource() == tfResX) { + tfResX.setFocused(false); + tfResY.focus(); + tfResY.getMcField().setCursorPositionZero(); + tfResY.getMcField().setSelectionPos(tfResY.getText().length()); + } + } + + @GuiSubscribe + public void onTextChanged(TextField.TextChangedEvent ev) { + if(ev.getSource() == tfResX || ev.getSource() == tfResY) { + for(int i = 0; i < ev.getNewContent().length(); i++) { + if(!Character.isDigit(ev.getNewContent().charAt(i))) { + ev.getSource().setText(ev.getOldContent()); + return; + } + } + + btnSetRes.setDisabled(false); + } + } + + @GuiSubscribe + public void onRemovePlayer(List.EntryClick ev) { + if(ev.getSource() == lstFriends) + WebDisplays.NET_HANDLER.sendToServer(new SMessageScreenCtrl(tes, side, (NameUUIDPair) ev.getUserdata(), true)); + } + + @GuiSubscribe + public void onCheckboxChanged(CheckBox.CheckedEvent ev) { + if(isFriendCheckbox(ev.getSource())) { + int flag = (Integer) ev.getSource().getUserdata(); + if(ev.isChecked()) + friendRights |= flag; + else + friendRights &= ~flag; + + requestSync(); + } else if(isOtherCheckbox(ev.getSource())) { + int flag = (Integer) ev.getSource().getUserdata(); + if(ev.isChecked()) + otherRights |= flag; + else + otherRights &= ~flag; + + requestSync(); + } + } + + public boolean isFriendCheckbox(CheckBox cb) { + for(CheckBox box : friendBoxes) { + if(box == cb) + return true; + } + + return false; + } + + public boolean isOtherCheckbox(CheckBox cb) { + for(CheckBox box : otherBoxes) { + if(box == cb) + return true; + } + + return false; + } + + public boolean hasFriend(NameUUIDPair f) { + for(NameUUIDPair pair : friends) { + if(pair.equals(f)) + return true; + } + + return false; + } + + @Override + public void onAutocompleteResult(NameUUIDPair pairs[]) { + waitingAC = false; + + if(adding) { + if(!hasFriend(pairs[0])) + WebDisplays.NET_HANDLER.sendToServer(new SMessageScreenCtrl(tes, side, pairs[0], false)); + + tfFriend.setDisabled(false); + tfFriend.clear(); + tfFriend.focus(); + adding = false; + } else { + acResults.clear(); + acResults.addAll(Arrays.asList(pairs)); + + NameUUIDPair pair = acResults.remove(0); + tfFriend.setText(pair.name); + } + } + + @Override + public void onAutocompleteFailure() { + waitingAC = false; + acResults.clear(); + acFailTicks = 0; + tfFriend.setTextColor(Control.COLOR_RED); + + if(adding) { + tfFriend.setDisabled(false); + adding = false; + } + } + + @Override + public void updateScreen() { + super.updateScreen(); + + if(acFailTicks >= 0) { + if(++acFailTicks >= 10) { + acFailTicks = -1; + tfFriend.setTextColor(TextField.DEFAULT_TEXT_COLOR); + } + } + } + + public void updateFriends(NameUUIDPair[] friends) { + boolean diff = false; + if(friends.length != this.friends.length) + diff = true; + else { + for(NameUUIDPair pair : friends) { + if(!hasFriend(pair)) { + diff = true; + break; + } + } + } + + if(diff) { + this.friends = friends; + lstFriends.clearRaw(); + for(NameUUIDPair pair : friends) + lstFriends.addElementRaw(pair.name, pair); + + lstFriends.updateContent(); + } + } + + private int updateRights(int current, int newVal, CheckBox[] boxes, boolean force) { + if(force || current != newVal) { + for(CheckBox box : boxes) { + int flag = (Integer) box.getUserdata(); + box.setChecked((newVal & flag) != 0); + } + + if(!force) { + Log.info("Screen check boxes were updated"); + abortSync(); //Value changed by another user, abort modifications by local user + } + } + + return newVal; + } + + public void updateFriendRights(int rights) { + friendRights = updateRights(friendRights, rights, friendBoxes, false); + } + + public void updateOtherRights(int rights) { + otherRights = updateRights(otherRights, rights, otherBoxes, false); + } + + public boolean isScreen(Vector3i pos, BlockSide side) { + return pos.x == tes.getPos().getX() && pos.y == tes.getPos().getY() && pos.z == tes.getPos().getZ() && side == this.side; + } + + @Override + protected void sync() { + WebDisplays.NET_HANDLER.sendToServer(new SMessageScreenCtrl(tes, side, friendRights, otherRights)); + Log.info("Sent sync packet"); + } + + public void updateMyRights() { + NameUUIDPair me = new NameUUIDPair(mc.player.getGameProfile()); + int myRights = 0; + boolean clientIsOwner = false; + + if(me.equals(owner)) { + myRights = ScreenRights.ALL; + clientIsOwner = true; + } else if(hasFriend(me)) + myRights = friendRights; + else + myRights = otherRights; + + //Disable components according to client rights + grpFriends.setDisabled(!clientIsOwner); + + boolean flag = (myRights & ScreenRights.MANAGE_FRIEND_LIST) == 0; + lstFriends.setDisabled(flag); + tfFriend.setDisabled(flag); + btnAdd.setDisabled(flag); + + flag = (myRights & ScreenRights.MANAGE_OTHER_RIGHTS) == 0; + grpOthers.setDisabled(flag); + + flag = (myRights & ScreenRights.CHANGE_RESOLUTION) == 0; + tfResX.setDisabled(flag); + tfResY.setDisabled(flag); + + if(flag) + btnSetRes.setDisabled(true); + } + + public void updateResolution(Vector2i res) { + tfResX.setText("" + res.x); + tfResY.setText("" + res.y); + btnSetRes.setDisabled(true); + } + +} diff --git a/src/main/java/net/montoyo/wd/client/gui/GuiSetURL2.java b/src/main/java/net/montoyo/wd/client/gui/GuiSetURL2.java new file mode 100644 index 0000000..ae0ed6f --- /dev/null +++ b/src/main/java/net/montoyo/wd/client/gui/GuiSetURL2.java @@ -0,0 +1,102 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.client.gui; + +import net.minecraft.util.ResourceLocation; +import net.montoyo.wd.WebDisplays; +import net.montoyo.wd.client.gui.controls.Button; +import net.montoyo.wd.client.gui.controls.TextField; +import net.montoyo.wd.client.gui.loading.FillControl; +import net.montoyo.wd.entity.TileEntityScreen; +import net.montoyo.wd.net.SMessagePadCtrl; +import net.montoyo.wd.net.SMessageScreenCtrl; +import net.montoyo.wd.utilities.BlockSide; +import net.montoyo.wd.utilities.Log; + +import java.util.Map; + +public class GuiSetURL2 extends WDScreen { + + //Screen data + private TileEntityScreen tileEntity; + private BlockSide screenSide; + + //Pad data + private boolean isPad; + + //Common + private String screenURL; + + @FillControl + private TextField tfURL; + + @FillControl + private Button btnShutDown; + + @FillControl + private Button btnCancel; + + @FillControl + private Button btnOk; + + @FillControl + private Button btnYT; + + public GuiSetURL2(TileEntityScreen tes, BlockSide side, String url) { + tileEntity = tes; + screenSide = side; + screenURL = url; + isPad = false; + } + + public GuiSetURL2(String url) { + screenURL = url; + isPad = true; + } + + @Override + public void initGui() { + super.initGui(); + loadFrom(new ResourceLocation("webdisplays", "gui/seturl.json")); + tfURL.setText(screenURL); + } + + @Override + protected void addLoadCustomVariables(Map vars) { + vars.put("isPad", isPad ? 1.0 : 0.0); + } + + @GuiSubscribe + public void onButtonClicked(Button.ClickEvent ev) { + if(ev.getSource() == btnCancel) + mc.displayGuiScreen(null); + else if(ev.getSource() == btnOk) + validate(tfURL.getText()); + else if(ev.getSource() == btnShutDown) { + if(isPad) + WebDisplays.NET_HANDLER.sendToServer(new SMessagePadCtrl("")); + + mc.displayGuiScreen(null); + } else + Log.info("GuiSetURL2: TODO"); //TODO + } + + @GuiSubscribe + public void onEnterPressed(TextField.EnterPressedEvent ev) { + validate(ev.getText()); + } + + private void validate(String url) { + if(!url.isEmpty()) { + if(isPad) + WebDisplays.NET_HANDLER.sendToServer(new SMessagePadCtrl(url)); + else + WebDisplays.NET_HANDLER.sendToServer(new SMessageScreenCtrl(tileEntity, screenSide, url)); + } + + mc.displayGuiScreen(null); + } + +} diff --git a/src/main/java/net/montoyo/wd/client/gui/GuiSubscribe.java b/src/main/java/net/montoyo/wd/client/gui/GuiSubscribe.java new file mode 100644 index 0000000..5814b77 --- /dev/null +++ b/src/main/java/net/montoyo/wd/client/gui/GuiSubscribe.java @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.client.gui; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface GuiSubscribe { +} diff --git a/src/main/java/net/montoyo/wd/client/gui/WDScreen.java b/src/main/java/net/montoyo/wd/client/gui/WDScreen.java new file mode 100644 index 0000000..4164e96 --- /dev/null +++ b/src/main/java/net/montoyo/wd/client/gui/WDScreen.java @@ -0,0 +1,353 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.client.gui; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.util.ResourceLocation; +import net.montoyo.wd.WebDisplays; +import net.montoyo.wd.client.gui.controls.Container; +import net.montoyo.wd.client.gui.controls.Control; +import net.montoyo.wd.client.gui.controls.Event; +import net.montoyo.wd.client.gui.loading.FillControl; +import net.montoyo.wd.client.gui.loading.GuiLoader; +import net.montoyo.wd.client.gui.loading.JsonOWrapper; +import net.montoyo.wd.net.SMessageACQuery; +import net.montoyo.wd.utilities.Log; +import net.montoyo.wd.utilities.NameUUIDPair; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; + +import java.io.IOException; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public abstract class WDScreen extends GuiScreen { + + public static WDScreen CURRENT_SCREEN = null; + + protected ArrayList controls = new ArrayList(); + private HashMap, Method> eventMap = new HashMap, Method>(); + protected boolean quitOnEscape = true; + protected boolean defaultBackground = true; + protected int syncTicks = 40; + private int syncTicksLeft = -1; + + public WDScreen() { + Method[] methods = getClass().getMethods(); + + for(Method m : methods) { + if(m.getAnnotation(GuiSubscribe.class) != null) { + if(!Modifier.isPublic(m.getModifiers())) + throw new RuntimeException("Found non public @GuiSubscribe"); + + Class params[] = m.getParameterTypes(); + if(params.length != 1 || !Event.class.isAssignableFrom(params[0])) + throw new RuntimeException("Invalid parameters for @GuiSubscribe"); + + eventMap.put((Class) params[0], m); + } + } + } + + protected T addControl(T ctrl) { + controls.add(ctrl); + return ctrl; + } + + public int screen2DisplayX(int x) { + double ret = ((double) x) / ((double) width) * ((double) mc.displayWidth); + return (int) ret; + } + + public int screen2DisplayY(int y) { + double ret = ((double) y) / ((double) height) * ((double) mc.displayHeight); + return (int) ret; + } + + public int display2ScreenX(int x) { + double ret = ((double) x) / ((double) mc.displayWidth) * ((double) width); + return (int) ret; + } + + public int display2ScreenY(int y) { + double ret = ((double) y) / ((double) mc.displayHeight) * ((double) height); + return (int) ret; + } + + protected void centerControls() { + //Determine bounding box + int minX = Integer.MAX_VALUE; + int minY = Integer.MAX_VALUE; + int maxX = Integer.MIN_VALUE; + int maxY = Integer.MIN_VALUE; + + for(Control ctrl : controls) { + int x = ctrl.getX(); + int y = ctrl.getY(); + if(x < minX) + minX = x; + + if(y < minY) + minY = y; + + x += ctrl.getWidth(); + y += ctrl.getHeight(); + + if(x > maxX) + maxX = x; + + if(y >= maxY) + maxY = y; + } + + //Translation vector + int diffX = (width - maxX - minX) / 2; + int diffY = (height - maxY - minY) / 2; + + //Translate controls + for(Control ctrl : controls) { + int x = ctrl.getX(); + int y = ctrl.getY(); + + ctrl.setPos(x + diffX, y + diffY); + } + } + + @Override + public void drawScreen(int mouseX, int mouseY, float ptt) { + if(defaultBackground) + drawDefaultBackground(); + + for(Control ctrl: controls) + ctrl.draw(mouseX, mouseY, ptt); + } + + @Override + protected void keyTyped(char typedChar, int keyCode) throws IOException { + if(quitOnEscape && keyCode == Keyboard.KEY_ESCAPE) { + mc.displayGuiScreen(null); + return; + } + + for(Control ctrl: controls) + ctrl.keyTyped(typedChar, keyCode); + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + for(Control ctrl: controls) + ctrl.mouseClicked(mouseX, mouseY, mouseButton); + } + + @Override + protected void mouseReleased(int mouseX, int mouseY, int state) { + for(Control ctrl: controls) + ctrl.mouseReleased(mouseX, mouseY, state); + } + + @Override + protected void mouseClickMove(int mouseX, int mouseY, int clickedMouseButton, long timeSinceLastClick) { + for(Control ctrl: controls) + ctrl.mouseClickMove(mouseX, mouseY, clickedMouseButton, timeSinceLastClick); + } + + @Override + public void initGui() { + CURRENT_SCREEN = this; + Keyboard.enableRepeatEvents(true); + } + + @Override + public void onGuiClosed() { + if(syncTicksLeft >= 0) { + sync(); + syncTicksLeft = -1; + } + + for(Control ctrl : controls) + ctrl.destroy(); + + Keyboard.enableRepeatEvents(false); + CURRENT_SCREEN = null; + } + + @Override + public void handleMouseInput() throws IOException { + super.handleMouseInput(); + + int x = Mouse.getEventX() * width / mc.displayWidth; + int y = height - Mouse.getEventY() * height / mc.displayHeight - 1; + int dw = Mouse.getEventDWheel(); + + if(dw != 0) + onMouseScroll(x, y, dw); + else if(Mouse.getEventButton() == -1) + onMouseMove(x, y); + } + + @Override + public void handleKeyboardInput() throws IOException { + super.handleKeyboardInput(); + + int key = Keyboard.getEventKey(); + if(key != Keyboard.KEY_NONE) { + if(Keyboard.getEventKeyState()) { + for(Control ctrl : controls) + ctrl.keyDown(key); + } else { + for(Control ctrl : controls) + ctrl.keyUp(key); + } + } + } + + public void onMouseScroll(int mouseX, int mouseY, int amount) { + for(Control ctrl : controls) + ctrl.mouseScroll(mouseX, mouseY, amount); + } + + public void onMouseMove(int mouseX, int mouseY) { + for(Control ctrl : controls) + ctrl.mouseMove(mouseX, mouseY); + } + + public Object actionPerformed(Event ev) { + Method m = eventMap.get(ev.getClass()); + + if(m != null) { + try { + return m.invoke(this, ev); + } catch(IllegalAccessException e) { + Log.errorEx("Access to event %s of screen %s is denied", e, ev.getClass().getSimpleName(), getClass().getSimpleName()); + } catch(InvocationTargetException e) { + Log.errorEx("Event %s of screen %s failed", e, ev.getClass().getSimpleName(), getClass().getSimpleName()); + } + } + + return null; + } + + public T getControlByName(String name) { + for(Control ctrl : controls) { + if(name.equals(ctrl.getName())) + return (T) ctrl; + + if(ctrl instanceof Container) { + Control ret = ((Container) ctrl).getByName(name); + + if(ret != null) + return (T) ret; + } + } + + return null; + } + + protected void addLoadCustomVariables(Map vars) { + } + + public void loadFrom(ResourceLocation resLoc) { + JsonObject root = GuiLoader.getJson(resLoc); + if(root == null) + throw new RuntimeException("Could not load GUI file " + resLoc.toString()); + + if(!root.has("controls") || !root.get("controls").isJsonArray()) + throw new RuntimeException("In GUI file " + resLoc.toString() + ": missing root 'controls' object."); + + HashMap vars = new HashMap(); + vars.put("width", (double) width); + vars.put("height", (double) height); + vars.put("displayWidth", (double) mc.displayWidth); + vars.put("displayHeight", (double) mc.displayHeight); + addLoadCustomVariables(vars); + + JsonArray content = root.get("controls").getAsJsonArray(); + for(JsonElement elem: content) + controls.add(GuiLoader.create(new JsonOWrapper(elem.getAsJsonObject(), vars))); + + Field[] fields = getClass().getDeclaredFields(); + for(Field f: fields) { + f.setAccessible(true); + FillControl fc = f.getAnnotation(FillControl.class); + + if(fc != null) { + String name = fc.name().isEmpty() ? f.getName() : fc.name(); + Control ctrl = getControlByName(name); + + if(ctrl == null) { + if(fc.required()) + throw new RuntimeException("In GUI file " + resLoc.toString() + ": missing required control " + name); + + continue; + } + + if(!f.getType().isAssignableFrom(ctrl.getClass())) + throw new RuntimeException("In GUI file " + resLoc.toString() + ": invalid type for control " + name); + + try { + f.set(this, ctrl); + } catch(IllegalAccessException e) { + if(fc.required()) + throw new RuntimeException(e); + } + } + } + + if(root.has("center") && root.get("center").getAsBoolean()) + centerControls(); + } + + @Override + public void onResize(Minecraft mcIn, int w, int h) { + for(Control ctrl : controls) + ctrl.destroy(); + + controls.clear(); + super.onResize(mcIn, w, h); + } + + protected void requestAutocomplete(String beginning, boolean matchExact) { + WebDisplays.NET_HANDLER.sendToServer(new SMessageACQuery(beginning, matchExact)); + } + + public void onAutocompleteResult(NameUUIDPair pairs[]) { + } + + public void onAutocompleteFailure() { + } + + protected void requestSync() { + syncTicksLeft = syncTicks - 1; + } + + protected boolean syncRequested() { + return syncTicksLeft >= 0; + } + + protected void abortSync() { + syncTicksLeft = -1; + } + + protected void sync() { + } + + @Override + public void updateScreen() { + if(syncTicksLeft >= 0) { + if(--syncTicksLeft < 0) + sync(); + } + } + +} diff --git a/src/main/java/net/montoyo/wd/client/gui/controls/BasicControl.java b/src/main/java/net/montoyo/wd/client/gui/controls/BasicControl.java new file mode 100644 index 0000000..7d886e9 --- /dev/null +++ b/src/main/java/net/montoyo/wd/client/gui/controls/BasicControl.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.client.gui.controls; + +import net.montoyo.wd.client.gui.loading.JsonOWrapper; + +public abstract class BasicControl extends Control { + + protected int x; + protected int y; + protected boolean visible = true; + protected boolean disabled = false; + + @Override + public int getX() { + return x; + } + + @Override + public int getY() { + return y; + } + + @Override + public void setPos(int x, int y) { + this.x = x; + this.y = y; + } + + public boolean isDisabled() { + return disabled; + } + + public void setDisabled(boolean disabled) { + this.disabled = disabled; + } + + public void enable() { + disabled = false; + } + + public void disable() { + disabled = true; + } + + public boolean isVisible() { + return visible; + } + + public void setVisible(boolean visible) { + this.visible = visible; + } + + public void show() { + visible = true; + } + + public void hide() { + visible = false; + } + + @Override + public void load(JsonOWrapper json) { + super.load(json); + x = json.getInt("x", 0); + y = json.getInt("y", 0); + disabled = json.getBool("disabled", false); + visible = json.getBool("visible", true); + } + +} diff --git a/src/main/java/net/montoyo/wd/client/gui/controls/Button.java b/src/main/java/net/montoyo/wd/client/gui/controls/Button.java new file mode 100644 index 0000000..ad45afd --- /dev/null +++ b/src/main/java/net/montoyo/wd/client/gui/controls/Button.java @@ -0,0 +1,199 @@ +/* + * Copyright (C) 2018 BARBOTIN Nicolas + */ + +package net.montoyo.wd.client.gui.controls; + +import net.minecraft.client.gui.GuiButton; +import net.montoyo.wd.client.gui.loading.JsonOWrapper; +import org.lwjgl.input.Keyboard; + +import java.io.IOException; + +public class Button extends Control { + + private final GuiButton btn; + private boolean selected = false; + private boolean shiftDown = false; + private int originalColor = 0; + private int shiftColor = 0; + + public static class ClickEvent extends Event