added another overload of fireEvent for less verbose calling
Dieser Commit ist enthalten in:
Ursprung
2c2ab529ed
Commit
19e8ae44b5
@ -111,7 +111,7 @@ BlockRailTile::BlockRailTile(World& world, std::string_view _id) :
|
||||
}
|
||||
}
|
||||
|
||||
fireEvent<const std::shared_ptr<Train>&, const std::shared_ptr<BlockRailTile>&>(onTrainAssigned, newTrain, self);
|
||||
fireEvent(onTrainAssigned, newTrain, self);
|
||||
}
|
||||
}}
|
||||
, removeTrain{*this, "remove_train",
|
||||
@ -154,7 +154,7 @@ BlockRailTile::BlockRailTile(World& world, std::string_view _id) :
|
||||
}
|
||||
}
|
||||
|
||||
fireEvent<const std::shared_ptr<Train>&, const std::shared_ptr<BlockRailTile>&>(onTrainRemoved, oldTrain, self);
|
||||
fireEvent(onTrainRemoved, oldTrain, self);
|
||||
}
|
||||
}}
|
||||
, flipTrain{*this, "flip_train",
|
||||
@ -280,7 +280,7 @@ void BlockRailTile::inputItemValueChanged(BlockInputMapItem& item)
|
||||
trains.appendInternal(blockStatus);
|
||||
updateTrainMethodEnabled();
|
||||
|
||||
fireEvent<const std::shared_ptr<Train>&, const std::shared_ptr<BlockRailTile>&>(
|
||||
fireEvent(
|
||||
onTrainEntered,
|
||||
blockStatus->train.value(),
|
||||
shared_ptr<BlockRailTile>(),
|
||||
@ -327,7 +327,7 @@ void BlockRailTile::inputItemValueChanged(BlockInputMapItem& item)
|
||||
|
||||
updateState();
|
||||
|
||||
fireEvent<const std::shared_ptr<Train>&, const std::shared_ptr<BlockRailTile>&>(
|
||||
fireEvent(
|
||||
onTrainLeft,
|
||||
blockStatus->train.value(),
|
||||
shared_ptr<BlockRailTile>(),
|
||||
@ -445,7 +445,7 @@ bool BlockRailTile::reserve(const std::shared_ptr<BlockPath>& blockPath, const s
|
||||
{
|
||||
const auto direction = side == BlockSide::A ? BlockTrainDirection::TowardsB : BlockTrainDirection::TowardsA;
|
||||
trains.appendInternal(TrainBlockStatus::create(*this, *train, direction));
|
||||
fireEvent<const std::shared_ptr<Train>&, const std::shared_ptr<BlockRailTile>&>(onTrainReserved, train, shared_ptr<BlockRailTile>(), direction);
|
||||
fireEvent(onTrainReserved, train, shared_ptr<BlockRailTile>(), direction);
|
||||
}
|
||||
updateState();
|
||||
}
|
||||
|
||||
@ -74,6 +74,12 @@ class Object : public std::enable_shared_from_this<Object>
|
||||
event.fire(object, std::forward<Args>(args)...);
|
||||
}
|
||||
|
||||
template<class T1, class T2, class... Args>
|
||||
inline void fireEvent(Event<const std::shared_ptr<T1>&, const std::shared_ptr<T2>&, Args...>& event, const std::shared_ptr<T1>& object1, const std::shared_ptr<T2>& object2, Args... args)
|
||||
{
|
||||
event.fire(object1, object2, std::forward<Args>(args)...);
|
||||
}
|
||||
|
||||
virtual void destroying() {}
|
||||
virtual void load(WorldLoader& loader, const nlohmann::json& data);
|
||||
virtual void save(WorldSaver& saver, nlohmann::json& data, nlohmann::json& state) const;
|
||||
|
||||
Laden…
x
In neuem Issue referenzieren
Einen Benutzer sperren