//Grow crops on this tile public static void growCrops(Terrain terrain, int x, int y, Quinoa quinoa) { if(TerrainManager.hasParameter(terrain, TerrainParameter.HAS_SEED)) { if(quinoa.getLightMap().getCalc(x, y) >= TerrainManager.PLANT_LIGHT_LEVEL_MIN) { SeedType seedType = (SeedType)Enum.Parse(typeof(SeedType), TerrainManager.getParameter(terrain, TerrainParameter.HAS_SEED)); switch(seedType) { case SeedType.CORN: terrain.getParameters().Remove(TerrainParameter.HAS_SEED); terrain.getParameters().Add(TerrainParameter.GROW_COUNTER, TerrainManager.GRASS_GROW_COUNT+""); if(quinoa.getCurrentRegionHeader().getRegion().getItem(x, y) == null) { if(RandomNumber.RandomDouble() < 0.50) { Item cornSeed = new Item(); cornSeed.itemClass = ItemClass.CORN_SEED; cornSeed.stackSize = RandomNumber.RandomInteger(9) + 1; cornSeed.setPosition(x, y); quinoa.getCurrentRegionHeader().getRegion().getItems().Add(cornSeed); } Item corn = new Item(); corn.itemClass = ItemClass.CORN; corn.stackSize = RandomNumber.RandomInteger(3) + 1; corn.setPosition(x, y); quinoa.getCurrentRegionHeader().getRegion().getItems().Add(corn); } break; case SeedType.PUMPKIN: //reset the counter terrain.getParameters().Add(TerrainParameter.GROW_COUNTER, (TerrainManager.PUMPKIN_GROW_COUNT / 2)+""); //chance to produce a pumpkin if(quinoa.getCurrentRegionHeader().getRegion().getItem(x, y) == null) { if(RandomNumber.RandomDouble() < TerrainManager.PUMPKIN_PRODUCTION_RATE) { Item pumpkinSeed = new Item(); pumpkinSeed.itemClass = ItemClass.PUMPKIN_SEED; pumpkinSeed.stackSize = RandomNumber.RandomInteger(3) + 1; pumpkinSeed.setPosition(x, y); quinoa.getCurrentRegionHeader().getRegion().getItems().Add(pumpkinSeed); Item pumpkin = new Item(); pumpkin.itemClass = ItemClass.PUMPKIN; pumpkin.stackSize = 1; pumpkin.setPosition(x, y); quinoa.getCurrentRegionHeader().getRegion().getItems().Add(pumpkin); } } break; } } } else { //no seeds, just grow grass terrain.getParameters().Remove(TerrainParameter.GROW_COUNTER); terrain.setCode(TerrainCode.GRASS); if (RandomNumber.RandomDouble() < TerrainManager.TREE_REGROWTH_RATE) { terrain.getParameters().Add(TerrainParameter.HAS_TREE, EnumUtil.EnumName<TreeCode>(TerrainManager.getRandomTree())); } } }