Ну, оцени сам -FanKar написал(а):Вообще без гуи плохи дела. Н е у д о б н о. Однако для новичка пусть будет другим, без гуи. Просто вряд ли ты смог бы сделать нормальную крафтовую систему со своим опи.
//CRAFT SYSTEM
public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_)
{
if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z))
{
if (p_149695_1_.getBlockMetadata(x, y, z) == 1)
{
Block B = p_149695_1_.getBlock(x, y + 1, z);
EntityItem entityitem = new EntityItem(p_149695_1_, (double)x + 2.5D, (double)y, (double)z, new ItemStack(this.ProductB(B),this.CountB(B, 1)));
entityitem.setVelocity(0., 0, 0);
entityitem.delayBeforeCanPickup = 10;
p_149695_1_.spawnEntityInWorld(entityitem);
p_149695_1_.setBlock(x, y + 1, z, Blocks.air);
if (p_149695_1_.isAirBlock(x, y + 1, z))
{
double d0 = 0.0625D;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double)x, (double)y, (double)z, (double)(x + 1), (double)(y + 1), (double)(z + 1)).expand(d0, d0, d0);
List list = p_149695_1_.getEntitiesWithinAABB(Entity.class, axisalignedbb);
Iterator iterator = list.iterator();
Entity MATERIAL;
while(iterator.hasNext())
{
MATERIAL = (Entity)iterator.next();
if (MATERIAL instanceof EntityItem)
{
EntityItem MATERIAL_ITEM = (EntityItem)MATERIAL;
ItemStack IS_MATERIAL = MATERIAL_ITEM.getEntityItem();
Item I = IS_MATERIAL.getItem();
EntityItem entityitem_1 = new EntityItem(p_149695_1_, (double)x + 2.5D, (double)y, (double)z, new ItemStack(this.ProductI(I),this.CountI(I, 1)));
entityitem_1.setVelocity(0.3, 0, 0);
entityitem_1.delayBeforeCanPickup = 10;
p_149695_1_.spawnEntityInWorld(entityitem_1);
if (IS_MATERIAL.stackSize == 1) MATERIAL_ITEM.setDead(); else IS_MATERIAL.stackSize -= 1;
}
}
}
}
}
}
//BLOCKS RECIPES
public Item ProductB(Block B)
{
if(B == Blocks.gold_ore){return Items.gold_nugget;}
else if (B == Blocks.iron_ore){return MainGMP.Iron_Nugget;}
else if (B == Blocks.stone){return Item.getItemFromBlock(Blocks.sand);}
else if (B == Blocks.cobblestone){return Item.getItemFromBlock(Blocks.sand);}
else if (B == Blocks.stonebrick){return Item.getItemFromBlock(Blocks.sand);}
else if (B == Blocks.gravel)
{
int Random = (int) (Math.random()*10);
switch(Random)
{
case 1: return MainGMP.Iron_Nugget;
case 2: return MainGMP.Copper_Nugget;
case 3: return MainGMP.Cobalt_Nugget;
case 4: return MainGMP.Magnetite_Nugget;
case 5: return MainGMP.Adamantite_Nugget;
case 6: return MainGMP.Silver_Nugget;
case 7: return MainGMP.Tin_Nugget;
case 8: return Items.gold_nugget;
default: return Item.getItemFromBlock(Blocks.sand);
}
}
return Item.getItemFromBlock(B);
}
public int CountB(Block B,int BASIC)
{
int R;
int Random = (int) (Math.random()*10);
if(Random <= 5){R = Random;}else{R = Random/2;}
if(B == Blocks.gold_ore)
{
return 16;
}
else if (B == Blocks.iron_ore){return 16;}
else if (B == Blocks.gravel){System.out.println(R); return R;}
return BASIC;
}
//ITEMS RECIPES
public Item ProductI(Item I)
{
if(I == Item.getItemFromBlock(Blocks.gold_ore)){return Items.gold_nugget;}
else if (I == Item.getItemFromBlock(Blocks.stone)){return Item.getItemFromBlock(Blocks.sand);}
else if (I == Item.getItemFromBlock(Blocks.cobblestone)){return Item.getItemFromBlock(Blocks.sand);}
else if (I == Item.getItemFromBlock(Blocks.stonebrick)){return Item.getItemFromBlock(Blocks.sand);}
else if (I == Item.getItemFromBlock(Blocks.iron_ore)){return MainGMP.Iron_Nugget;}
else if (I == Item.getItemFromBlock(Blocks.gravel))
{
int Random = (int) (Math.random()*10);
switch(Random)
{
case 1: return MainGMP.Iron_Nugget;
case 2: return MainGMP.Copper_Nugget;
case 3: return MainGMP.Cobalt_Nugget;
case 4: return MainGMP.Magnetite_Nugget;
case 5: return MainGMP.Adamantite_Nugget;
case 6: return MainGMP.Silver_Nugget;
case 7: return MainGMP.Tin_Nugget;
case 8: return Items.gold_nugget;
default: return Item.getItemFromBlock(Blocks.sand);
}
}
return I;
}
public int CountI(Item I,int BASIC)
{
int R;
int Random = (int) (Math.random()*10);
if(Random <= 5){R = Random;}else{R = Random/2;}
if(I == Item.getItemFromBlock(Blocks.gold_ore))
{
return 16;
}
else if (I == Item.getItemFromBlock(Blocks.iron_ore)){return 16;}
else if (I == Item.getItemFromBlock(Blocks.gravel)){return R;}
return BASIC;
}
}
Как!!???Я не хочу упустить возможности улучшить код!FanKar написал(а):Ах, жаловаться не буду, однако можно чуть лучше
public void onNeighborBlockChange(World world, int x, int y, int z, Block p_149695_5_)
{
if (world.isBlockIndirectlyGettingPowered(x, y, z))
{
double d0 = 0.0625D;
AxisAlignedBB Zone = AxisAlignedBB.getBoundingBox((double)x, (double)y, (double)z, (double)(x + 1), (double)(y + 1), (double)(z + 1)).expand(d0, d0, d0);
List list = world.getEntitiesWithinAABB(Entity.class, Zone);
Iterator iterator = list.iterator();
Entity MATERIAL;
while(iterator.hasNext())
{
MATERIAL = (Entity)iterator.next();
if (MATERIAL instanceof EntityItem)
{
EntityItem MATERIAL_ITEM = (EntityItem)MATERIAL;
ItemStack MATERIALStack = MATERIAL_ITEM.getEntityItem();
Item I = MATERIALStack.getItem();
if(MATERIALStack.stackSize >= this.CountI(I, 9)){
EntityItem entityitem_1 = new EntityItem(world, (double)x + 2.5D, (double)y, (double)z, new ItemStack(this.ProductI(I)));
entityitem_1.setVelocity(0.3, 0, 0);
entityitem_1.delayBeforeCanPickup = 10;
world.spawnEntityInWorld(entityitem_1);
if (MATERIALStack.stackSize == 9) MATERIAL_ITEM.setDead(); else MATERIALStack.stackSize -= 9;
}
}
else
{
MATERIAL.setFire(10);
MATERIAL.attackEntityFrom(DamageSource.lava, 30.0F);
}
}
}
}
public Item ProductI(Item I)
{
if(I == MainGMP.Adamantite_Nugget){return MainGMP.Adamantite_Ingot;}
else if(I == MainGMP.Cobalt_Nugget){return MainGMP.Cobalt_Ingot;}
else if (I == Item.getItemFromBlock(Blocks.sand)){return Item.getItemFromBlock(Blocks.glass);}
return I;
}
public int CountI(Item I,int BASIC)
{
int R;
int Random = (int) (Math.random()*10);
if(Random <= 5){R = Random;}else{R = Random/2;}
if(I == MainGMP.Adamantite_Nugget){return 9;}
else if (I == Item.getItemFromBlock(Blocks.sand)){return 1;}
return BASIC;
}
}
Он плохой или сложный?Agravaine написал(а):Только что у меня из глаз пошла кровь из-за твоего кода.
Как раз этим занимаюсь(локализация, скрины, редактирование темы)FanKar написал(а):А теперь жди)
P.S. Накидай больше скринов, мне хочется очень сильно увидеть ещё больше инфы о твоём моде (Ну почему бы и нет?)