mirror of
https://github.com/KAMKEEL/CustomNPC-Gecko-Addon.git
synced 2026-11-13 05:27:39 +00:00
Bump Dev to newer versions
This commit is contained in:
1 parent
97c4b39836
commit
f3973abed5
15 files changed
+220
-204
No files matched your search
+2
-2
@@ -37,6 +37,6 @@ dependencies {
|
||||
runtimeOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.5.4-GTNH:dev")
|
||||
runtimeOnlyNonPublishable("curse.maven:Nashorn-374413:2924946")
|
||||
|
||||
implementation rfg.deobf(name: "CustomNPC-Plus-1.9.2")
|
||||
implementation name: "geckolib-unofficial-1.7.10-1.0.6-dev"
|
||||
implementation rfg.deobf(name: "CustomNPC-Plus-1.10.2-beta4")
|
||||
implementation name: "geckolib3-1.0.4-beta"
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -49,8 +49,10 @@ public abstract class AbstractGeckoAPI {
|
||||
public abstract void syncAnimForPlayer(IBlockScripted scriptedBlock, AnimationBuilder builder, IPlayer<EntityPlayerMP> player);
|
||||
public abstract void syncAnimForAll(IBlockScripted scriptedBlock, AnimationBuilder builder);
|
||||
|
||||
public abstract void setModel(ScriptCustomItem item, String model);
|
||||
public abstract void setTexture(ScriptCustomItem item, String texture);
|
||||
public abstract void setAnimationFile(ScriptCustomItem item, String animation);
|
||||
public abstract void setIdleAnimation(ScriptCustomItem item, String animation);
|
||||
// TODO: Fix ScriptCustomItem
|
||||
|
||||
// public abstract void setModel(ScriptCustomItem item, String model);
|
||||
// public abstract void setTexture(ScriptCustomItem item, String texture);
|
||||
// public abstract void setAnimationFile(ScriptCustomItem item, String animation);
|
||||
// public abstract void setIdleAnimation(ScriptCustomItem item, String animation);
|
||||
}
|
||||
@@ -120,39 +120,39 @@ public class GeckoAPI extends AbstractGeckoAPI {
|
||||
NetworkHandler.sendToAll(new CPacketSyncTileManualAnim(scriptedBlock.getMCTileEntity(), builder));
|
||||
}
|
||||
|
||||
private CustomItemModelData getOrCreateCIMD(ScriptCustomItem item){
|
||||
IScriptCustomItem scriptCustomItem = (IScriptCustomItem) item;
|
||||
if(!scriptCustomItem.hasCustomModel()){
|
||||
scriptCustomItem.setCustomModelData(new CustomItemModelData());
|
||||
}
|
||||
return scriptCustomItem.getCustomModelData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setModel(ScriptCustomItem item, String model) {
|
||||
CustomItemModelData data = getOrCreateCIMD(item);
|
||||
data.setModel(model);
|
||||
item.saveItemData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTexture(ScriptCustomItem item, String texture) {
|
||||
CustomItemModelData data = getOrCreateCIMD(item);
|
||||
data.setTexture(texture);
|
||||
item.saveItemData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAnimationFile(ScriptCustomItem item, String animation) {
|
||||
CustomItemModelData data = getOrCreateCIMD(item);
|
||||
data.setAnimFile(animation);
|
||||
item.saveItemData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIdleAnimation(ScriptCustomItem item, String animation) {
|
||||
CustomItemModelData data = getOrCreateCIMD(item);
|
||||
data.setIdleAnim(animation);
|
||||
item.saveItemData();
|
||||
}
|
||||
// private CustomItemModelData getOrCreateCIMD(ScriptCustomItem item){
|
||||
// IScriptCustomItem scriptCustomItem = (IScriptCustomItem) item;
|
||||
// if(!scriptCustomItem.hasCustomModel()){
|
||||
// scriptCustomItem.setCustomModelData(new CustomItemModelData());
|
||||
// }
|
||||
// return scriptCustomItem.getCustomModelData();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void setModel(ScriptCustomItem item, String model) {
|
||||
// CustomItemModelData data = getOrCreateCIMD(item);
|
||||
// data.setModel(model);
|
||||
// item.saveItemData();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void setTexture(ScriptCustomItem item, String texture) {
|
||||
// CustomItemModelData data = getOrCreateCIMD(item);
|
||||
// data.setTexture(texture);
|
||||
// item.saveItemData();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void setAnimationFile(ScriptCustomItem item, String animation) {
|
||||
// CustomItemModelData data = getOrCreateCIMD(item);
|
||||
// data.setAnimFile(animation);
|
||||
// item.saveItemData();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void setIdleAnimation(ScriptCustomItem item, String animation) {
|
||||
// CustomItemModelData data = getOrCreateCIMD(item);
|
||||
// data.setIdleAnim(animation);
|
||||
// item.saveItemData();
|
||||
// }
|
||||
}
|
||||
@@ -1,53 +1,53 @@
|
||||
package com.goodbird.npcgecko.client.model;
|
||||
// TODO: Fix ScriptCustomItem
|
||||
|
||||
import com.goodbird.npcgecko.data.CustomItemModelData;
|
||||
import com.goodbird.npcgecko.mixin.IScriptCustomItem;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import noppes.npcs.api.item.IItemStack;
|
||||
import noppes.npcs.scripted.NpcAPI;
|
||||
import noppes.npcs.scripted.item.ScriptCustomItem;
|
||||
import software.bernie.geckolib3.item.AnimatableStackWrapper;
|
||||
import software.bernie.geckolib3.model.AnimatedGeoModel;
|
||||
import software.bernie.geckolib3.resource.GeckoLibCache;
|
||||
|
||||
public class ItemModelCustom extends AnimatedGeoModel<AnimatableStackWrapper> {
|
||||
|
||||
private CustomItemModelData getModelData(AnimatableStackWrapper animatable){
|
||||
IItemStack istack = NpcAPI.Instance().getIItemStack(animatable.getStack());
|
||||
if(!(istack instanceof ScriptCustomItem)) return null;
|
||||
return ((IScriptCustomItem)istack).getCustomModelData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getAnimationFileLocation(AnimatableStackWrapper animatable) {
|
||||
CustomItemModelData data = getModelData(animatable);
|
||||
if(data==null || !GeckoLibCache.getInstance().getAnimations().containsKey(new ResourceLocation(data.getAnimFile()))){
|
||||
return new ResourceLocation("npcgecko","animations/none.animations.json");
|
||||
}
|
||||
return new ResourceLocation(data.getAnimFile());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelLocation(AnimatableStackWrapper animatable) {
|
||||
CustomItemModelData data = getModelData(animatable);
|
||||
if(data==null || !GeckoLibCache.getInstance().getGeoModels().containsKey(new ResourceLocation(data.getModel()))){
|
||||
return new ResourceLocation("npcgecko","geo/modelnotfound.geo.json");
|
||||
}
|
||||
if(!GeckoLibCache.getInstance().getAnimations().containsKey(new ResourceLocation(data.getAnimFile()))){
|
||||
return new ResourceLocation("npcgecko","geo/animfilenotfound.geo.json");
|
||||
}
|
||||
return new ResourceLocation(data.getModel());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureLocation(AnimatableStackWrapper animatable) {
|
||||
CustomItemModelData data = getModelData(animatable);
|
||||
if(data==null || !GeckoLibCache.getInstance().getGeoModels().containsKey(new ResourceLocation(data.getModel()))){
|
||||
return new ResourceLocation("npcgecko","textures/model/alphabet.png");
|
||||
}
|
||||
if(!GeckoLibCache.getInstance().getAnimations().containsKey(new ResourceLocation(data.getAnimFile()))){
|
||||
return new ResourceLocation("npcgecko","textures/model/alphabet.png");
|
||||
}
|
||||
return new ResourceLocation(data.getTexture());
|
||||
}
|
||||
}
|
||||
//package com.goodbird.npcgecko.client.model;
|
||||
//
|
||||
//import com.goodbird.npcgecko.data.CustomItemModelData;
|
||||
//import com.goodbird.npcgecko.mixin.IScriptCustomItem;
|
||||
//import net.minecraft.util.ResourceLocation;
|
||||
//import noppes.npcs.api.item.IItemStack;
|
||||
//import noppes.npcs.scripted.NpcAPI;
|
||||
//import noppes.npcs.scripted.item.ScriptCustomItem;
|
||||
//import software.bernie.geckolib3.resource.GeckoLibCache;
|
||||
//
|
||||
//public class ItemModelCustom extends AnimatedGeoModel<AnimatableStackWrapper> {
|
||||
//
|
||||
// private CustomItemModelData getModelData(AnimatableStackWrapper animatable){
|
||||
// IItemStack istack = NpcAPI.Instance().getIItemStack(animatable.getStack());
|
||||
// if(!(istack instanceof ScriptCustomItem)) return null;
|
||||
// return ((IScriptCustomItem)istack).getCustomModelData();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public ResourceLocation getAnimationFileLocation(AnimatableStackWrapper animatable) {
|
||||
// CustomItemModelData data = getModelData(animatable);
|
||||
// if(data==null || !GeckoLibCache.getInstance().getAnimations().containsKey(new ResourceLocation(data.getAnimFile()))){
|
||||
// return new ResourceLocation("npcgecko","animations/none.animations.json");
|
||||
// }
|
||||
// return new ResourceLocation(data.getAnimFile());
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public ResourceLocation getModelLocation(AnimatableStackWrapper animatable) {
|
||||
// CustomItemModelData data = getModelData(animatable);
|
||||
// if(data==null || !GeckoLibCache.getInstance().getGeoModels().containsKey(new ResourceLocation(data.getModel()))){
|
||||
// return new ResourceLocation("npcgecko","geo/modelnotfound.geo.json");
|
||||
// }
|
||||
// if(!GeckoLibCache.getInstance().getAnimations().containsKey(new ResourceLocation(data.getAnimFile()))){
|
||||
// return new ResourceLocation("npcgecko","geo/animfilenotfound.geo.json");
|
||||
// }
|
||||
// return new ResourceLocation(data.getModel());
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public ResourceLocation getTextureLocation(AnimatableStackWrapper animatable) {
|
||||
// CustomItemModelData data = getModelData(animatable);
|
||||
// if(data==null || !GeckoLibCache.getInstance().getGeoModels().containsKey(new ResourceLocation(data.getModel()))){
|
||||
// return new ResourceLocation("npcgecko","textures/model/alphabet.png");
|
||||
// }
|
||||
// if(!GeckoLibCache.getInstance().getAnimations().containsKey(new ResourceLocation(data.getAnimFile()))){
|
||||
// return new ResourceLocation("npcgecko","textures/model/alphabet.png");
|
||||
// }
|
||||
// return new ResourceLocation(data.getTexture());
|
||||
// }
|
||||
//}
|
||||
@@ -5,7 +5,9 @@ import com.goodbird.npcgecko.entity.EntityCustomModel;
|
||||
import com.mojang.realmsclient.gui.ChatFormatting;
|
||||
import net.geckominecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.client.renderer.entity.RenderManager;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import software.bernie.geckolib3.core.util.Color;
|
||||
@@ -139,4 +141,9 @@ public class RenderCustomModel extends GeoEntityRenderer<EntityCustomModel> {
|
||||
public boolean isBoneRenderOverriden(EntityCustomModel entity, GeoBone bone) {
|
||||
return bone.name.equals("held_item") || bone.name.equals("left_held_item");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
|
||||
return super.getTextureLocation((EntityCustomModel) p_110775_1_);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package com.goodbird.npcgecko.client.renderer;
|
||||
|
||||
import com.goodbird.npcgecko.client.model.TileModelCustom;
|
||||
import com.goodbird.npcgecko.tile.TileEntityCustomModel;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import software.bernie.example.client.model.tile.BotariumModel;
|
||||
import software.bernie.geckolib3.renderers.geo.GeoBlockRenderer;
|
||||
|
||||
@@ -9,5 +10,10 @@ public class RenderTileCustomModel extends GeoBlockRenderer<TileEntityCustomMode
|
||||
public RenderTileCustomModel() {
|
||||
super(new TileModelCustom());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity p_147500_1_, double p_147500_2_, double p_147500_4_, double p_147500_6_, float p_147500_8_) {
|
||||
// TODO: FIX RenderTileEntityAt
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,52 +1,54 @@
|
||||
package com.goodbird.npcgecko.mixin.impl;
|
||||
// TODO: Fix ScriptCustomItem
|
||||
|
||||
import com.goodbird.npcgecko.client.model.ItemModelCustom;
|
||||
import com.goodbird.npcgecko.mixin.IScriptCustomItem;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import noppes.npcs.client.renderer.items.CustomItemRenderer;
|
||||
import noppes.npcs.scripted.item.ScriptCustomItem;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import software.bernie.geckolib3.item.AnimatableStackWrapper;
|
||||
import software.bernie.geckolib3.renderers.geo.GeoItemStackRenderer;
|
||||
|
||||
@Mixin(CustomItemRenderer.class)
|
||||
public class MixinCustomItemRenderer {
|
||||
@Unique
|
||||
private static GeoItemStackRenderer renderer = new GeoItemStackRenderer(new ItemModelCustom());
|
||||
|
||||
@Inject(method = "renderEntityCustomItem", cancellable = true, at=@At("HEAD"), remap = false)
|
||||
public void renderEntityCustomItem(ScriptCustomItem scriptCustomItem, ItemStack itemStack, EntityItem entityItem, CallbackInfo ci) {
|
||||
if(((IScriptCustomItem)scriptCustomItem).hasCustomModel()){
|
||||
renderer.render(AnimatableStackWrapper.wrapItemStack(itemStack), itemStack);
|
||||
ci.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "renderInventoryCustomItem", cancellable = true, at=@At("HEAD"), remap = false)
|
||||
public void renderInventoryCustomItem(ScriptCustomItem scriptCustomItem, CallbackInfo ci){
|
||||
if(((IScriptCustomItem)scriptCustomItem).hasCustomModel()){
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(-1.0, -1.0, 0.0);
|
||||
GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
|
||||
renderer.render(AnimatableStackWrapper.wrapItemStack(scriptCustomItem.item), scriptCustomItem.item);
|
||||
GL11.glPopMatrix();
|
||||
ci.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "renderItem3d", cancellable = true, at=@At("HEAD"), remap = false)
|
||||
public void renderItem3d(ScriptCustomItem scriptCustomItem, EntityLivingBase entityLivingBase, ItemStack itemStack, CallbackInfo ci) {
|
||||
if(((IScriptCustomItem)scriptCustomItem).hasCustomModel()){
|
||||
renderer.render(AnimatableStackWrapper.wrapItemStack(itemStack), itemStack);
|
||||
ci.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//package com.goodbird.npcgecko.mixin.impl;
|
||||
//
|
||||
//import com.goodbird.npcgecko.client.model.ItemModelCustom;
|
||||
//import com.goodbird.npcgecko.mixin.IScriptCustomItem;
|
||||
//import net.minecraft.entity.EntityLivingBase;
|
||||
//import net.minecraft.entity.item.EntityItem;
|
||||
//import net.minecraft.item.ItemStack;
|
||||
//import noppes.npcs.client.renderer.items.CustomItemRenderer;
|
||||
//import noppes.npcs.scripted.item.ScriptCustomItem;
|
||||
//import org.lwjgl.opengl.GL11;
|
||||
//import org.spongepowered.asm.mixin.Mixin;
|
||||
//import org.spongepowered.asm.mixin.Unique;
|
||||
//import org.spongepowered.asm.mixin.injection.At;
|
||||
//import org.spongepowered.asm.mixin.injection.Inject;
|
||||
//import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
//import software.bernie.geckolib3.item.AnimatableStackWrapper;
|
||||
//import software.bernie.geckolib3.renderers.geo.GeoItemStackRenderer;
|
||||
//
|
||||
//@Mixin(CustomItemRenderer.class)
|
||||
//public class MixinCustomItemRenderer {
|
||||
// @Unique
|
||||
// private static GeoItemStackRenderer renderer = new GeoItemStackRenderer(new ItemModelCustom());
|
||||
//
|
||||
// @Inject(method = "renderEntityCustomItem", cancellable = true, at=@At("HEAD"), remap = false)
|
||||
// public void renderEntityCustomItem(ScriptCustomItem scriptCustomItem, ItemStack itemStack, EntityItem entityItem, CallbackInfo ci) {
|
||||
// if(((IScriptCustomItem)scriptCustomItem).hasCustomModel()){
|
||||
// renderer.render(AnimatableStackWrapper.wrapItemStack(itemStack), itemStack);
|
||||
// ci.cancel();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Inject(method = "renderInventoryCustomItem", cancellable = true, at=@At("HEAD"), remap = false)
|
||||
// public void renderInventoryCustomItem(ScriptCustomItem scriptCustomItem, CallbackInfo ci){
|
||||
// if(((IScriptCustomItem)scriptCustomItem).hasCustomModel()){
|
||||
// GL11.glPushMatrix();
|
||||
// GL11.glTranslated(-1.0, -1.0, 0.0);
|
||||
// GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
|
||||
// renderer.render(AnimatableStackWrapper.wrapItemStack(scriptCustomItem.item), scriptCustomItem.item);
|
||||
// GL11.glPopMatrix();
|
||||
// ci.cancel();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Inject(method = "renderItem3d", cancellable = true, at=@At("HEAD"), remap = false)
|
||||
// public void renderItem3d(ScriptCustomItem scriptCustomItem, EntityLivingBase entityLivingBase, ItemStack itemStack, CallbackInfo ci) {
|
||||
// if(((IScriptCustomItem)scriptCustomItem).hasCustomModel()){
|
||||
// renderer.render(AnimatableStackWrapper.wrapItemStack(itemStack), itemStack);
|
||||
// ci.cancel();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//}
|
||||
@@ -3,10 +3,9 @@ package com.goodbird.npcgecko.mixin.impl;
|
||||
import com.goodbird.npcgecko.entity.EntityCustomModel;
|
||||
import com.goodbird.npcgecko.mixin.IDataDisplay;
|
||||
import com.goodbird.npcgecko.utils.NpcTextureUtils;
|
||||
import net.minecraft.entity.Entity;
|
||||
import kamkeel.npcs.addon.GeckoAddon;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import kamkeel.addon.GeckoAddon;
|
||||
import noppes.npcs.entity.EntityNPCInterface;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Overwrite;
|
||||
|
||||
@@ -5,11 +5,10 @@ import com.goodbird.npcgecko.client.gui.SubGuiModelAnimation;
|
||||
import com.goodbird.npcgecko.client.gui.SubGuiModelExtras;
|
||||
import com.goodbird.npcgecko.entity.EntityCustomModel;
|
||||
import com.goodbird.npcgecko.mixin.IDataDisplay;
|
||||
import kamkeel.addon.client.GeckoAddonClient;
|
||||
import kamkeel.npcs.addon.client.GeckoAddonClient;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.ModelBase;
|
||||
import net.minecraft.client.renderer.entity.RenderManager;
|
||||
import net.minecraft.entity.EntityList;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import noppes.npcs.client.gui.model.GuiCreationScreen;
|
||||
|
||||
@@ -1,50 +1,52 @@
|
||||
package com.goodbird.npcgecko.mixin.impl;
|
||||
|
||||
import com.goodbird.npcgecko.data.CustomItemModelData;
|
||||
import com.goodbird.npcgecko.mixin.IScriptCustomItem;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import noppes.npcs.scripted.item.ScriptCustomItem;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
@Mixin(ScriptCustomItem.class)
|
||||
public class MixinScriptCustomItem implements IScriptCustomItem {
|
||||
@Unique
|
||||
private CustomItemModelData customNPC_Gecko_Addon$customModelData;
|
||||
|
||||
@Inject(method = "getItemNBT", at = @At("HEAD"), remap = false)
|
||||
public void writeToNBT(NBTTagCompound nbttagcompound, CallbackInfoReturnable<NBTTagCompound> cir) {
|
||||
if(customNPC_Gecko_Addon$customModelData!=null){
|
||||
NBTTagCompound modelDataTag = new NBTTagCompound();
|
||||
customNPC_Gecko_Addon$customModelData.writeToNBT(modelDataTag);
|
||||
nbttagcompound.setTag("GeckoModelData", modelDataTag);
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "setItemNBT", at = @At("HEAD"), remap = false)
|
||||
public void readFromNBT(NBTTagCompound nbttagcompound, CallbackInfo ci){
|
||||
if(nbttagcompound.hasKey("GeckoModelData")){
|
||||
customNPC_Gecko_Addon$customModelData = new CustomItemModelData();
|
||||
customNPC_Gecko_Addon$customModelData.readFromNBT(nbttagcompound.getCompoundTag("GeckoModelData"));
|
||||
}
|
||||
}
|
||||
|
||||
@Unique
|
||||
public CustomItemModelData getCustomModelData(){
|
||||
return customNPC_Gecko_Addon$customModelData;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCustomModelData(CustomItemModelData data) {
|
||||
customNPC_Gecko_Addon$customModelData = data;
|
||||
}
|
||||
|
||||
@Unique
|
||||
public boolean hasCustomModel() {
|
||||
return customNPC_Gecko_Addon$customModelData!=null;
|
||||
}
|
||||
}
|
||||
// TODO: Fix ScriptCustomItem
|
||||
//package com.goodbird.npcgecko.mixin.impl;
|
||||
//
|
||||
//import com.goodbird.npcgecko.data.CustomItemModelData;
|
||||
//import com.goodbird.npcgecko.mixin.IScriptCustomItem;
|
||||
//import net.minecraft.nbt.NBTTagCompound;
|
||||
//import noppes.npcs.scripted.item.ScriptCustomItem;
|
||||
//import org.spongepowered.asm.mixin.Mixin;
|
||||
//import org.spongepowered.asm.mixin.Unique;
|
||||
//import org.spongepowered.asm.mixin.injection.At;
|
||||
//import org.spongepowered.asm.mixin.injection.Inject;
|
||||
//import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
//import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
//
|
||||
//@Mixin(ScriptCustomItem.class)
|
||||
//public class MixinScriptCustomItem implements IScriptCustomItem {
|
||||
// @Unique
|
||||
// private CustomItemModelData customNPC_Gecko_Addon$customModelData;
|
||||
//
|
||||
// @Inject(method = "getItemNBT", at = @At("HEAD"), remap = false)
|
||||
// public void writeToNBT(NBTTagCompound nbttagcompound, CallbackInfoReturnable<NBTTagCompound> cir) {
|
||||
// if(customNPC_Gecko_Addon$customModelData!=null){
|
||||
// NBTTagCompound modelDataTag = new NBTTagCompound();
|
||||
// customNPC_Gecko_Addon$customModelData.writeToNBT(modelDataTag);
|
||||
// nbttagcompound.setTag("GeckoModelData", modelDataTag);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Inject(method = "setItemNBT", at = @At("HEAD"), remap = false)
|
||||
// public void readFromNBT(NBTTagCompound nbttagcompound, CallbackInfo ci){
|
||||
// if(nbttagcompound.hasKey("GeckoModelData")){
|
||||
// customNPC_Gecko_Addon$customModelData = new CustomItemModelData();
|
||||
// customNPC_Gecko_Addon$customModelData.readFromNBT(nbttagcompound.getCompoundTag("GeckoModelData"));
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Unique
|
||||
// public CustomItemModelData getCustomModelData(){
|
||||
// return customNPC_Gecko_Addon$customModelData;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void setCustomModelData(CustomItemModelData data) {
|
||||
// customNPC_Gecko_Addon$customModelData = data;
|
||||
// }
|
||||
//
|
||||
// @Unique
|
||||
// public boolean hasCustomModel() {
|
||||
// return customNPC_Gecko_Addon$customModelData!=null;
|
||||
// }
|
||||
//}
|
||||
@@ -5,6 +5,7 @@ import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
||||
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import kamkeel.npcs.util.ByteBufUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@@ -59,12 +60,12 @@ public final class CPacketSyncManualAnim implements IMessage, IMessageHandler<CP
|
||||
animList.appendTag(animTag);
|
||||
}
|
||||
compound.setTag("anims",animList);
|
||||
Server.writeNBT(buffer,compound);
|
||||
ByteBufUtils.writeNBT(buffer,compound);
|
||||
}
|
||||
|
||||
public static AnimationBuilder readAnimBuilder(ByteBuf buffer) throws IOException {
|
||||
AnimationBuilder builder = new AnimationBuilder();
|
||||
NBTTagCompound compound = Server.readNBT(buffer);
|
||||
NBTTagCompound compound = ByteBufUtils.readNBT(buffer);
|
||||
NBTTagList animList = compound.getTagList("anims",10);
|
||||
for(int i=0;i<animList.tagCount();i++){
|
||||
NBTTagCompound animTag = animList.getCompoundTagAt(i);
|
||||
|
||||
@@ -6,6 +6,7 @@ import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
||||
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import kamkeel.npcs.util.ByteBufUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@@ -70,12 +71,12 @@ public class CPacketSyncTileManualAnim implements IMessage, IMessageHandler<CPac
|
||||
animList.appendTag(animTag);
|
||||
}
|
||||
compound.setTag("anims",animList);
|
||||
Server.writeNBT(buffer,compound);
|
||||
ByteBufUtils.writeNBT(buffer,compound);
|
||||
}
|
||||
|
||||
public static AnimationBuilder readAnimBuilder(ByteBuf buffer) throws IOException {
|
||||
AnimationBuilder builder = new AnimationBuilder();
|
||||
NBTTagCompound compound = Server.readNBT(buffer);
|
||||
NBTTagCompound compound = ByteBufUtils.readNBT(buffer);
|
||||
NBTTagList animList = compound.getTagList("anims",10);
|
||||
for(int i=0;i<animList.tagCount();i++){
|
||||
NBTTagCompound animTag = animList.getCompoundTagAt(i);
|
||||
|
||||
@@ -8,12 +8,9 @@
|
||||
"mixins": [
|
||||
"MixinDataDisplay",
|
||||
"MixinGeckoAddon",
|
||||
"MixinItemScripted",
|
||||
"MixinScriptCustomItem",
|
||||
"TileScriptedMixin"
|
||||
],
|
||||
"client": [
|
||||
"MixinCustomItemRenderer",
|
||||
"MixinBlockScriptedRenderer",
|
||||
"MixinGeckoAddonClient"
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user