Skip to content

Commit

Permalink
- 完成部分流体储罐设计
Browse files Browse the repository at this point in the history
- 修改工作模式范围为 12
  • Loading branch information
TartaricAcid committed Dec 23, 2023
1 parent 066a757 commit b9b960b
Show file tree
Hide file tree
Showing 15 changed files with 36 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ default SoundEvent getAmbientSound(EntityMaid maid) {
*/
@Override
default List<Pair<Integer, BehaviorControl<? super EntityMaid>>> createBrainTasks(EntityMaid maid) {
MaidFarmMoveTask maidFarmMoveTask = new MaidFarmMoveTask(this, 0.6f, 16);
MaidFarmMoveTask maidFarmMoveTask = new MaidFarmMoveTask(this, 0.6f, 24);
MaidFarmPlantTask maidFarmPlantTask = new MaidFarmPlantTask(this);
return Lists.newArrayList(Pair.of(5, maidFarmMoveTask), Pair.of(6, maidFarmPlantTask));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import net.minecraft.world.entity.player.Inventory;

public class TankBackpackContainerScreen extends AbstractMaidContainerGui<TankBackpackContainer> implements IBackpackContainerScreen {
private static final ResourceLocation BACKPACK = new ResourceLocation(TouhouLittleMaid.MOD_ID, "textures/gui/maid_gui_backpack.png");
private static final ResourceLocation BACKPACK = new ResourceLocation(TouhouLittleMaid.MOD_ID, "textures/gui/maid_tank.png");
private final EntityMaid maid;

public TankBackpackContainerScreen(TankBackpackContainer container, Inventory inv, Component titleIn) {
Expand All @@ -28,9 +28,5 @@ protected void renderBg(GuiGraphics graphics, float partialTicks, int x, int y)
RenderSystem.setShader(GameRenderer::getPositionTexShader);
RenderSystem.setShaderTexture(0, BACKPACK);
graphics.blit(BACKPACK, leftPos + 85, topPos + 36, 0, 0, 165, 128);
graphics.fill(leftPos + 142, topPos + 81, leftPos + 250, topPos + 117, 0xaa222222);
graphics.blit(BACKPACK, leftPos + 190, topPos + 92, 165, 0, 11, 11);
graphics.fill(leftPos + 142, topPos + 122, leftPos + 250, topPos + 158, 0xaa222222);
graphics.blit(BACKPACK, leftPos + 190, topPos + 133, 165, 0, 11, 11);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public static void init(ForgeConfigSpec.Builder builder) {
MAID_NTR_ITEM = builder.define("MaidNtrItem", "minecraft:structure_void");

builder.comment("The max range of maid home mode");
MAID_HOME_RANGE = builder.defineInRange("MaidHomeRange", 8, 3, 64);
MAID_HOME_RANGE = builder.defineInRange("MaidHomeRange", 12, 3, 64);

builder.comment("Maid can switch models freely");
MAID_CHANGE_MODEL = builder.define("MaidChangeModel", true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ protected void doTick(ServerLevel worldIn, LivingEntity entityIn) {
private Optional<LivingEntity> getNearestHostile(LivingEntity livingEntity) {
return this.getVisibleEntities(livingEntity).flatMap(entities ->
entities.find(enemy -> isHostile(enemy) && this.isClose(livingEntity, enemy))
.min((enemy1, enemy2) -> {
return this.compareMobDistance(livingEntity, enemy1, enemy2);
}));
.min((enemy1, enemy2) -> this.compareMobDistance(livingEntity, enemy1, enemy2)));
}

private Optional<NearestVisibleLivingEntities> getVisibleEntities(LivingEntity livingEntity) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import net.minecraft.world.level.pathfinder.WalkNodeEvaluator;

public class MaidReturnHomeTask extends MaidCheckRateTask {
private static final int MAX_DELAY_TIME = 100;
private static final int MAX_DELAY_TIME = 200;
private static final int TOO_CLOSED_RANGE = 3;
private static final int MAX_TELEPORT_ATTEMPTS_TIMES = 10;
private static final int MIN_TELEPORT_DISTANCE = 12;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ public void onTakeOff(ItemStack stack, Player player, EntityMaid maid) {
public void onSpawnTombstone(EntityMaid maid, EntityTombstone tombstone) {
}

@Override
public boolean hasBackpackData() {
return true;
}

@Nullable
@Override
public IBackpackData getBackpackData(EntityMaid maid) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@
import net.minecraft.nbt.Tag;
import net.minecraft.world.SimpleContainer;
import net.minecraft.world.inventory.ContainerData;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.capability.templates.FluidTank;

public class TankBackpackData extends SimpleContainer implements IBackpackData {
public static final int CAPACITY = 10 * FluidType.BUCKET_VOLUME;
private static final int INPUT_INDEX = 0;
private static final int OUTPUT_INDEX = 1;
private final FluidTank tank = new FluidTank(CAPACITY);
private final ContainerData dataAccess = new ContainerData() {
public int get(int index) {
Expand All @@ -22,7 +26,10 @@ public int get(int index) {

public void set(int index, int value) {
if (index == 0) {
TankBackpackData.this.tank.getFluid().setAmount(value);
FluidStack fluid = TankBackpackData.this.tank.getFluid();
if (!fluid.isEmpty()) {
fluid.setAmount(value);
}
}
}

Expand All @@ -35,6 +42,11 @@ public TankBackpackData() {
super(2);
}

@Override
public void setItem(int index, ItemStack stack) {
super.setItem(index, stack);
}

@Override
public ContainerData getDataAccess() {
return dataAccess;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.Brain;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.navigation.GroundPathNavigation;
import net.minecraft.world.entity.item.ItemEntity;
Expand Down Expand Up @@ -194,6 +195,10 @@ public EntityMaid(Level worldIn) {
this(TYPE, worldIn);
}

public static AttributeSupplier.Builder createAttributes() {
return LivingEntity.createLivingAttributes().add(Attributes.FOLLOW_RANGE, 64).add(Attributes.ATTACK_KNOCKBACK).add(Attributes.ATTACK_DAMAGE);
}

public static boolean canInsertItem(ItemStack stack) {
if (stack.getItem() instanceof BlockItem) {
Block block = ((BlockItem) stack.getItem()).getBlock();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public ItemStack getIcon() {

@Override
public List<Pair<Integer, BehaviorControl<? super EntityMaid>>> createBrainTasks(EntityMaid maid) {
MaidFarmMoveTask maidFarmMoveTask = new MaidFarmMoveTask(this, 0.6f, 16) {
MaidFarmMoveTask maidFarmMoveTask = new MaidFarmMoveTask(this, 0.6f, 24) {
@Override
protected boolean checkPathReach(EntityMaid maid, BlockPos pos) {
for (int x = -1; x <= 1; x++) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@ public SoundEvent getAmbientSound(EntityMaid maid) {

@Override
public List<Pair<Integer, BehaviorControl<? super EntityMaid>>> createBrainTasks(EntityMaid maid) {
return Lists.newArrayList(Pair.of(5, new MaidFeedAnimalTask(8, 0.6f, 30)));
return Lists.newArrayList(Pair.of(5, new MaidFeedAnimalTask(12, 0.6f, 30)));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public SoundEvent getAmbientSound(EntityMaid maid) {

@Override
public List<Pair<Integer, BehaviorControl<? super EntityMaid>>> createBrainTasks(EntityMaid maid) {
return Lists.newArrayList(Pair.of(5, new MaidMilkTask(8, 0.6f)));
return Lists.newArrayList(Pair.of(5, new MaidMilkTask(12, 0.6f)));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ public void harvest(EntityMaid maid, BlockPos cropPos, BlockState cropState) {
Block cropBlock = cropState.getBlock();
if (cropBlock instanceof CropBlock) {
CropBlock crop = (CropBlock) cropBlock;
BlockEntity tileentity = maid.level.getBlockEntity(cropPos);
Block.dropResources(cropState, maid.level, cropPos, tileentity, maid, maid.getMainHandItem());
BlockEntity blockEntity = maid.level.getBlockEntity(cropPos);
Block.dropResources(cropState, maid.level, cropPos, blockEntity, maid, maid.getMainHandItem());
maid.level.setBlock(cropPos, crop.defaultBlockState(), Block.UPDATE_ALL);
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@ public SoundEvent getAmbientSound(EntityMaid maid) {

@Override
public List<Pair<Integer, BehaviorControl<? super EntityMaid>>> createBrainTasks(EntityMaid maid) {
return Lists.newArrayList(Pair.of(5, new MaidShearTask(8, 0.6f)));
return Lists.newArrayList(Pair.of(5, new MaidShearTask(12, 0.6f)));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public final class InitEntities {

@SubscribeEvent
public static void addEntityAttributeEvent(EntityAttributeCreationEvent event) {
event.put(EntityMaid.TYPE, Monster.createMonsterAttributes().build());
event.put(EntityMaid.TYPE, EntityMaid.createAttributes().build());
event.put(EntityChair.TYPE, LivingEntity.createLivingAttributes().build());
event.put(EntityFairy.TYPE, EntityFairy.createFairyAttributes().build());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public TankBackpackContainer(int id, Inventory inventory, int entityId) {
}
this.data = tankData.getDataAccess();
this.addSlot(new Slot(tankData, 0, 161, 101));
this.addSlot(new Slot(tankData, 1, 161, 142));
this.addSlot(new Slot(tankData, 1, 161, 141));
this.addDataSlots(this.data);
}

Expand Down

0 comments on commit b9b960b

Please sign in to comment.