Skip to content

Commit

Permalink
And because the campfire is now a blueprint, removed the feature that…
Browse files Browse the repository at this point in the history
… allowed disabling campfire
  • Loading branch information
remmintan committed Nov 22, 2024
1 parent 316f3fb commit aaf3d50
Show file tree
Hide file tree
Showing 15 changed files with 11 additions and 125 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ void sync(
boolean connectedToTheServer,
int maxColonistsCount,
int reservedColonistCount,
boolean campfireEnabled,
boolean borderEnabled
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ public interface IFortressModServerManager {
IServerManagersProvider getManagersProvider(UUID id);
IServerFortressManager getFortressManager(ServerPlayerEntity player);
IServerFortressManager getFortressManager(UUID id);
boolean isCampfireEnabled();
boolean isBorderEnabled();
void save();
void load();
void load(boolean campfire, boolean border);

void load(boolean border);
void tick(PlayerManager manager);
Optional<IServerManagersProvider> findReachableFortress(BlockPos pos, double reachRange);
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@

public interface IServerFortressManager {
void setBorderVisibilityState(boolean borderEnabled);
void setCampfireVisibilityState(boolean campfireEnabled);
void scheduleSync();
void syncOnJoin(boolean campfireEnabled, boolean borderEnabled);

void syncOnJoin(boolean borderEnabled);
IPawnNameGenerator getNameGenerator();
void replaceColonistWithTypedPawn(LivingEntity colonist, String warriorId, EntityType<? extends LivingEntity> entityType);

Expand Down
28 changes: 0 additions & 28 deletions src/main/java/org/minefortress/commands/CampfireToggleCommand.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ public class CommandsManager {
private static final List<MineFortressCommand> commands = Arrays.asList(
new DebugItemsCommand(),
new DebugPawnsCommand(),
new CampfireToggleCommand(),
new BorderToggleCommand(),
new SpawnPawnsCommand(),
new WarriorsCommand()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ public void sync(
boolean connectedToTheServer,
int maxColonistsCount,
int reservedColonistCount,
boolean campfireEnabled,
boolean borderEnabled
) {
this.colonistsCount = colonistsCount;
Expand Down
34 changes: 2 additions & 32 deletions src/main/java/org/minefortress/fortress/ServerFortressManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import net.fabricmc.api.EnvType;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
Expand All @@ -24,7 +23,6 @@
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.Heightmap;
import net.minecraft.world.World;
import net.minecraft.world.event.GameEvent;
import net.remmintan.mods.minefortress.core.FortressGamemode;
import net.remmintan.mods.minefortress.core.ScreenType;
import net.remmintan.mods.minefortress.core.interfaces.IFortressManager;
Expand Down Expand Up @@ -81,9 +79,7 @@

public final class ServerFortressManager implements IFortressManager, IServerManagersProvider, IServerFortressManager {

private static final BlockState DEFAULT_STATE_ABOVE_CAMPFIRE = Blocks.BARRIER.getDefaultState();
private static final int DEFAULT_COLONIST_COUNT = 5;
public static final BlockState CAMPFIRE_DEFAULT_STATE = Blocks.CAMPFIRE.getDefaultState();

private final MinecraftServer server;
private final Set<LivingEntity> pawns = new HashSet<>();
Expand All @@ -106,7 +102,6 @@ public final class ServerFortressManager implements IFortressManager, IServerMan
private BlockPos fortressCenter = null;
private int maxColonistsCount = -1;

private boolean campfireEnabled;
private boolean borderEnabled;
private boolean spawnPawns = true;

Expand Down Expand Up @@ -179,7 +174,6 @@ public void tick(@Nullable final ServerPlayerEntity player) {
isServer,
maxColonistsCount,
getReservedPawnsCount(),
campfireEnabled,
borderEnabled);
FortressServerNetworkHelper.send(player, FortressChannelNames.FORTRESS_MANAGER_SYNC, syncFortressPacket);
if(needSyncSpecialBlocks){
Expand Down Expand Up @@ -247,9 +241,6 @@ public void tickFortress(@Nullable ServerPlayerEntity player) {
}

if(this.fortressCenter != null) {
if (!this.campfireEnabled)
resetCampfireState(player);

final var colonistsCount = this.pawns.size();
final var spawnFactor = MathHelper.clampedLerp(82, 99, colonistsCount / 50f);
if(spawnPawns && (maxColonistsCount == -1 || colonistsCount < maxColonistsCount)) {
Expand Down Expand Up @@ -287,22 +278,6 @@ private void keepColonistsBelowMax() {
}
}

private void resetCampfireState(@Nullable ServerPlayerEntity player) {
final BlockState blockState = getWorld().getBlockState(this.fortressCenter);
if(blockState == CAMPFIRE_DEFAULT_STATE) {
getWorld().setBlockState(fortressCenter, Blocks.AIR.getDefaultState(), 3);
if(player != null)
getWorld().emitGameEvent(player, GameEvent.BLOCK_PLACE, fortressCenter);
}
final BlockPos aboveTheCenter = this.fortressCenter.up();
final BlockState blockStateAbove = getWorld().getBlockState(aboveTheCenter);
if(blockStateAbove == DEFAULT_STATE_ABOVE_CAMPFIRE) {
getWorld().setBlockState(aboveTheCenter, Blocks.AIR.getDefaultState(), 3);
if(player != null)
getWorld().emitGameEvent(player, GameEvent.BLOCK_PLACE, aboveTheCenter);
}
}

public int getReservedPawnsCount() {
return (int) getProfessionals()
.stream()
Expand Down Expand Up @@ -406,8 +381,8 @@ private BlockPos getRandomSpawnPosition() {
return new BlockPos(spawnX, spawnY, spawnZ);
}

public void syncOnJoin(boolean campfireEnabled, boolean borderEnabled) {
this.campfireEnabled = campfireEnabled;
@Override
public void syncOnJoin(boolean borderEnabled) {
this.borderEnabled = borderEnabled;
this.needSync = true;
this.needSyncSpecialBlocks = true;
Expand All @@ -416,11 +391,6 @@ public void syncOnJoin(boolean campfireEnabled, boolean borderEnabled) {
getFightManager().sync();
}

public void setCampfireVisibilityState(boolean campfireEnabled) {
this.campfireEnabled = campfireEnabled;
this.scheduleSync();
}

public void setBorderVisibilityState(boolean borderEnabled) {
this.borderEnabled = borderEnabled;
this.scheduleSync();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ public class FortressModServerManager implements IFortressModServerManager {
private final MinecraftServer server;
private final Map<UUID, ServerFortressManager> serverManagers = new HashMap<>();

private boolean campfireEnabled;
private boolean borderEnabled;

public FortressModServerManager(MinecraftServer server) {
Expand Down Expand Up @@ -79,29 +78,22 @@ public void save() {
nbt.put(id.toString(), fortressNbt);
}

nbt.putBoolean("campfireEnabled", campfireEnabled);
nbt.putBoolean("borderEnabled", borderEnabled);

ModPathUtils.saveNbt(nbt, MANAGERS_FILE_NAME, server.session);
}

public void load() {
load(true, false);
load(false);
}

public void load(boolean campfireEnabled, boolean borderEnabled) {
@Override
public void load(boolean borderEnabled) {
final var nbtCompound = ModPathUtils.readNbt(MANAGERS_FILE_NAME, server.session);

boolean campfireEnabledSet = false;
boolean borderEnabledSet = false;

for (String key : nbtCompound.getKeys()) {
if(key.equals("campfireEnabled")) {
this.campfireEnabled = nbtCompound.getBoolean(key);
campfireEnabledSet = true;
continue;
}

if(key.equals("borderEnabled")) {
this.borderEnabled = nbtCompound.getBoolean(key);
borderEnabledSet = true;
Expand All @@ -115,10 +107,6 @@ public void load(boolean campfireEnabled, boolean borderEnabled) {

serverManagers.put(masterPlayerId, manager);
}

if(!campfireEnabledSet) {
this.campfireEnabled = campfireEnabled;
}
if(!borderEnabledSet) {
this.borderEnabled = borderEnabled;
}
Expand All @@ -137,9 +125,6 @@ public Optional<IServerManagersProvider> findReachableFortress(BlockPos pos, dou
return Optional.empty();
}

public boolean isCampfireEnabled() {
return campfireEnabled;
}

public boolean isBorderEnabled() {
return borderEnabled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@

public interface FortressWorldCreator {

void set_ShowCampfire(boolean showCampfire);
boolean is_ShowCampfire();

void set_BorderEnabled(boolean borderEnabled);
boolean is_BorderEnabled();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ public void init(CallbackInfo ci) {
public SaveProperties updateLevelPropsBeforeStartingAServer(SaveProperties props) {
final var worldCreator = this.getWorldCreator();
if(props instanceof FortressWorldCreator wcProps && worldCreator instanceof FortressWorldCreator fortressWorldCreator) {
wcProps.set_ShowCampfire(fortressWorldCreator.is_ShowCampfire());
wcProps.set_BorderEnabled(fortressWorldCreator.is_BorderEnabled());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@
@Mixin(CreateWorldScreen.GameTab.class)
public abstract class GameTabMixin {

@Unique
private static final Text SHOW_CAMPFIRE = Text.literal("Campfire enabled");
@Unique
private static final Text SHOW_CAMPFIRE_INFO = Text.literal("When enabled you place a campfire in the world otherwise just select village center");
@Unique
private static final Text BORDER_ENABLED = Text.literal("Border enabled");
@Unique
Expand All @@ -29,7 +25,6 @@ public void init(CreateWorldScreen createWorldScreen, CallbackInfo ci, GridWidge
final var worldCreator = createWorldScreen.getWorldCreator();
if(worldCreator instanceof FortressWorldCreator fortressWorldCreator) {
WorldScreenOptionGrid.Builder builder = WorldScreenOptionGrid.builder(200).marginLeft(1);
builder.add(SHOW_CAMPFIRE, fortressWorldCreator::is_ShowCampfire, fortressWorldCreator::set_ShowCampfire).toggleable(() -> true).tooltip(SHOW_CAMPFIRE_INFO);
builder.add(BORDER_ENABLED, fortressWorldCreator::is_BorderEnabled, fortressWorldCreator::set_BorderEnabled).toggleable(() -> true).tooltip(BORDER_ENABLED_INFO);
final var grid = builder.build(adder::add);
worldCreator.addListener(it -> grid.refresh());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,8 @@ public abstract class LevelPropertiesMixin implements FortressWorldCreator {

// true by default because we need compatibility with existing worlds
@Unique
private boolean showCampfire = true;
@Unique
private boolean borderEnabled = false;

@Override
public void set_ShowCampfire(boolean showCampfire) {
this.showCampfire = showCampfire;
}

@Override
public boolean is_ShowCampfire() {
return this.showCampfire;
}

@Override
public void set_BorderEnabled(boolean borderEnabled) {
this.borderEnabled = borderEnabled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ public abstract class WorldCreatorMixin implements FortressWorldCreator {

@Unique
private boolean borderEnabled = false;
@Unique
private boolean showCampfire = true;

@Shadow public abstract void setDifficulty(Difficulty difficulty);

Expand All @@ -40,13 +38,4 @@ public void set_BorderEnabled(boolean borderEnabled) {
this.borderEnabled = borderEnabled;
}

@Override
public boolean is_ShowCampfire() {
return showCampfire;
}

@Override
public void set_ShowCampfire(boolean showCampfire) {
this.showCampfire = showCampfire;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public static void register() {
final var fortressModServerManager = fortressServer.get_FortressModServerManager();
final var manager = fortressModServerManager.getFortressManager(player);
final var provider = fortressModServerManager.getManagersProvider(player);
manager.syncOnJoin(fortressModServerManager.isCampfireEnabled(), fortressModServerManager.isBorderEnabled());
manager.syncOnJoin(fortressModServerManager.isBorderEnabled());
final var serverProfessionManager = provider.getProfessionsManager();
serverProfessionManager.sendProfessions(player);
serverProfessionManager.scheduleSync();
Expand All @@ -72,7 +72,7 @@ public static void register() {
if(server instanceof IFortressServer IFortressServer) {
final var saveProps = server.getSaveProperties();
if(saveProps instanceof FortressWorldCreator wcProps) {
IFortressServer.get_FortressModServerManager().load(wcProps.is_ShowCampfire(), wcProps.is_BorderEnabled());
IFortressServer.get_FortressModServerManager().load(wcProps.is_BorderEnabled());
} else {
IFortressServer.get_FortressModServerManager().load();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public class ClientboundSyncFortressManagerPacket implements FortressS2CPacket {
private final boolean connectedToTheServer;
private final int maxColonistsCount;
private final int reservedColonistsCount;
private final boolean campfireEnabled;
private final boolean borderEnabled;

public ClientboundSyncFortressManagerPacket(int colonistsCount,
Expand All @@ -23,15 +22,13 @@ public ClientboundSyncFortressManagerPacket(int colonistsCount,
boolean connectedToTheServer,
int maxColonistsCount,
int reservedColonistsCount,
boolean campfireEnabled,
boolean borderEnabled) {
this.colonistsCount = colonistsCount;
this.fortressPos = fortressPos;
this.fortressGamemode = fortressGamemode;
this.connectedToTheServer = connectedToTheServer;
this.maxColonistsCount = maxColonistsCount;
this.reservedColonistsCount = reservedColonistsCount;
this.campfireEnabled = campfireEnabled;
this.borderEnabled = borderEnabled;
}

Expand All @@ -47,7 +44,6 @@ public ClientboundSyncFortressManagerPacket(PacketByteBuf buf) {
this.maxColonistsCount = buf.readInt();
this.connectedToTheServer = buf.readBoolean();
this.reservedColonistsCount = buf.readInt();
this.campfireEnabled = buf.readBoolean();
this.borderEnabled = buf.readBoolean();
}

Expand All @@ -62,7 +58,6 @@ public void handle(MinecraftClient client) {
this.connectedToTheServer,
this.maxColonistsCount,
reservedColonistsCount,
campfireEnabled,
borderEnabled
);
}
Expand All @@ -79,7 +74,6 @@ public void write(PacketByteBuf buf) {
buf.writeInt(maxColonistsCount);
buf.writeBoolean(connectedToTheServer);
buf.writeInt(reservedColonistsCount);
buf.writeBoolean(campfireEnabled);
buf.writeBoolean(borderEnabled);
}
}

0 comments on commit aaf3d50

Please sign in to comment.