- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
if(block == Block.blockDiamond || block == Block.oreDiamond)
{
return toolMaterial.getHarvestLevel() >= 2;
}
if(block == Block.blockGold || block == Block.oreGold)
{
return toolMaterial.getHarvestLevel() >= 2;
}
if(block == Block.blockSteel || block == Block.oreIron)
{
return toolMaterial.getHarvestLevel() >= 1;
}
if(block == Block.blockLapis || block == Block.oreLapis)
{
return toolMaterial.getHarvestLevel() >= 1;
}
if(block == Block.oreRedstone || block == Block.oreRedstoneGlowing)
{
return toolMaterial.getHarvestLevel() >= 2;
}
Из сорцов майнсрафта.
Нахрена делать из двух ifов пять?!
roman-kashitsyn 19.08.2011 17:34 # +2
Kirinyale 19.08.2011 17:50 # +1
scriptin 19.08.2011 17:46 # +1
Чтобы потом было легче вносить изменения.
Kirinyale 19.08.2011 17:52 # 0
RaZeR 19.08.2011 17:56 # 0
Тут как вариант можно было бы сделать поле HarvestLevel у блока и потом просто сравнивать его с HarvestLevel'ом кирки.
Либо, как вариант "легче вносить изменения":
List<Block> harv1 = new ArrayList<Block>();
List<Block> harv2 = new ArrayList<Block>();
bool harvestable = false;
<...>
harv1.add(Block.blockSteel);
harv1.add(Block.oreIron);
<...>
Iterator it = harv1.iterator();
while (it.hasNext())
{
if (block == (Block)it.next())
{
if (harvestLevel >= 1) harvestable = true;
}
}
<...>
и т.д.
Либо конфиг, как сказал Kirinyale.
gegMOPO4 19.08.2011 18:49 # +1
Если конфиг не нужен, не планируется расширение или изменение в динамике, то хорошо подойдут enum-ы.
Lure Of Chaos 19.08.2011 18:32 # 0
SmackMyBitchUp 20.08.2011 00:49 # 0
guest 20.08.2011 03:03 # 0
guest 20.08.2011 11:10 # 0
RaZeR 20.08.2011 11:52 # 0
striker 20.08.2011 04:10 # +4
guest8 09.04.2019 11:21 # −999