private void grindInput() { ItemStack grindedStack = InputGrindProps.GroundStack.ResolvedItemstack.Clone(); if (OutputSlot.Itemstack == null) { OutputSlot.Itemstack = grindedStack; } else { int mergableQuantity = OutputSlot.Itemstack.Collectible.GetMergableQuantity(OutputSlot.Itemstack, grindedStack, EnumMergePriority.AutoMerge); if (mergableQuantity > 0) { OutputSlot.Itemstack.StackSize += grindedStack.StackSize; } else { BlockFacing face = BlockFacing.HORIZONTALS[nowOutputFace]; nowOutputFace = (nowOutputFace + 1) % 4; Block block = Api.World.BlockAccessor.GetBlock(this.Pos.AddCopy(face)); if (block.Replaceable < 6000) { return; } Api.World.SpawnItemEntity(grindedStack, this.Pos.ToVec3d().Add(0.5 + face.Normalf.X * 0.7, 0.75, 0.5 + face.Normalf.Z * 0.7), new Vec3d(face.Normalf.X * 0.02f, 0, face.Normalf.Z * 0.02f)); } } InputSlot.TakeOut(1); InputSlot.MarkDirty(); OutputSlot.MarkDirty(); }
private void grindInput() { ItemStack grindedStack = InputGrindProps.GrindedStack.ResolvedItemstack; if (OutputSlot.Itemstack == null) { OutputSlot.Itemstack = grindedStack.Clone(); } else { OutputSlot.Itemstack.StackSize += grindedStack.StackSize; } InputSlot.TakeOut(1); InputSlot.MarkDirty(); OutputSlot.MarkDirty(); }