Jump to content
Search In
  • More options...
Find results that contain...
Find results in...


  • Posts

  • Joined

  • Last visited

Everything posted by TheTrueSCP

  1. Unfortunately, that's the complete code, I don't know how to change the parameters in the example in the documentation
  2. private static final String PROTICOL_VERSION = "1"; public static final SimpleChannel CHANNEL = NetworkRegistry.newSimpleChannel( new ResourceLocation("corruption","main") ,() -> PROTICOL_VERSION , PROTICOL_VERSION::equals , PROTICOL_VERSION::equals);
  3. If i try to write the SimpleChannel Object ive get errors like: Incompatible types. Found: 'net.minecraftforge.fml.network.simple.SimpleChannel', required: 'net.the_goldbeards.lootdebugs.Server.SimpleChannel'
  4. I just copied and adapted the examples on the forum page. Despite the documentation, I don't understand exactly how to tell the server that I have pressed the button and how the server can then call the function
  5. I've read it through the page several times now and still don't understand exactly how to do it
  6. Hi Guys, the title says it all: how can I make an animation offset from a drinkable item?
  7. hi guys, i need help with tileentitys. i have a button in my tileentity and i want if i press the butten, a function should be called up in the in the tileentityclass. More precisely said the brewBlackout() class my Init in the Screen: @Override protected void init() { this.addButton(new ImageButton(this.guiLeft + 10, this.height + 30, 20, 18, 0, 0, 19, CONTINUE_BUTTON, (button) -> { ((ImageButton)button).setPosition(this.guiLeft + 20, this.height / 2 - 49); })); } and my tileentity package net.the_goldbeards.lootdebugs.tileentity; import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.*; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemStackHandler; import net.the_goldbeards.lootdebugs.init.ModBlocks; import net.the_goldbeards.lootdebugs.init.ModItems; import net.the_goldbeards.lootdebugs.init.ModTileEntities; import javax.annotation.Nonnull; public class PubTile extends TileEntity implements ITickableTileEntity { private final ItemStackHandler itemHandler = createHandler(); private final LazyOptional<IItemHandler> handler = LazyOptional.of(() -> itemHandler); public PubTile(TileEntityType<?> tileEntityTypeIn) { super(tileEntityTypeIn); } public PubTile() { this(ModTileEntities.PUB_TILE.get()); } @Override public void read(BlockState state, CompoundNBT nbt) { itemHandler.deserializeNBT(nbt.getCompound("pub")); super.read(state, nbt); } @Override public CompoundNBT write(CompoundNBT compound) { compound.put("pub", itemHandler.serializeNBT()); return super.write(compound); } private ItemStackHandler createHandler() { return new ItemStackHandler(6) { @Override protected void onContentsChanged(int slot) { brewBlackout(); markDirty(); } @Override public boolean isItemValid(int slot, @Nonnull ItemStack stack) { switch (slot) { case 0: return stack.getItem() == Items.WATER_BUCKET || stack.getItem() == Items.BUCKET;//Water Insert case 1: return stack.getItem() == Items.REDSTONE;//Barley Bulb case 2: return stack.getItem() == Items.WARPED_DOOR;// Yeast Cone case 3: return stack.getItem() == Items.MAGENTA_BANNER;//Malz Stars case 4: return stack.getItem() == ModItems.BARLEY_BULB.get();//Starch Nut case 5: return stack.getItem() == ModItems.MUG.get() || stack.getItem() == ModItems.OILY_OAF.get() || stack.getItem() == ModItems.SKULL_CRUSHER.get() || stack.getItem() == ModItems.OILY_OAF.get();//Output -> Mug or Mug with Liquid default: return false; } } @Override protected int getStackLimit(int slot, @Nonnull ItemStack stack) { if (slot == 5) { return 1; } if (slot == 0) { return 5; } else { return 64; } } @Nonnull @Override public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { if (!isItemValid(slot, stack)) { return stack; } return super.insertItem(slot, stack, simulate); } }; } @Nonnull @Override public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap) { if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { return handler.cast(); } return super.getCapability(cap); } public void brewBlackout() { boolean isWaterInSlot = this.itemHandler.getStackInSlot(0).getCount() == 1 && this.itemHandler.getStackInSlot(0).getItem() == Items.WATER_BUCKET; boolean isMugInSlot = this.itemHandler.getStackInSlot(5).getCount() == 1 && this.itemHandler.getStackInSlot(5).getItem() == ModItems.MUG.get(); boolean isIngredients = this.itemHandler.getStackInSlot(4).getCount() >= 3 && this.itemHandler.getStackInSlot(4).getItem() == ModItems.BARLEY_BULB.get(); if (isMugInSlot && isIngredients && isWaterInSlot) { this.itemHandler.getStackInSlot(0).shrink(1); this.itemHandler.insertItem(0, new ItemStack(Items.BUCKET, 1), false); this.itemHandler.getStackInSlot(4).shrink(3); this.itemHandler.getStackInSlot(5).shrink(1); this.itemHandler.insertItem(5, new ItemStack(ModBlocks.OILY_OAF.get(), 1), false); } } /* private void craft() { Inventory inv = new Inventory(itemHandler.getSlots()); for (int i = 0; i < itemHandler.getSlots(); i++) { inv.setInventorySlotContents(i, itemHandler.getStackInSlot(i)); } Optional<PubRecipe> recipe = world.getRecipeManager() .getRecipe(ModRecipeTypes.PUB_RECIPE, inv, world); recipe.ifPresent(iRecipe -> { ItemStack output = iRecipe.getRecipeOutput(); craftTheItem(output); markDirty(); }); } private void craftTheItem(ItemStack output) { itemHandler.extractItem(0, 1,false); itemHandler.insertItem(0, new ItemStack(Items.BUCKET,1),false); } */ @Override public void tick() { // if(world.isRemote) // {return;} // craft(); }
  8. sorry for writing again but I have no idea what to do, the item should also be drinkable like a bucket, how should I do that when the class is already being extended with BlockItems?
  9. package net.thetruescp.lootbugs.block.custom; import net.minecraft.block.Block; public class OilyOaf extends Block { public OilyOaf(Properties properties) { super(properties); } }
  10. if i us my own class, the block and the item are not linked public static final RegistryObject<Item> OILY_OAF= ITEMS.register("oily_oaf", () -> new OilyOaf(new Item.Properties().group(ModGroup.LOOTBUG_GROUP))); but if i use BlockItem, my Custom Item class is not linked to the item public static final RegistryObject<Item> OILY_OAF= ITEMS.register("oily_oaf", () -> new BlockItem(ModBlocks.OILY_OAF.get(),new Item.Properties().group(ModGroup.LOOTBUG_GROUP)));
  11. Hi Guys, I'm relatively new to forge modding and wanted to know how do I create a block with custom bluckitem which has its own java class?
  12. Do you know an entity modeling program with which you can also make animations? Because with Blockbench the Gecolibplugin only exports json files...
  13. ok figured out on my own, thank you for helping me😁
  14. and how should I then make custom animations and trigger them?
  15. That's right, but if you spawn a second one and if the other entity is in the water, the tail of the second one rotates
  16. ok thanks, here is the github link: https://github.com/TheTrueSCP/Lootbugs_Minecraft_Mod
  17. but i could save the files as a folder in google drive
  18. Unfortunately this is not possible because there are too many and to big files for github
  19. it looks like everything is going to work. The entity is recognized whether it is in the water and if so, the function is carried out. But nothing happens or the same thing happens to everyone
  20. what do you mean by debugger? (sorry for the question, but i haven't been programming with forge for that long)
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.