Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fancy fixes #10475

Merged
merged 7 commits into from
Nov 24, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@
"minecolonies:yogurt_with_berries",
"minecolonies:mutton_dinner",
"minecolonies:tortillas",
"minecolonies:apple_pie",
"minecolonies:spicy_eggplant"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"values": [
"minecraft:poisonous_potato",
"minecraft:chicken",
"minecraft:spider_eye",
"minecraft:rotten_flesh"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,10 @@ public interface ICitizenDiseaseHandler
* Sets a flag that the citizen is now at the hospital.
*/
void setSleepsAtHospital(final boolean isAtHospital);

/**
* Set a disease on the citizen.
* @param disease to set.
*/
void setDisease(String disease);
}
2 changes: 2 additions & 0 deletions src/main/java/com/minecolonies/api/items/ModTags.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ public class ModTags
public static final TagKey<Item> breakable_ore = ItemTags.create(TagConstants.BREAKABLE_ORE);
public static final TagKey<Item> raw_ore = ItemTags.create(TagConstants.RAW_ORE);

public static final TagKey<Item> poisonous_food = ItemTags.create(TagConstants.POISONOUS_FOOD);

public static final TagKey<EntityType<?>> hostile = TagKey.create(Registries.ENTITY_TYPE, TagConstants.HOSTILE);
public static final TagKey<EntityType<?>> mobAttackBlacklist = TagKey.create(Registries.ENTITY_TYPE, TagConstants.MOB_ATTACK_BLACKLIST);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ public final class TagConstants
public static final ResourceLocation TEMPERATE_BIOMES = new ResourceLocation(MOD_ID, "temperatebiomes");
public static final ResourceLocation HUMID_BIOMES = new ResourceLocation(MOD_ID, "humidbiomes");
public static final ResourceLocation DRY_BIOMES = new ResourceLocation(MOD_ID, "drybiomes");
public static final ResourceLocation POISONOUS_FOOD = new ResourceLocation(MOD_ID, "poisonousfood");

public static final String CRAFTING_BAKER = ModJobs.BAKER_ID.getPath();
public static final String CRAFTING_BLACKSMITH = ModJobs.BLACKSMITH_ID.getPath();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -632,6 +632,8 @@ public final class TranslationConstants
@NonNls
public static final String MESSAGE_INTERACTION_COOKIE = "com.minecolonies.coremod.interaction.nocookie";
@NonNls
public static final String MESSAGE_INTERACTION_POISON = "com.minecolonies.coremod.interaction.poison";
@NonNls
public static final String MESSAGE_INTERACTION_VISITOR_FOOD = "com.minecolonies.coremod.interaction.visitor.food";
@NonNls
public static final String WARNING_UPGRADE_BARRACKS = "com.minecolonies.coremod.worker.needbarracks";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,12 @@ public void setPlacedBy(final Level worldIn, final BlockPos pos, final BlockStat
worldIn.setBlock(pos, tempState, 2);
}

@Override
public VoxelShape getCollisionShape(final BlockState p_60572_, final BlockGetter p_60573_, final BlockPos p_60574_, final CollisionContext p_60575_)
{
return Shapes.empty();
}

@Override
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -394,9 +394,9 @@ private void startPatrolNext()
{
if (curguard.getEntity().isPresent())
{
if (curguard.getEntity().get().getCitizenJobHandler().getColonyJob() instanceof AbstractJobGuard guardEntity)
if (curguard.getJob() instanceof AbstractJobGuard guardEntity)
{
((AbstractEntityAIGuard<?, ?>) guardEntity.getWorkerAI()).setNextPatrolTarget(lastPatrolPoint);
((AbstractEntityAIGuard<?, ?>) guardEntity.getWorkerAI()).setNextPatrolTargetAndMove(lastPatrolPoint);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,11 @@ public void alterItemsToBeKept(final TriConsumer<Predicate<ItemStack>, Integer,
for (final ItemStorage menuItem : menu)
{
consumer.accept(stack -> ItemStackUtils.compareItemStacksIgnoreStackSize(stack, menuItem.getItemStack(), false, true), menuItem.getItemStack().getMaxStackSize() * getExpectedStock(), false);
if (canCook && MinecoloniesAPIProxy.getInstance().getFurnaceRecipes().getFirstSmeltingRecipeByResult(menuItem) instanceof RecipeStorage recipeStorage)
{
final ItemStack smeltStack = recipeStorage.getInput().get(0).getItemStack();
consumer.accept(stack -> ItemStackUtils.compareItemStacksIgnoreStackSize(stack, smeltStack, false, true), smeltStack.getMaxStackSize() * getExpectedStock(), false);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ public class BuildingCook extends AbstractBuilding
public BuildingCook(final IColony c, final BlockPos l)
{
super(c, l);
keepX.put(stack -> !ItemStackUtils.isEmpty(stack.getCraftingRemainingItem()) && !stack.getCraftingRemainingItem().getItem().equals(Items.BUCKET), new Tuple<>(STACKSIZE, false));
}

/**
Expand All @@ -90,6 +89,12 @@ public void onUpgradeComplete(final int newLevel)
initTags = false;
}

@Override
protected boolean keepFood()
{
return false;
}

/**
* Gets the next sitting position to use for eating, just keeps iterating the aviable positions, so we do not have to keep track of who is where.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -893,7 +893,7 @@ public BlockPos getRandomBuilding()

for (int i = 0; i < possibleGuards.size() && i <= 3; i++)
{
((AbstractEntityAIGuard<?, ?>) possibleGuards.get(i).getCitizenData().getJob().getWorkerAI()).setNextPatrolTarget(lastBuilding);
((AbstractEntityAIGuard<?, ?>) possibleGuards.get(i).getCitizenData().getJob().getWorkerAI()).setNextPatrolTargetAndMove(lastBuilding);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -520,7 +520,7 @@ public IAIState patrol()

if (currentPatrolPoint != null)
{
setNextPatrolTarget(currentPatrolPoint);
setNextPatrolTargetAndMove(currentPatrolPoint);
}
}
}
Expand Down Expand Up @@ -561,11 +561,11 @@ public IAIState patrolMine()
final MinerLevel level = buildingMiner.getFirstModuleOccurance(MinerLevelManagementModule.class).getCurrentLevel();
if (level == null)
{
setNextPatrolTarget(buildingMiner.getPosition());
setNextPatrolTargetAndMove(buildingMiner.getPosition());
}
else
{
setNextPatrolTarget(level.getRandomCompletedNode(buildingMiner));
setNextPatrolTargetAndMove(level.getRandomCompletedNode(buildingMiner));
}
}
else
Expand All @@ -586,13 +586,17 @@ public IAIState patrolMine()
*
* @param target the next patrol target.
*/
public void setNextPatrolTarget(final BlockPos target)
public void setNextPatrolTargetAndMove(final BlockPos target)
{
currentPatrolPoint = target;
if (getState() == CombatAIStates.NO_TARGET)
registerTarget(new AIOneTimeEventTarget(() ->
{
worker.isWorkerAtSiteWithMove(currentPatrolPoint, 2);
}
if (getState() == CombatAIStates.NO_TARGET)
{
return decide();
}
return getState();
}));
}

/**
Expand Down
Loading