-
Posts
29 -
Joined
-
Last visited
Posts posted by minecraftbigfoot
-
-
Just now, Choonster said:
Calling Map#remove with a new ItemStack on a Map with ItemStack keys won't do anything. ItemStack doesn't override Object#equals or Object#hashCode, so two ItemStacks are only considered to be the same key if they're the same object.
Hence why I can't make it work this way.
public static void removeRecipes() { Iterator interator = FurnaceRecipes.instance().getSmeltingList().entrySet().iterator(); while (interator.hasNext()) { ItemStack cobble = new ItemStack(Blocks.COBBLESTONE); if (interator.next().equals(cobble)) interator.remove(); } }
Done this with normal stone and cobble as Jay suggested neither even changes a thing. Nothing is changed because it wants an object and I'm giving it an ItemStack.
-
8 minutes ago, Jay Avery said:
I think all you should need to do is make a cobblestone ItemStack (instead of the stone stack you used in your initial code), and call remove using that. (I haven't specifically done this with furnace recipes, but from what I know about Maps I don't see a reason for it not to work!).
ItemStack cobble = new ItemStack(Blocks.COBBLESTONE); FurnaceRecipes.instance().getSmeltingList().remove(cobble);
Doesn't work, guess I will have to continue brainstorming. Thank you anyway Jay
-
Iterating over it isn't working well.. because theres not an Interface for smelting to get the current recipe of the interator.
56 minutes ago, Jay Avery said:Furnace recipes are a map of input->output. The remove method removes an entry with the given key, that is, input. So if you want to remove the cobblestone->stone recipe, you need to call remove with cobblestone.
How would you go about calling this? I take it:
FurnaceRecipes.instance().getSmeltingList().remove(stone)
wouldn't work. -
Thank youu
this is what I have so far :3
public static void removeRecipes() { Iterator<IRecipe> furnace = FurnaceRecipes.instance().getSmeltingList().iterator(); Iterator<IRecipe> iterator = CraftingManager.getInstance().getRecipeList().iterator(); while (iterator.hasNext()) { IRecipe recipe = iterator.next(); ItemStack stone = new ItemStack(Blocks.STONE, 1, 0); if (recipe == null) continue; ItemStack output = recipe.getRecipeOutput(); if (output != null && output.equals(stone)) iterator.remove(); } }
-
The issue I seem to be having is:
Iterator<IRecipe> furance = FurnaceRecipes.instance().getSmeltingList().iterator();
as there is no iterator for FurnaceRecipes, whereas normal crafting will return me one.
-
package mod.brandy; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; public class BrandyAntiRecipes { public static void removeRecipes() { ItemStack stone = new ItemStack(Blocks.STONE, 1, 0); FurnaceRecipes.instance().getSmeltingList().remove(stone); } }
This is called in my init() in my main class, however it does nothing. Clearly I've made a bit of a mistake
thank you~
version: 1.10
-
Thank you Sir!
if(plr.getHeldItemMainhand() != null && plr.getHeldItemMainhand().getItem().equals(BrandyWeapons.vorpalBlade))
works perfect!
-
Need a little help Null checking, thought that a valid null check was
- if(plr.inventory.getCurrentItem().getItem() != null && plr.inventory.getCurrentItem().getItem().equals(BrandyWeapons.vorpalBlade))
But I find this gives me a null pointer exception and errors, I'm being dumb right?
-
8 hours ago, Jay Avery said:
This line is completely unnecessary. You create a stack with a size of 1, and then check in case it's not 1..?
Yesterday was not my finest day
- 1
-
Boom!
if(event.getEntity() instanceof EntitySkeleton) { ItemStack stack = new ItemStack(Items.SKULL, 1, 0); if(stack.stackSize > 1){stack.stackSize = 1;} EntityItem drop = new EntityItem(attacked.worldObj, attacked.posX, attacked.posY, attacked.posZ, stack); event.getDrops().add(drop); }
Thanks all, think I was just having a mental block, how things have changed over just a couple of years :')
-
Probably should hehe, thank you.
Whilst you're here..
event.getDrops().add(new ItemStack(Items.SKULL, 1, 0))
wants me to make the ItemStack a EntityItem, not being funny but what does this mean?
-
I am working on MC 1.10, however I was using CurrentItem because from what I remember from a couple of years ago that was the right call (stopped playing for 2 or so years).
However I will change it to get main hand
-
Cheers Sir!
-
This doesn't drop a skull, though from what I can see it should.
//"skeleton", "wither", "zombie", "char", "creeper", "dragon" @SubscribeEvent public void entityDrops(LivingDropsEvent event) { Minecraft mc = Minecraft.getMinecraft(); EntityPlayer plr = mc.thePlayer; if(plr.inventory.getCurrentItem().getItem().equals(BrandyWeapons.vorpalBlade)) { if(event.getEntity().getEntityId() == 51){ event.getEntity().entityDropItem(new ItemStack(Items.SKULL, 1, 0), 0);} if(event.getEntity().getEntityId() == 5){ event.getEntity().entityDropItem(new ItemStack(Items.SKULL, 1, 1), 0);} if(event.getEntity().getEntityId() == 54){ event.getEntity().entityDropItem(new ItemStack(Items.SKULL, 1, 2), 0);} if(event.getEntity() == plr){ event.getEntity().entityDropItem(new ItemStack(Items.SKULL, 1, 3), 0);} if(event.getEntity().getEntityId() == 50){ event.getEntity().entityDropItem(new ItemStack(Items.SKULL, 1, 4), 0);} if(event.getEntity().getEntityId() == 63){ event.getEntity().entityDropItem(new ItemStack(Items.SKULL, 1, 5), 0);} } }
Wondering if it is because I am using EntityIDs?
-
That is my aim, yes.
Okay I will do some reading into capabilities and get back with some results!
Thank you Sir.
-
Just now, Jay Avery said:
Yep!
GuiDCompass: http://pastebin.com/Tkb5YVCX / GuiDCompassDisplay: http://pastebin.com/K6V6yBAN
ItemDCompass http://pastebin.com/NqaipQUe / BrandyGuiHandler: http://pastebin.com/B1t4S5u8
I know my code is messy, this is my first mod
-
Just now, Jay Avery said:
Show the code for your compass item. Here is info about capabilities: https://mcforge.readthedocs.io/en/latest/datastorage/capabilities/
It is spread across 4 classes, 2 gui, 1 item, 1 guihandler, want them all?
-
Awesome, where would I find info on Capabilitys, or a class? Ty!
-
So, I have set up a "digital" compass in my mod.
When you shift+right click it opens a GUI which you can use to turn it on or off.
It is on then I have a renderer that pops at the top of the screen "DIRECTION_FACING" (being one of the four directions).
The question I have is once it is turned on, I can put it in a chest and it will stay on, however once you leave game and rejoin you have to turn it on again. Is it possible to set it up so that if it is turned on its saved "on?"
I feel like maybe nbt could do it? I'm not experienced with nbt at all so any help is great! Thank you
-
Just now, diesieben07 said:
Oh, and as for code style: Drawing things in a constructor is ... well, ... terrible.
Yeah, for my other item I chose to not do it in a constructor, ngl only drawing things in that constructor is because I can't be bothered to move anything aha
-
Just now, diesieben07 said:
You should only draw when the event type is ALL, not when it's anything but EXPERIENCE.
Thank you, Sir.
In case someone views this later, should now be:
@SubscribeEvent public void onRenderGui(RenderGameOverlayEvent.Post event) { if (event.getType() == ElementType.ALL) { new GuiClickerCount(Minecraft.getMinecraft()); } }
-
public class GuiClickerCount extends Gui { public GuiClickerCount(Minecraft clientIn) { ItemStack click = Minecraft.getMinecraft().thePlayer.inventory.getCurrentItem(); int color = 0xFFFFFF; if(click != null && click.getItem() == BrandyItems.clickerItem) { GL11.glPushMatrix(); { ScaledResolution scaled = new ScaledResolution(clientIn); int width = scaled.getScaledWidth(); if(GuiClicker.count == "0") { this.drawString(Minecraft.getMinecraft().fontRendererObj, "No Clicks!", width - 65, 0 + 20, color); } else if(GuiClicker.count == null) { this.drawString(Minecraft.getMinecraft().fontRendererObj, "No Clicks!", width - 65, 0 + 20, color); } else { this.drawString(Minecraft.getMinecraft().fontRendererObj, "Clicks: " + GuiClicker.count, width - 65, 0 + 20, color); } } GL11.glPopMatrix(); } } }
This is the full class, it is called here:
@SubscribeEvent public void onRenderGui(RenderGameOverlayEvent.Post event) { if (event.getType() != ElementType.EXPERIENCE) { new GuiClickerCount(Minecraft.getMinecraft()); } }
-
After using this code:
this.drawString(Minecraft.getMinecraft().fontRendererObj, "5", width - 65, 0 + 20, color);
It also makes my hunger bar go completely white, the color is set to 0xFFFFFF.
How do I fix this?
Tried gl11 didnt do much.
thanks!
-
Changed the root of the PATH to my C: drive thinking the fact it was on my F: drive may have caused an issue, no difference once done. Reinstalled Java and the same, no difference. Tried to use 1.7.10 MCForge and it worked, until it stopped because of being unable to extract JNI properly.
Removing a Vanilla Smelting Recipe [1.10]
in Modder Support
Posted
Thanks for all the help guys!
Final method:
Thanks all <3