diff --git a/README.md b/README.md index 00f51d9c9..3a2abf20d 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,46 @@ + +## 👋 Welcome to the CustomNPC+ Repository. ![](images/logo.png) -Welcome to the CustomNPC+ Repository. - -CustomNPC+ is a [Minecraft](https://minecraft.net/) mod that allows you to add custom NPCs to your world. It is developed for creative and storytelling players who want to make their Minecraft worlds more in-depth and unique. CustomNPC+ is only a branch version of the **1.7.10** Forge version of the original (down below) and has no plans to add or update any other version. This is not an official version of CustomNPC. +> CustomNPC+ is a [Minecraft](https://minecraft.net/) mod that allows you to add custom NPCs to your world. It is developed for creative and storytelling players who want to make their Minecraft worlds more in-depth and unique. CustomNPC+ is only a branch version of the **1.7.10** Forge version of the original (down below) and has no plans to add or update any other version. This is not an official version of CustomNPC. Link to CurseForge: [HERE](https://www.curseforge.com/minecraft/mc-mods/customnpc-plus) -#### Notice +### ❗ Notice I am not the original creator of CustomNPC. The original creator is @[Noppes](https://github.com/Noppes). I have been permitted to update the 1.7.10 and post my results on GitHub. The original mod that is updated to the latest versions of Minecraft can be found on these links: [CurseForge](https://www.curseforge.com/minecraft/mc-mods/custom-npcs), [kodevelopment](http://www.kodevelopment.nl/minecraft/customnpcs) -#### First Release! V1.0 (Installation) +### 🔹 First Release! V1.0 (Installation) This mod is an ***update*** to CustomNPC and not an add-on. Do not install CustomNPC with CustomNPC-Plus. CustomNPC-Plus does not remove any functional features from the original mod. It expands upon CustomNPC with original features and backported features from newer versions. Simply drag CustomNPC-Plus into any client/server mods folder to utilize. Please **backup** before using as this could still have unforeseen errors. Report any bugs if found, thank you and enjoy. -### Features: -- [x] More Wing Types -- [x] More Fin Types -- [x] More Capes* -- [x] More Overlays -- [x] Added Horns -- [x] Added Dolphin Tail -- [x] Larger Clone GUI -- [x] More Clone Tabs -- [x] Increased Resolution to Additional Body Parts -- [x] ~~Update Local Skin Textures (64x64) [WIP]~~ -- [x] Added (New) Local 64x64 Skin Textures -- [x] 1.8 Skins (64x64) -- [x] Alex Model (64x64) -- [x] Fix Part Rendering -- [x] Backported GUI Features -- [x] Backported New Part Models -- [X] Custom Part Disabling -- [X] Markov Name Generator -- [X] Flying NPCS -- [X] Better Script Speeds +### ❓ Features: +- More Wing Types +- More Fin Types +- More Capes* +- More Overlays +- Added Horns +- Added Dolphin Tail +- Larger Clone GUI +- More Clone Tabs +- Increased Resolution to Additional Body Parts +- ~~Update Local Skin Textures (64x64) [WIP]~~ +- Added (New) Local 64x64 Skin Textures +- 1.8 Skins (64x64) +- Alex Model (64x64) +- Fix Part Rendering +- Backported GUI Features +- Backported New Part Models +- Custom Part Disabling +- Markov Name Generator +- Flying NPCS +- Better Script Speeds +- Scripting Additions: [Documentation](https://github.com/PewDizinho/CustomNPCPlus-Script-Documentation) + --- Please Suggest New Features! -###### **Majority of these cape designs are taken from the internet with fair-usage.* -#### Skin Model Feature: -##### Please note all *local* skins in this version of CustomNPC, must match the model selected. +## 🔰 Skin Model Feature: +###### **Majority of these cape designs are taken from the internet with fair-usage.* +##### ❔ Please note all *local* skins in this version of CustomNPC, must match the model selected. #### Scale/Puppet Reset: @@ -48,6 +50,11 @@ This mod is an ***update*** to CustomNPC and not an add-on. Do not install Custo -#### Want to check out my other mods? +## 🔗 Want to check out my other mods? [Plugin Mod](https://github.com/KAMKEEL/Plugin-Mod) is a mod designed to add more aesthetic items for RPG and storytelling. It is compatible with CustomNPC+ and has many items intended to be used and wielded by created NPCs. +[![Discord Badge](https://img.shields.io/badge/CustomNPC-7289DA?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/rgeWsmQaKa) +[![Discord Badge](https://img.shields.io/badge/CustomNPC+-7289DA?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/pQqRTvFeJ5) +[![Download CustomNPC+](https://img.shields.io/badge/Download⠀CustomNPC⠀Plus!-0081CB?style=for-the-badge&logo=material-ui&logoColor=white)](https://www.curseforge.com/minecraft/mc-mods/customnpc-plus) +[![Download CustomNPC+](https://img.shields.io/badge/Download⠀Plugin⠀Mod!-0081CB?style=for-the-badge&logo=material-ui&logoColor=white)](https://github.com/KAMKEEL/Plugin-Mod) + diff --git a/build.gradle b/build.gradle index 636927542..9afd07516 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ buildscript { apply plugin: 'forge' -version = "1.4.2" +version = "1.5.1-beta" group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "CustomNPC-Plus" diff --git a/src/main/java/noppes/npcs/CustomItems.java b/src/main/java/noppes/npcs/CustomItems.java index ffbd8da27..425889fca 100644 --- a/src/main/java/noppes/npcs/CustomItems.java +++ b/src/main/java/noppes/npcs/CustomItems.java @@ -445,6 +445,9 @@ public class CustomItems { Item.getItemFromBlock(sign).setHasSubtypes(true); Item.getItemFromBlock(beam).setHasSubtypes(true); Item.getItemFromBlock(pedestal).setHasSubtypes(true); + + tabBlocks.item = Item.getItemFromBlock(couchWool); + tabBlocks.meta = 1; } banjo = new ItemMusicBanjo().setUnlocalizedName("npcBanjo").setFull3D().setMaxStackSize(1).setTextureName("customnpcs:npcBanjo"); @@ -887,8 +890,6 @@ public class CustomItems { tabArmor.item = cowarmor; tabWeapon.item = CustomItems.shuriken; tabMisc.item = CustomItems.coinGold; - tabBlocks.item = Item.getItemFromBlock(couchWool); - tabBlocks.meta = 1; } tab.item = wand; diff --git a/src/main/java/noppes/npcs/CustomNpcs.java b/src/main/java/noppes/npcs/CustomNpcs.java index 16645aa7f..a5aaa037e 100644 --- a/src/main/java/noppes/npcs/CustomNpcs.java +++ b/src/main/java/noppes/npcs/CustomNpcs.java @@ -61,7 +61,7 @@ import noppes.npcs.entity.old.EntityNpcNagaMale; import noppes.npcs.entity.old.EntityNpcSkeleton; import noppes.npcs.scripted.wrapper.WrapperNpcAPI; -@Mod(modid = "customnpcs", name = "CustomNpcs", version = "1.4.2") +@Mod(modid = "customnpcs", name = "CustomNpcs", version = "1.5.1-beta") public class CustomNpcs { @ConfigProp(info = "Disable Chat Bubbles") diff --git a/src/main/java/noppes/npcs/ModelPartData.java b/src/main/java/noppes/npcs/ModelPartData.java index 963bd3d30..98343d930 100644 --- a/src/main/java/noppes/npcs/ModelPartData.java +++ b/src/main/java/noppes/npcs/ModelPartData.java @@ -24,8 +24,9 @@ public class ModelPartData { NBTTagCompound compound = new NBTTagCompound(); compound.setByte("Type", type); compound.setInteger("Color", color); - if(texture != null && !texture.isEmpty()) + if(texture != null && !texture.isEmpty()) { compound.setString("Texture", texture); + } compound.setBoolean("PlayerTexture", playerTexture); return compound; } @@ -34,6 +35,9 @@ public class ModelPartData { type = compound.getByte("Type"); color = compound.getInteger("Color"); texture = compound.getString("Texture"); + if(texture.contains("moreplayermodels:textures")){ + texture = texture.replace("moreplayermodels:textures", "customnpcs:textures/parts"); + } playerTexture = compound.getBoolean("PlayerTexture"); location = null; } diff --git a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java index 9428ae26a..5a4146a05 100644 --- a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java +++ b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java @@ -12,11 +12,7 @@ import net.minecraft.nbt.NBTTagCompound; import noppes.npcs.client.Client; import noppes.npcs.client.NoppesUtil; import noppes.npcs.client.controllers.ClientCloneController; -import noppes.npcs.client.gui.util.GuiNPCInterface; -import noppes.npcs.client.gui.util.GuiNpcButton; -import noppes.npcs.client.gui.util.GuiNpcLabel; -import noppes.npcs.client.gui.util.GuiNpcTextField; -import noppes.npcs.client.gui.util.IGuiData; +import noppes.npcs.client.gui.util.*; import noppes.npcs.constants.EnumPacketServer; import noppes.npcs.entity.EntityNPCInterface; @@ -44,7 +40,8 @@ public class GuiNpcMobSpawnerAdd extends GuiNPCInterface implements GuiYesNoCall addLabel(new GuiNpcLabel(1, "Tab", guiLeft + 10, guiTop + 50)); - addButton(new GuiNpcButton(2, guiLeft + 40, guiTop + 45, 20, 20, new String[]{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"}, tab - 1)); + // addButton(new GuiNpcButton(2, guiLeft + 40, guiTop + 45, 20, 20, new String[]{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"}, tab - 1)); + addButton(new GuiButtonBiDirectional(2, guiLeft + 40, guiTop + 45, 60, 20, new String[]{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"}, tab - 1)); addButton(new GuiNpcButton(3, guiLeft + 4, guiTop + 95, new String[]{"Client side", "Server side"}, serverSide?1:0)); diff --git a/src/main/java/noppes/npcs/controllers/Dialog.java b/src/main/java/noppes/npcs/controllers/Dialog.java index 8111230d0..05155e347 100644 --- a/src/main/java/noppes/npcs/controllers/Dialog.java +++ b/src/main/java/noppes/npcs/controllers/Dialog.java @@ -60,7 +60,17 @@ public class Dialog implements ICompatibilty, IDialog { else showWheel = true; disableEsc = compound.getBoolean("DialogDisableEsc"); - darkenScreen = compound.getBoolean("DialogDarkenScreen"); + + if(compound.hasKey("DialogDarkScreen")) { + darkenScreen = compound.getBoolean("DialogDarkScreen"); + } + else { + darkenScreen = true; + } + // Temporary Remove after Few Versions + if(compound.hasKey("DialogDarkenScreen")){ + compound.removeTag("DialogDarkenScreen"); + } NBTTagList options = compound.getTagList("Options", 10); HashMap newoptions = new HashMap(); @@ -92,7 +102,12 @@ public class Dialog implements ICompatibilty, IDialog { compound.setBoolean("DialogHideNPC", hideNPC); compound.setBoolean("DialogShowWheel", showWheel); compound.setBoolean("DialogDisableEsc", disableEsc); - compound.setBoolean("DialogDarkenScreen", darkenScreen); + + compound.setBoolean("DialogDarkScreen", darkenScreen); + // Temporary Remove after Few Versions + if(compound.hasKey("DialogDarkenScreen")){ + compound.removeTag("DialogDarkenScreen"); + } if(sound != null && !sound.isEmpty()) compound.setString("DialogSound", sound);